【Python】Python与文本处理langid工具包的文本语言检测和歧视
1.问题的叙述性说明
使用Python文本处理。文字有时被包括中国、英语、在日本和其他语言文字,进行处理。这个时候就须要判别当前文本是属于哪个语系的。
Python中有个langid工具包提供了此功能。langid眼下支持97种语言的检測,很好用。
2.程序的代码
下面Python是调用langid工具包来对文本进行语言检測与判别的程序代码:
import langid #引入langid模块 def translate(inputFile, outputFile):
fin = open(inputFile, 'r') #以读的方式打开输入文件
fout = open(outputFile, 'w') #以写的方式打开输出文件 for eachLine in fin: #依次读入每一行
line = eachLine.strip().decode('utf-8', 'ignore') #去除每行的首位空格等。并统一转化成Unicode
lineTuple = langid.classify(line) #调用langid来对该行进行语言检測
if lineTuple[0] == "zh": #假设该行语言大部分为中文,则不进行不论什么处理
continue outstr = line #假设该行语言为非中文,则准备输出
fout.write(outstr.strip().encode('utf-8') + '\n') #输出非中文的行,从Unicode转化成utf-8输出 fin.close()
fout.close() if __name__ == '__main__': #相当于main函数
translate("myInputFile.txt", "myOutputFile.txt")
以上代码是用来处理一个文本。将不属于中文的行依次输出到一个新的文件。
3.注意
第9、10行代码。langid.classify(line)的输出结果是一个二元组,二元组的第一项表示该文本所属的语系,如:zh表示中文、en表示英语、等等;二元组的第二项表示该文本中属于第一项中语系的所占比例。
希望对大家有所帮助。
版权声明:本文博客原创文章。博客,未经同意,不得转载。
【Python】Python与文本处理langid工具包的文本语言检测和歧视的更多相关文章
- [转]【NLP】干货!Python NLTK结合stanford NLP工具包进行文本处理 阅读目录
[NLP]干货!Python NLTK结合stanford NLP工具包进行文本处理 原贴: https://www.cnblogs.com/baiboy/p/nltk1.html 阅读目录 目 ...
- 【转】Python之mmap内存映射模块(大文本处理)说明
[转]Python之mmap内存映射模块(大文本处理)说明 背景: 通常在UNIX下面处理文本文件的方法是sed.awk等shell命令,对于处理大文件受CPU,IO等因素影响,对服务器也有一定的压力 ...
- python 自然语言处理(二)____获得文本语料和词汇资源
一, 获取文本语料库 一个文本语料库是一大段文本.它通常包含多个单独的文本,但为了处理方便,我们把他们头尾连接起来当做一个文本对待. 1. 古腾堡语料库 nltk包含古腾堡项目(Project Gut ...
- python开发_tkinter_获取文本框内容_给文本框添加键盘输入事件
在之前的blog中有提到python的tkinter中的菜单操作 python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐 python开发_tkinter_窗口控件_自 ...
- Golang、Php、Python、Java基于Thrift0.9.1实现跨语言调用
目录: 一.什么是Thrift? 1) Thrift内部框架一瞥 2) 支持的数据传输格式.数据传输方式和服务模型 3) Thrift IDL 二.Thrift的官方网站在哪里? 三.在哪里下载?需要 ...
- 从Scratch到Python——python turtle 一种比pygame更加简洁的实现
从Scratch到Python--python turtle 一种比pygame更加简洁的实现 现在很多学校都开设了Scratch课程,学生可以利用Scratch创作丰富的作品,然而Scratch之后 ...
- 从Scratch到Python——Python生成二维码
# Python利用pyqrcode模块生成二维码 import pyqrcode import sys number = pyqrcode.create('从Scratch到Python--Pyth ...
- [Python] Python基础字符串
Python的语法采用缩进的方式,一般使用四个空格,并且是大小写敏感的 字符编码 计算机只能处理数字,如果要处理文本,必须先把文本转换成数字才能处理 采用8个比特(bit)作为一个字节(byte) 一 ...
- 初识Python - Python的历史(转)
声明: 本文转自维基百科 如有意见请联系删除 综述 该编程语言 的Python是在20世纪80年代末的设想,和实施是在1989年12月开始由吉多·范罗苏姆在CWI在荷兰的继任者农行能够异常处理,并与接 ...
随机推荐
- 了解HTML5和“她”的 API (二)
Communication(通信) Cross Document Messaging (跨文档消息通信) postMessage API origin security(源安全) chat ...
- POST和Get辨析
在Form里面,能够使用post也能够使用get.它们都是method的合法取值,可是两者也有不同,主要差别在于传递和获取參数的方式不同 一.Get方法: 1.參数的传递方式: 通过URL请求来传递用 ...
- SQL Server数据库附加失败:错误5120和错误950
再次敲机房,想參考曾经的物理模型,结果在附加数据库这一环节出现了点问题,以下总结一下. 1.附加数据库失败,错误5120 对于这样的错误,我在网上搜集了一下,主要有下面几种解决的方法: 方法一:将要附 ...
- PowerShell 批量导入/导出Active Directory
PowerShell 批量导入/导出Active Directory 近期由于公司要求,须要导入20个供应商.20个客户到AD域中,刚開始手动添�了2个供应商,2个客户.可是感觉费时费 ...
- “MEAN”技术栈开发web应用
“MEAN”技术栈开发web应用 上一篇我们讲了如何使用angular搭建起项目的前端框架,前端抽象出一个service层来向后端发送请求,后端则返回相应的json数据.本篇我们来介绍一下,如何在no ...
- Appium之java API
AppiumDriver getAppStrings() 默认系统语言相应的Strings.xml文件内的数据. driver.getAppStrings(String language) 查找某一个 ...
- Android手机定位技术的发展
基于以下三种方式的移动位置:1. 网络位置 :2. 基站定位. 3. GPS定位 1 网络位置 前提是连接到网络:Wifi.3G.2G 到达IP址 比如:彩虹版QQ,珊瑚虫版QQ,就有一个功能显示对 ...
- 设计模式--简单工厂VS工厂VS抽象工厂
前几天我一直在准备大学毕业生,始终绑起来,如今,终于有时间去学习设计模式.我们研究今天的话题是植物三口之家的设计模式的控制--简单工厂VS工厂VS抽象工厂. 经过细心推敲,我们不难得出:工厂模式是简单 ...
- TestNg它@Factory详细解释------如何更改参数值测试
原创文章,版权所有所有.转载,归因:http://blog.csdn.net/wanghantong TestNg的@Factory注解从字面意思上来讲就是採用工厂的方法来创建測试数据并配合完毕測试 ...
- Android Studio Debug
小米4usb调试怎么打开?miui6进入开发者模式想要打开USB调试首先开启开发者模式.过去在MIUI V5版本时,小米手机开启开发者模式的方法是连续点击Anroid版本号.不过最新上市的小米4都搭载 ...