编写简单的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 yield使用方法示例
Dec 04 Python
举例讲解Python中的身份运算符的使用方法
Oct 13 Python
python 系统调用的实例详解
Jul 11 Python
python微信公众号之关键词自动回复
Jun 15 Python
Python3+Appium安装使用教程
Jul 05 Python
pyinstaller参数介绍以及总结详解
Jul 12 Python
python项目对接钉钉SDK的实现
Jul 15 Python
pytorch下使用LSTM神经网络写诗实例
Jan 14 Python
Python 串口通信的实现
Sep 29 Python
python 检测图片是否有马赛克
Dec 01 Python
Python实现微信表情包炸群功能
Jan 28 Python
OpenCV中resize函数插值算法的实现过程(五种)
Jun 05 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
Yii调试SQL的常用方法
2014/07/09 PHP
PHP观察者模式示例【Laravel框架中有用到】
2018/06/15 PHP
PHP正则表达式处理函数(PCRE 函数)实例小结
2019/05/09 PHP
Js setInterval与setTimeout(定时执行与循环执行)的代码(可以传入参数)
2010/06/11 Javascript
jQuery EasyUI API 中文文档 - DataGrid数据表格
2011/11/17 Javascript
javascript学习笔记(六) Date 日期类型
2012/06/19 Javascript
引入JS文件IE6报语法错误或缺少对象问题的解决方法
2014/01/09 Javascript
使用jQuery实现验证上传图片的格式与大小
2014/12/03 Javascript
javascript基础知识分享之类与函数化
2016/02/13 Javascript
js实现select二级联动下拉菜单
2020/04/17 Javascript
bootstrap监听滚动实现头部跟随滚动
2016/11/08 Javascript
JavaScript初学者必看“new”
2017/06/12 Javascript
vueScroll实现移动端下拉刷新、上拉加载
2019/03/22 Javascript
Vue路由之JWT身份认证的实现方法
2019/08/26 Javascript
vue中音频wavesurfer.js的使用方法
2020/02/20 Vue.js
微信小程序实现比较功能的方法汇总(五种方法)
2020/03/07 Javascript
pyqt和pyside开发图形化界面
2014/01/22 Python
Python实现字符串与数组相互转换功能示例
2017/09/22 Python
详解如何使用Python编写vim插件
2017/11/28 Python
Python统计文本词汇出现次数的实例代码
2020/02/27 Python
python实现门限回归方式
2020/02/29 Python
keras 指定程序在某块卡上训练实例
2020/06/22 Python
Python通过队列来实现进程间通信的示例
2020/10/14 Python
详解HTML5表单新增属性
2016/12/21 HTML / CSS
德国的各种媒体在线商店:Thalia.de(书籍、电子书、玩具等)
2020/10/08 全球购物
纯净、自信、100%的羊绒服装:360Cashmere
2021/02/20 全球购物
数控技术专业推荐信
2013/11/01 职场文书
国旗下的演讲稿
2014/05/08 职场文书
广告学专业求职信
2014/06/19 职场文书
小学生美德少年事迹材料
2014/08/24 职场文书
关于对大人不礼貌的检讨书
2014/09/29 职场文书
学校师德师风整改措施
2014/10/27 职场文书
2019开业庆典剪彩仪式主持词!
2019/07/22 职场文书
正确使用MySQL INSERT INTO语句
2021/05/26 MySQL
SQL注入的实现以及防范示例详解
2021/06/02 MySQL
MySQL分区以及建索引的方法总结
2022/04/13 MySQL