【Python】Python与文本处理langid工具包的文本语言检测和歧视
2015-08-06 12:32
881 查看
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 contextlib——上下文管理器
- 深入理解Python中命名空间的查找规则LEGB
- Python程序的执行过程
- python学习——初次接触(python,wxpython,Boa,py2exe)
- [置顶] Python排序,针对列表,字典
- Python学习笔记05
- 保存网页TypeError: must be str, not bytes
- python游戏:兔子与獾
- python基础学习笔记<面向对象编程>
- Python中__init__方法注意点
- Python 虚拟环境:Virtualenv
- python中pyc和pyo的作用
- python 计时工具:timeit
- 【Python】求程序的运行时间
- python自动化,读取文件夹内所有文件名字,并做简单的后缀名匹配
- python基础学习笔记<函数式编程与模块>
- python分析accesslog并排序
- python偏函数
- python operator — 标准函数操作
- Learning Python Day4