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

目录
相关文章
|
监控 小程序 安全
Uniapp使用GoEasy实现websocket实时通讯
GoEasy上架DCloud Uniapp插件市场已经有一个多月了,收到很多Uniapp开发人员的赞扬和好评。本篇文章将讲解在Uniapp下如何使用GoEasy完成第一个简单的实时通讯demo。
|
Kubernetes Java Docker
利用(K8S)配合Docker部署jar包
通过Docker打包并部署到Kubernetes(K8S)集群的过程。首先,通过SpringBoot生成jar包,接着在K8S环境中创建并编辑Dockerfile文件。随后构建Docker镜像,并将其推送到镜像仓库。最后,通过一系列kubectl命令(如get pods、get svc、logs等),展示了如何在K8S中管理应用,包括查看Pod状态、服务信息、Pod日志以及重启Pod等操作。
716 3
|
程序员 PHP UED
一直让 PHP 程序员懵逼的同步阻塞异步非阻塞,终于搞明白了
【9月更文挑战第8天】恭喜你掌握了同步阻塞和异步非阻塞的概念,这是许多 PHP 程序员容易困惑的地方。同步阻塞指代码按顺序执行,需等待操作完成;异步非阻塞则允许后台执行操作,不阻塞程序。理解这些概念能显著提升程序性能和用户体验,特别是在高并发场景和分布式系统中。随着技术发展,越来越多的 PHP 框架支持异步编程,掌握这些概念将让你在开发中更得心应手。
263 7
|
9月前
|
NoSQL MongoDB 数据库
【直播回放】MongoDB全球开发者认证介绍线上直播 助力您掌握企业级实战能力
想通过MongoDB认证提升竞争力却无从下手?这场线上直播为你解惑!权威解读考试大纲、题型与评分标准,资深专家分享备考策略,涵盖学习计划、实战技巧及心理调整。更有最新认证激励政策、专属徽章与大礼包等你解锁!无论你是开发者、管理员还是学生,都能为职业发展铺路。立即预约3月26日直播回放,与MongoDB专家互动答疑,轻松迈向专业高峰!
|
前端开发 PHP 数据安全/隐私保护
WordPress独立资源下载页面插件,基于Xydown美化
xydown是一款wordpress的独立下载页面插件,主要适用于wp建站用户使用,有些用户在发布文章的时候想要添加一些下载资源,使用这款插件可以把下载的内容独立出来,支持添加本地下载或者百度网盘蓝奏网盘的网址,并且可以自定义文件信息,包括设置文件名称、文件大小、更新日志以及适用版本等内容,同时还支持自定义文件信息以及添加自定义广告等。
350 1
WordPress独立资源下载页面插件,基于Xydown美化
|
数据采集 JavaScript API
Splash的爬虫应用(一)
Splash的爬虫应用(一)
294 0
|
存储 监控 Java
MySQL8 中文参考(二十一)(4)
MySQL8 中文参考(二十一)
280 3
|
关系型数据库 分布式数据库 数据库
PolarDB-X助攻《香肠派对》百亿好友关系实现毫秒级查询
云原生数据库PolarDB分布式版(PolarDB for Xscale,简称PolarDB-X)有极强的线性扩展能力,能够多写多读;它的全局索引能力,是分布式改造的利器,成功解决了传统分布式方案中多维度查询的难题,在《香肠派对》的好友系统上,实现了百亿好友关系20万QPS的毫秒级查询。
PolarDB-X助攻《香肠派对》百亿好友关系实现毫秒级查询
|
C语言
C语言函数嵌套与递归调用的深入解析
C语言函数嵌套与递归调用的深入解析
300 0