编写简单的Python程序来判断文本的语种


Posted in Python onApril 07, 2015

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采集腾讯新闻实例
Jul 10 Python
python执行shell获取硬件参数写入mysql的方法
Dec 29 Python
Python获取系统默认字符编码的方法
Jun 04 Python
python简单判断序列是否为空的方法
Jun 30 Python
使用Python解析JSON数据的基本方法
Oct 15 Python
简介Python设计模式中的代理模式与模板方法模式编程
Feb 02 Python
Python3计算三角形的面积代码
Dec 18 Python
python 实现提取某个索引中某个时间段的数据方法
Feb 01 Python
详解python路径拼接os.path.join()函数的用法
Oct 09 Python
通过实例解析Python调用json模块
Dec 11 Python
在python tkinter界面中添加按钮的实例
Mar 04 Python
Selenium向iframe富文本框输入内容过程图解
Apr 10 Python
Python实现在线程里运行scrapy的方法
Apr 07 #Python
Python实现从脚本里运行scrapy的方法
Apr 07 #Python
Python自定义scrapy中间模块避免重复采集的方法
Apr 07 #Python
Python中用memcached来减少数据库查询次数的教程
Apr 07 #Python
Python3中常用的处理时间和实现定时任务的方法的介绍
Apr 07 #Python
Python中使用pprint函数进行格式化输出的教程
Apr 07 #Python
利用QT写一个极简单的图形化Python闹钟程序
Apr 07 #Python
You might like
PHP遍历XML文档所有节点的方法
2015/03/12 PHP
如何实现php图片等比例缩放
2015/07/28 PHP
PHP中抽象类和抽象方法概念与用法分析
2016/05/24 PHP
PHP实现登录验证码校验功能
2018/05/17 PHP
PHP lcfirst()函数定义与用法
2019/03/08 PHP
关于Anemometer图形化显示MySQL慢日志的工具搭建及使用的详细介绍
2020/07/13 PHP
goto语法在PHP中的使用教程
2020/09/17 PHP
javascript实现的像java、c#之类的sleep暂停的函数代码
2010/03/04 Javascript
javascript实现tabs选项卡切换效果(自写原生js)
2013/03/19 Javascript
鼠标放在图片上显示大图的JS代码
2013/03/26 Javascript
js通过八个点 拖动改变div大小的实现方法
2014/03/05 Javascript
实现图片预加载的三大方法及优缺点分析
2014/11/19 Javascript
两种JS实现屏蔽鼠标右键的方法
2020/08/20 Javascript
AngularJS数据源的多种获取方式汇总
2016/02/02 Javascript
jQuery与js实现颜色渐变的方法
2016/12/30 Javascript
JavaScript、C# URL编码、解码总结
2017/01/21 Javascript
vue实现模态框的通用写法推荐
2018/02/26 Javascript
浅谈angularJs函数的使用方法(大小写转换,拷贝,扩充对象)
2018/10/08 Javascript
怎么使用javascript深度拷贝一个数组
2019/06/06 Javascript
js实现轮播图效果 纯js实现图片自动切换
2020/08/09 Javascript
Python转换HTML到Text纯文本的方法
2015/01/15 Python
python判断自身是否正在运行的方法
2019/08/08 Python
python二进制读写及特殊码同步实现详解
2019/10/11 Python
Pytest框架之fixture的详细使用教程
2020/04/07 Python
解决Python中报错TypeError: must be str, not bytes问题
2020/04/07 Python
如何使用 Python 读取文件和照片的创建日期
2020/09/05 Python
如何用Python绘制3D柱形图
2020/09/16 Python
Html5页面在微信端的分享的实现方法
2018/08/30 HTML / CSS
让ie浏览器成为支持html5的浏览器的解决方法(使用html5shiv)
2014/04/08 HTML / CSS
C++:局部变量能否和全局变量重名
2014/03/03 面试题
学校校庆演讲稿
2014/05/22 职场文书
应届毕业生求职信范文
2014/07/07 职场文书
教师批评与自我批评范文
2014/10/15 职场文书
党章学习心得体会2016
2016/01/14 职场文书
Python基础之pandas数据合并
2021/04/27 Python
nginx配置指令之server_name的具体使用
2022/08/14 Servers