编写简单的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中的ConfigParser模块使用详解
May 04 Python
Python入门之后再看点什么好?
Mar 05 Python
对pandas中Series的map函数详解
Jul 25 Python
python消除序列的重复值并保持顺序不变的实例
Nov 08 Python
Python 编程速成(推荐)
Apr 15 Python
Python中的十大图像处理工具(小结)
Jun 10 Python
django框架使用方法详解
Jul 18 Python
Python 面向对象静态方法、类方法、属性方法知识点小结
Mar 09 Python
Python使用Matlab命令过程解析
Jun 04 Python
Python爬虫与反爬虫大战
Jul 30 Python
python 实现端口扫描工具
Dec 18 Python
python入门之算法学习
Apr 22 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
多人战的战术与战略
2020/03/04 星际争霸
图书管理程序(一)
2006/10/09 PHP
Excel数据导入Mysql数据库的实现代码
2008/06/05 PHP
php使用sql数据库 获取字段问题介绍
2013/08/12 PHP
PHP使用静态方法的几个注意事项
2014/09/16 PHP
php+mysql查询优化简单实例
2015/01/13 PHP
PHP网络操作函数汇总
2015/05/18 PHP
PHP自定义函数实现数组比较功能示例
2017/10/19 PHP
PHP实现十进制数字与二十六进制字母串相互转换操作示例
2018/08/10 PHP
thinkPHP5框架接口写法简单示例
2019/08/05 PHP
关于js拖拽上传 [一个拖拽上传修改头像的流程]
2011/07/13 Javascript
javascript中处理时间戳为日期格式的方法
2014/01/02 Javascript
JS对象转换为Jquery对象示例
2014/01/26 Javascript
javascript 获取HTML DOM父、子、临近节点
2014/06/16 Javascript
nodejs下打包模块archiver详解
2014/12/03 NodeJs
js实现图片点击左右轮播
2015/07/08 Javascript
JS JSOP跨域请求实例详解
2016/07/04 Javascript
使用nodejs中httpProxy代理时候出现404异常的解决方法
2016/08/15 NodeJs
Angular实现的敏感文字自动过滤与提示功能示例
2017/12/29 Javascript
详解vue项目中使用token的身份验证的简单实践
2019/03/08 Javascript
vue路由守卫及路由守卫无限循环问题详析
2019/09/05 Javascript
微信小程序实现选项卡滑动切换
2020/10/22 Javascript
原生JavaScript实现轮播图
2021/01/10 Javascript
通过5个知识点轻松搞定Python的作用域
2016/09/09 Python
使用Python监控文件内容变化代码实例
2018/06/04 Python
Python使用matplotlib和pandas实现的画图操作【经典示例】
2018/06/13 Python
搭建python django虚拟环境完整步骤详解
2019/07/08 Python
python中 * 的用法详解
2019/07/10 Python
python矩阵运算,转置,逆运算,共轭矩阵实例
2020/05/11 Python
古驰英国官网:GUCCI英国
2020/03/07 全球购物
公司拓展活动方案
2014/02/13 职场文书
大型营销活动计划书
2014/04/28 职场文书
运动会演讲稿300字
2014/08/25 职场文书
小学教师先进事迹材料
2014/12/15 职场文书
2016春节慰问信范文
2015/03/25 职场文书
Python Matplotlib绘制两个Y轴图像
2022/04/13 Python