当前位置: 首页 > 编程日记 > 正文

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

相关文章:

CIO时代学院院长姚乐:传统行业遇上大数据 拥抱智能化未来

近几年,互联网行业发展突飞猛进,“大数据”技术瞬间变得炙手可热,当然,对于发展中的大数据技术而言,很多行业都不会错失良机。近日,CIO时代学院院长、中国新一代IT产业推进联盟秘书长姚乐在“2016CIO时代中…

自动化测试的优势和局限性有哪些

自动化测试只是众多测试中的一种,并不比人工测试更高级更先进。和人工测试相比自动化测试有一定的优势和劣势,具体如下。 1.优势 (1)自动化测试具有一致性和重复性的特点,而且测试更客观,提高了软件测试的准确度、精确度和可信任度…

也分享一个存储过程代码生成器 开源

可以通过 FILE>OPTION 修改前缀,作者等信息。。。。。 完全傻瓜式应用,开源,方便进行个性化开发。。。 工具地址:http://spgen.codeplex.com/ Stored Procedure Generator (for SQL Server 2000/2005) 虽然这样写,但…

如何利用 C# 爬取BigOne交易所的公告!

在当今这个时代,投资可以说是每个人都应该学会的一项技能。拥有一些数字货币是程序员的信仰!交易所是进入数字货币世界最方便的一扇门,今天我就带着大家爬取 Bigone 交易所的公告数据。 首先,我们来看一下要爬取的页面以及对应的…

如何提升自己的Web前端技术

如何提升自己的Web前端技术?问这个问题的一般都是有一些web基础的同学,还有一部分是自学的web前端技术,对自己目前的能力还比较模糊,下面小编就这个问题为大家做下详细的介绍。 如何提升自己的Web前端技术?在IT行业,任何一种专业…

tomcat 性能设置

Tomcat性能调优: 找到Tomcat根目录下的conf目录,修改server.xml文件的内容。对于这部分的调优,我所了解到的就是无非设置一下Tomcat服务器的最大并发数和Tomcat初始化时创建的线程数的设置,当然还有其他一些性能调优的设置&#x…

SAP的安装后基本设定

SAPLogon登录时候是乱码,设定登陆配置的代码页属性,勾选Unicode off SAP英文系统下中文显示乱码 设定字符集为GB2312 RZ10常用的配置参数rz10 编辑系统参数文件 rdisp/gui_auto_logout & rdisp/keepalive 用于控制闲置时间(秒) login/system_client 用于控制默认…

如何通过 Scratch 教小朋友编程思维?

寒假的时候,我带着自己的小孩学 Scratch,希望通过这种图形化的语言来训练他的编程思维。开学之后,很多事情需要处理,所以拖到现在才写总结。希望对大家有所启发。 在介绍如何做这件事情之前,先介绍一个学习方面的基本…

零基础怎么学习UI设计?有哪些简单的学习方法?

UI设计近几年的就业前景是非常好的,所以很多人都想要学习UI设计,那么零基础怎么学习UI设计?有哪些简单的学习方法?下面小编就给大家做下详细的介绍。 零基础怎么学习UI设计?有哪些简单的学习方法? UI设计行业是很注重技术的,零基础如果直…

让资源管理器不显示最近常用文件夹

右键点任务栏,点“属性”->Startmenu->在Privacy框中,把第二个√ 去掉,如下图所示:

C# 写Windows服务

服务是一个运行在后台的程序,他没有界面,不能交互,只能孤独的独自运行。 在开始->运行->输入services.msc可以打开服务管理器,这里可以查看和管理服务   很多时候都会用到服务,因为服务简化了我们的操作&#…

技术图文:如何利用 C# 爬取 ONE 的交易数据?

投资一个金融产品,最基本的就是拿到这个金融产品的交易数据,对这些数据进行可视化来判断趋势。去年,我在听 李笑来 讲区块链的课程上知道了 BigOne 这个由 INB 投资的交易所,而 ONE 是 BigOne 的平台币,持有 ONE 可享受…

java程序猿必读的学习书籍,良心推荐!

每年都有很多人想要学习java技术,有的是自学,有的是报班学习,但是都免不了要看书籍学习,书籍学习带来的知识更加牢记,也可以随时做笔记,下面小编就为大家推荐java程序猿必读的学习书籍,希望能帮…

Autools学习总结(一)

一、Makefile 简介 在编写C/C程序的时候,我们经常需要编译并运行代码。在程序规模较小的情况下,可以简单地直接调用编译器来完成这项工作。然而,在很多情况下程序往往包括大量的代码文件,手动调用编译器变得麻烦无比。尤其要命的是…

简单的实现IOCP服务器模型

其实已经有很多大佬将原理讲的十分详细了,所以就不花费时间将原理再一次重复讲一遍,有需要的可以自行去查看。 http://blog.csdn.net/beyond_cn/article/details/9336043 这篇文章是我看的,原理介绍十分详细。不过有一些操作感觉比较复杂因此…

