编写简单的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中你应该知道的一些内置函数
Mar 31 Python
详解Python list 与 NumPy.ndarry 切片之间的对比
Jul 24 Python
详解Python3.6的py文件打包生成exe
Jul 13 Python
彻底理解Python中的yield关键字
Apr 01 Python
Django model update的多种用法介绍
Mar 28 Python
python opencv将图片转为灰度图的方法示例
Jul 31 Python
matplotlib命令与格式之tick坐标轴日期格式(设置日期主副刻度)
Aug 06 Python
Django rstful登陆认证并检查session是否过期代码实例
Aug 13 Python
pycharm创建scrapy项目教程及遇到的坑解析
Aug 15 Python
Python爬虫之urllib基础用法教程
Oct 12 Python
Keras - GPU ID 和显存占用设定步骤
Jun 22 Python
Python实现简单得递归下降Parser
May 02 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调用c接口无错版介绍
2014/03/11 PHP
php备份数据库类分享
2015/04/14 PHP
编写PHP脚本使WordPress的主题支持Widget侧边栏
2015/12/14 PHP
Yii2实现ajax上传图片插件用法
2016/04/28 PHP
yii2.0框架实现上传excel文件后导入到数据库的方法示例
2020/04/13 PHP
JSON 编辑器实现代码
2009/12/06 Javascript
Lazy Load 延迟加载图片的 jQuery 插件
2010/02/06 Javascript
原创javascript小游戏实现代码
2010/08/19 Javascript
lyhucSelect基于Jquery的Select数据联动插件
2011/03/29 Javascript
探讨JQUERY JSON的反序列化类 using问题的解决方法
2013/12/19 Javascript
Document.location.href和.replace的区别示例介绍
2014/03/04 Javascript
jquery SweetAlert插件实现响应式提示框
2015/08/18 Javascript
jQuery获取同级元素的简单代码
2016/07/09 Javascript
JS实现的手机端精简幻灯片效果
2016/09/05 Javascript
Vue.js开发环境快速搭建教程
2017/03/17 Javascript
Vue 中使用富文本编译器wangEditor3的方法
2019/09/26 Javascript
vue使用element-ui实现表单验证
2020/12/13 Vue.js
[01:46]辉夜杯—打造中国DOTA新格局
2015/12/25 DOTA
[04:45]DOTA2上海特级锦标赛主赛事第四日RECAP
2016/03/06 DOTA
[09:47]2018DOTA2亚洲邀请赛4.5SOLO赛 No[o]ne vs Sumail
2018/04/06 DOTA
总结python中pass的作用
2019/02/27 Python
使用Python进行体育竞技分析(预测球队成绩)
2019/05/16 Python
pip install 使用国内镜像的方法示例
2020/04/03 Python
termux中matplotlib无法显示中文问题的解决方法
2021/01/11 Python
Html5内唤醒百度、高德APP的实现示例
2019/05/20 HTML / CSS
以实惠的价格提供高品质的时尚:Newchic
2018/01/18 全球购物
台湾网友喜爱的综合型网路购物商城:Yahoo! 奇摩购物中心
2018/03/10 全球购物
物业管理毕业生个人的求职信
2013/11/30 职场文书
少儿节目主持串词
2014/04/02 职场文书
令人印象深刻的自荐信
2014/05/25 职场文书
明星员工获奖感言
2014/08/14 职场文书
2014年度安全工作总结
2014/12/04 职场文书
2014年煤矿工人工作总结
2014/12/08 职场文书
运动会100米广播稿
2015/08/19 职场文书
导游词之杭州西湖
2019/09/19 职场文书
Spring 使用注解开发
2022/05/20 Java/Android