编写简单的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使用pyhook监控键盘并实现切换歌曲的功能
Jul 18 Python
python简单实现计算过期时间的方法
Jun 09 Python
Python scikit-learn 做线性回归的示例代码
Nov 01 Python
Django 登陆验证码和中间件的实现
Aug 17 Python
解决pycharm运行时interpreter为空的问题
Oct 29 Python
python实现图片识别汽车功能
Nov 30 Python
pytorch 使用单个GPU与多个GPU进行训练与测试的方法
Aug 19 Python
python读取excel进行遍历/xlrd模块操作
Jul 12 Python
python在CMD界面读取excel所有数据的示例
Sep 28 Python
基于OpenCV的网络实时视频流传输的实现
Nov 15 Python
python中复数的共轭复数知识点总结
Dec 06 Python
python中subplot大小的设置步骤
Jun 28 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
PHP5在Apache下的两种模式的安装
2006/09/05 PHP
PHP 远程文件管理,可以给表格排序,遍历目录,时间排序
2009/08/07 PHP
PHP 可阅读随机字符串代码
2010/05/26 PHP
基于PHP array数组的教程详解
2013/06/05 PHP
PHP中的多行字符串传递给JavaScript的两种方法
2014/06/19 PHP
php微信公众号js-sdk开发应用
2016/11/28 PHP
PHP空值检测函数与方法汇总
2017/11/19 PHP
javascript function调用时的参数检测常用办法
2010/02/26 Javascript
javascript offsetX与layerX区别
2010/03/12 Javascript
nodejs中的fiber(纤程)库详解
2015/03/24 NodeJs
JS动态创建DOM元素的方法
2015/06/09 Javascript
jQuery实现平滑滚动的标签分栏切换效果
2015/08/28 Javascript
JS+CSS实现自动切换的网页滑动门菜单效果代码
2015/09/14 Javascript
AngularJS整合Springmvc、Spring、Mybatis搭建开发环境
2016/02/25 Javascript
IE和Firefox之间在JavaScript语法上的差异
2016/04/22 Javascript
轻松掌握JavaScript状态模式
2016/09/07 Javascript
jQuery实现菜单的显示和隐藏功能示例
2018/07/24 jQuery
NodeJS 将文件夹按照存放路径变成一个对应的JSON的方法
2018/10/17 NodeJs
Vue创建头部组件示例代码详解
2018/10/23 Javascript
Vue动态路由缓存不相互影响的解决办法
2019/02/19 Javascript
vue实现动态按钮功能
2019/05/13 Javascript
Vue列表循环从指定下标开始的多种解决方案
2020/04/08 Javascript
python将ip地址转换成整数的方法
2015/03/17 Python
如何实现删除numpy.array中的行或列
2018/05/08 Python
Python实现多线程的两种方式分析
2018/08/29 Python
Django使用paginator插件实现翻页功能的实例
2018/10/24 Python
python实现连连看游戏
2020/02/14 Python
孤独星球出版物:Lonely Planet Publications
2018/03/17 全球购物
迪奥美国官网:Dior美国
2019/12/07 全球购物
请解释在new与override的区别
2012/10/29 面试题
大学生党课思想汇报
2013/12/29 职场文书
师范类求职信
2014/06/21 职场文书
红领巾广播站广播稿(3篇)
2014/09/20 职场文书
优秀员工事迹材料
2014/12/20 职场文书
《鲸》教学反思
2016/02/23 职场文书
mybatis中sql语句CDATA标签的用法说明
2021/06/30 Java/Android