编写简单的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编程给numpy矩阵添加一列方法示例
Dec 04 Python
django 使用 request 获取浏览器发送的参数示例代码
Jun 11 Python
python将处理好的图像保存到指定目录下的方法
Jan 10 Python
Python实现九宫格式的朋友圈功能内附“马云”朋友圈
May 07 Python
python之信息加密题目详解
Jun 26 Python
Python计算一个点到所有点的欧式距离实现方法
Jul 04 Python
django云端留言板实例详解
Jul 22 Python
Python面向对象原理与基础语法详解
Jan 02 Python
python matplotlib 绘图 和 dpi对应关系详解
Mar 14 Python
关于Python 中的时间处理包datetime和arrow的方法详解
Mar 19 Python
Django form表单与请求的生命周期步骤详解
Jun 07 Python
python 利用 PIL 将数组值转成图片的实现
Apr 12 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实现的连贯操作、链式操作实例
2014/07/08 PHP
PHP内部实现打乱字符串顺序函数str_shuffle的方法
2019/02/14 PHP
jquery实现的一个导航滚动效果具体代码
2013/05/27 Javascript
jquery放大镜效果超漂亮噢
2013/11/15 Javascript
javascript实现ecshop搜索框键盘上下键切换控制
2015/03/18 Javascript
jQuery使用attr()方法同时设置多个属性值用法实例
2015/03/26 Javascript
js+css实现上下翻页相册代码分享
2015/08/18 Javascript
javascript中substring()、substr()、slice()的区别
2015/08/30 Javascript
jQuery实现的网页右下角tab样式在线客服效果代码
2015/10/23 Javascript
javascript从定义到执行 你不知道的那些事
2016/01/04 Javascript
AngularJS实践之使用ng-repeat中$index的注意点
2016/12/22 Javascript
如何提高javascript加载速度
2016/12/26 Javascript
JS实现求数组起始项到终止项之和的方法【基于数组扩展函数】
2017/06/13 Javascript
js中的事件委托或是事件代理使用详解
2017/06/23 Javascript
js实现图片放大展示效果
2017/08/30 Javascript
简单实现jQuery弹窗效果
2017/10/30 jQuery
jQuery实现checkbox的简单操作
2017/11/18 jQuery
初识 Vue.js 中的 *.Vue文件
2017/11/22 Javascript
ES6/JavaScript使用技巧分享
2017/12/14 Javascript
vue-cli项目优化方法- 缩短首屏加载时间
2018/04/01 Javascript
vue-calendar-component 封装多日期选择组件的实例代码
2020/12/04 Vue.js
python装饰器初探(推荐)
2016/07/21 Python
python导入时小括号大作用
2017/01/10 Python
python实现冒泡排序算法的两种方法
2018/03/10 Python
Python使用min、max函数查找二维数据矩阵中最小、最大值的方法
2018/05/15 Python
python 将print输出的内容保存到txt文件中
2018/07/17 Python
Python之pymysql的使用小结
2019/07/01 Python
Python中字符串List按照长度排序
2019/07/01 Python
python破解bilibili滑动验证码登录功能
2019/09/11 Python
Python 内存管理机制全面分析
2021/01/16 Python
CSS3实现跳动的动画效果
2016/09/12 HTML / CSS
小橄榄树:Le Petit Olivier
2018/04/23 全球购物
查询优化的一般准则有哪些
2015/03/08 面试题
总经理秘书的岗位职责
2013/12/27 职场文书
村党支部公开承诺书
2014/05/29 职场文书
Golang 使用Map实现去重与set的功能操作
2021/04/29 Golang