资料分享:送你一本《数据结构与算法JavaScript描述》电子书!

数据结构 是掌握计算机编程必须具备的技能。通常情况下,我想掌握一门编程语言所用的方法就是利用这门语言把数据结构中线性表、栈、队列、字符串、动态数字、整数集合、树、图、搜索、排序等涉及的算法全部写一遍。写完之后,基本上就把这门语言搞定了。 …

Python中爬虫框架或模块的区别

Python中爬虫框架或模块的区别,我们在Python的学习过程中,需要不断的总结知识点,这样我们才能进步的更快一些。 (1)爬虫框架或模块 Python自带爬虫模块:urllib、urllib2; 第三方爬虫模块:requests,aiohttp;…

SQL SERVER 2000写存储过程出现列名无效的解决方法

举一个Northwind的例子。DECLARE m_LastName nvarchar(20) DECLARE Sql varchar(256)SET m_LastName Fuller SET Sql SELECT * FROM Employees WHERE LastName char(39) m_LastName char(39) EXEC(Sql) 注意,要加上char(39)就可以了。转载于:https://www.cnblo…

如何利用 C# + Python 破解猫眼电影的反爬虫机制?

在 如何利用 C# 爬取「猫眼电影:最受期待榜」及对应影片信息! 这篇图文中可以看到猫眼电影对“本月新增想看人数” 和 “总想看人数”进行了字符集加密。 在 如何利用 C# 爬取「猫眼电影:国内票房榜」及对应影片信息! 这篇图文中也…

ZooKeeper学习笔记1-----------安装启动

ZooKeeper是一套协作服务,主要用来构建分布式架构的应用,通过ZooKeeper我们可以安全的处理分布式应用下的局部故障问题。我们知道ZooKeeper就是Hadoop中的分布式协作服务组件。下面我们进入ZooKeeper的安装部署。 安装Zookeeper https://zookeeper.apach…

软件测试培训完就业方向怎么选择

软件测试技术在近几年的发展前景是非常好的,越来越多的人都想要学习软件测试技术,报班是大多数人的选择,但是大家对于“软件测试培训完就业方向怎么选择”这个问题比较迷茫,我们来看看下面的详细介绍。 软件测试培训完就业方向怎么…

LeetCode实战:合并两个有序链表

题目英文: Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists. Example: Input: 1->2->4, 1->3->4 Output: 1->1->2->3->4->4 题目中…

Apache反向代理设置【转载】

编译Apache时要进行的设置./configure --enable-mods-shared"all proxy"1>修改 httpd.conf 文件中:LoadModule proxy_module modules/mod_proxy.soLoadModule proxy_connect_module modules/mod_proxy_connect.soLoadModule proxy_http_module modules…

Suricata的输出

不多说,直接上干货! 见官网 https://suricata.readthedocs.io/en/latest/output/index.html 总的来说,Suricata采集下来的数据输出分为:EVE 、 Lua Output 、 Syslog Alerting Compatibility 、 Custom http logging 、 Custo…

快速提高你的UI设计水平的一些小技巧

UI设计师这个岗位在最近几年的缺口是比较大的,很多企业都在招UI设计人员,想要学习UI设计或者提升UI设计技术的同学,可以看看小编分享的以下内容,善用这些UI设计小技巧,快速提高你的设计水平! 快速提高你的UI设计水平的…

hibernate join fetch

那天去了达内,试听了2个小时的课,刚好讲的他们的当当网项目,讲hibernate表关系映射这段来了,不过也够呛,投影仪看的眼睛点都不舒服,当时讲的也没认真听,听了个大概,就记住那个老师一…

Java IO 字节流与字符流 (三)

概述 IO流用来处理设备之间的数据传输 Java对数据的操作时通过流的方式 Java用于操作流的对象都在IO包中 流按操作的数据分为:字节流和字符流 流按流向不同分为:输入流和输出流 IO流常用基类 字节流的抽象基类 InputStream,OuputStream 字符流…

LeetCode实战:两两交换链表中的节点

题目英文 Given a linked list, swap every two adjacent nodes and return its head. You may not modify the values in the list’s nodes, only nodes itself may be changed. Example: Given 1->2->3->4, you should return the list as 2->1->4->3.…

在UI设计中如何正确使用颜色

在我们进行UI设计时,颜色往往是我们表达理念重要的一点,但也是我们常常会忽视的一点。颜色其实如同语言一样,我们可以通过颜色的变化组合,来表达不同的情绪。 正确使用颜色不单能让我们吸引到客户,也能更好地表达我们的…

如何用Python做Web开发?——Django环境配置

用Python做Web开发,Django框架是个非常好的起点。如何从零开始,配置好Django开发环境呢?本文带你一步步无痛上手。 概念 最近有个词儿很流行,叫做“全栈”(full stack)。各大IT培训机构几乎都在宣传这一概念。告诉你只需要交1XXXX…