04.微博消息的语言检测

简介:

04.微博消息的语言检测

郑昀 201010 隶属于《02.数据解析》小节

大意是,封装Google语言检测ajax web service的接口,输入一段话,输出语言种类。这个方法是从RssMeme.com看来的,经测试效果还不错,可用于检测微博客消息的语言,如中文、日文、韩文等。但由于Google对过于频繁的请求会重置链接,所以提请注意,这个Web Service不适合大量密集请求提交。 

一、简单示范

访问
http://ajax.googleapis.com/ajax/services/language/detect?v=1.0&q=hello+world
链接,你可以看到返回结果是一个json字符串:
{"responseData": {"language":"en","isReliable":false,"confidence":0.114892714}, "responseDetails": null, "responseStatus": 200}

记得加版本号参数:v=1.0,否则返回如下json:
{"responseData": null, "responseDetails": "invalid version", "responseStatus": 400}

 

二、如果是日文微博客消息呢?

举例,送去检测的微博客消息是:

RT @ufotable: 本日22時より星海社ウェブサイト「最前線」にて『坂本真綾の満月朗読館』第二夜『山月記』が 配信されます。第二夜の映像演出も弊社デジタル部が担当い…http://goo.gl/brJE

经过urlencode变换后,提交到Google,返回的结果是:

{"responseData": {"language":"ja","isReliable":true,"confidence":0.88555187}, "responseDetails": null, "responseStatus": 200}

这样用result['responseData']['language']就获得了语言的代号。
只要检查这个代号不是“zh-CN”,那么就不是中文语言了。


四、封装Google Language Detect Ajax Web Service

示范:
import urllib
import httplib2
try:
    from base import easyjson
except:
    pass

class Detect():
    google_api_prefix = 'http://ajax.googleapis.com/ajax/services/language/detect'
    def __init__(self, httplib2_inst=None):
        """从外可以传入httplib实例,便于在外部加设代理软件穿墙"""
        self.http = httplib2_inst or httplib2.Http()
    def post_sentence(self, q):
        return self._fetch(
            self.google_api_prefix,
            {'v':"1.0",'q':q}
            )
    def _fetch(self, url, params):
        request = url +"?"+ urllib.urlencode(params)
        resp, content = self.http.request(request, "GET")
        return easyjson.parse_json_func(content)

    def detectZHCN(self, text):
        """输入文字如果检测到是zh-CN,返回True,否则返回False"""
        data = self.post_sentence(text)['responseData']
        if(data):
            language = data['language']
            if(language=='zh-CN'):
                return True
        return False

目录
相关文章
|
Web App开发 存储 算法
微信技术分享:微信的海量IM聊天消息序列号生成实践(算法原理篇)
如何优雅地解决“消息序列号只要保证顺序性而不需要兼顾唯一性”的问题呢?这就是本文所要分享的内容,强烈建议深入理解和阅读。
3182 0
09 公众号开发 - 回复用户语音消息识别代码
09 公众号开发 - 回复用户语音消息识别代码
65 0
|
JSON 安全 前端开发
得物自研客服IM中收发聊天消息背后的技术逻辑和思考实现
本文将探秘得物自研客服IM中收发聊天消息背后的技术逻辑和思考实现,帮助大家了解如何在IM聊天场景中提供高效、安全、可靠和良好的用户体验。
129 0
|
人工智能 小程序 前端开发
华为主动找我合作,我放弃了!前端实现拍照识别垃圾分类最简单的方法!
2019年7月,上海作为第一个试运行垃圾分类的城市。当时的微信指数居高不下,引发了非常热烈的社会讨论,原因是上海当时执行得很坚决,社区垃圾桶旁都有带着红袖标的大爷大妈在看着,扔错了现场罚200元。 当时人心惶惶,有很多人担心自己分类不准确被罚款。上海市政府在宣传垃圾分类的时候就在推一个垃圾分类查询的小程序。我当时捕捉到了这个热点,花了一天时间使用uni-app快速搭建了一个拍照识别垃圾所属分类的小程序《垃圾分类精灵》(现在还在线,大家可以搜来用)。在短短半个月里获取到了6w多用户。
229 0
华为主动找我合作,我放弃了!前端实现拍照识别垃圾分类最简单的方法!
|
数据采集 Python
❤️不到100行把流式热榜截屏合成一张?爬虫终极秘诀【建议收藏】❤️
爬虫如何应对流式加载页面,这100行代码请收藏!
171 0
❤️不到100行把流式热榜截屏合成一张?爬虫终极秘诀【建议收藏】❤️
微博与im消息实现对比[随想]
微博与im消息实现对比
1127 0
发人自省的语言
志不强者智不达,言不信者行不果。——墨翟 (凡诸事有成者都有惊人的毅力做后盾,相信自己,持之以恒,不久的将来,我们都将有一番成就,勤不富也饱,懒不死也饿) 你只有非常努力才能看起来好不费力。
969 0