首页 > 04.微博消息的语言检测

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

转载于:https://www.cnblogs.com/zhengyun_ustc/archive/2010/10/26/1860897.html

更多相关:

  • 什么是操作系统 操作系统位于计算机硬件与应用软件之间 是一个协调 管理 控制计算机硬件资源与软件资源的控制程序   为何要有操作系统? 1 控制硬件 2 把对硬件的复杂的操作封装成优美简单的接口(文件),给用户,或者应用程序去使用   注意:一套完整的计算机系统包含三部分   应用程序   操作系统:个人windows,公司linux...

  • 前些天在看一本书,温伯格的《理解专业程序员》,其中提到有的程序员得了第二语言综合征——在学习第三、第四门语言的时候很容易,但是学习第二门简直能要了他们的命。我当时就确定我患了这个毛病,因为我一直想了解Java语言,但迟迟不愿开始,以前一直不知道为什么这么难开始,现在终于豁然开朗。把这本书读完不久,书很薄,我就开始计划打破这个综合征,第...