编写简单的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中copy和deepcopy中的区别
Oct 23 Python
Django 2.0版本的新特性抢先看!
Jan 05 Python
Python实用技巧之列表、字典、集合中根据条件筛选数据详解
Jul 11 Python
Python文件监听工具pyinotify与watchdog实例
Oct 15 Python
解决python2 绘图title,xlabel,ylabel出现中文乱码的问题
Jan 29 Python
python批量修改文件夹及其子文件夹下的文件内容
Mar 15 Python
基于keras 模型、结构、权重保存的实现
Jan 24 Python
python实现查找所有程序的安装信息
Feb 18 Python
django-利用session机制实现唯一登录的例子
Mar 16 Python
python opencv把一张图片嵌入(叠加)到另一张图片上的实现代码
Jun 11 Python
python生成随机数、随机字符、随机字符串
Apr 06 Python
使用numpy nonzero 找出非0元素
May 14 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
人大复印资料处理程序_补充篇
2006/10/09 PHP
PHP配置心得包含MYSQL5乱码解决
2006/11/20 PHP
php中删除字符串中最先出现某个字符的实现代码
2013/02/03 PHP
CI使用Tank Auth转移数据库导致密码用户错误的解决办法
2014/06/12 PHP
ucenter通信原理分析
2015/01/09 PHP
在Yii2中使用Pjax导致Yii2内联脚本载入失败的原因分析
2016/03/06 PHP
php从数据库中获取数据用ajax传送到前台的方法
2018/08/20 PHP
Yii框架连表查询操作示例
2019/09/06 PHP
jQuery点击自身以外地方关闭弹出层的简单实例
2013/12/24 Javascript
JavaScript函数参数使用带参数名的方式赋值传入的方法
2015/03/19 Javascript
Nodejs如何搭建Web服务器
2016/03/28 NodeJs
js判断手机浏览器操作系统和微信浏览器的方法
2016/04/30 Javascript
JavaScript探测CSS动画是否已经完成的方法
2016/08/30 Javascript
jquery实现提示语淡入效果
2017/05/05 jQuery
Vuex 进阶之模块化组织详解
2018/01/12 Javascript
element-ui 中的table的列隐藏问题解决
2018/08/24 Javascript
JavaScript"模拟事件"的注意要点详解
2019/02/13 Javascript
layui type2 通过url给iframe子页面传值的例子
2019/09/06 Javascript
Vue实现仿iPhone悬浮球的示例代码
2020/03/13 Javascript
JS自定义右键菜单实现代码解析
2020/07/16 Javascript
vue3弹出层V3Popup实例详解
2021/01/04 Vue.js
Python基本数据类型详细介绍
2014/03/11 Python
python判断windows系统是32位还是64位的方法
2015/05/11 Python
介绍Python中的fabs()方法的使用
2015/05/14 Python
在cmd命令行里进入和退出Python程序的方法
2018/05/12 Python
python批量导入数据进Elasticsearch的实例
2018/05/30 Python
Python实现转换图片背景颜色代码
2020/04/30 Python
HTML5资源预加载(Link prefetch)详细介绍(给你的网页加速)
2014/05/07 HTML / CSS
伦敦一卡通:The London Pass
2018/11/30 全球购物
越南综合购物网站:Lazada越南
2019/06/10 全球购物
程序员岗位职责
2013/11/11 职场文书
剪枝的学问教学反思
2014/02/07 职场文书
表彰大会主持词
2014/03/26 职场文书
雷峰塔导游词
2015/02/09 职场文书
2016年校长新年寄语
2015/08/17 职场文书
2016高校自主招生自荐信范文
2016/01/28 职场文书