编写简单的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基础教程之lambda表达式使用方法
Feb 12 Python
python新手经常遇到的17个错误分析
Jul 30 Python
python 网络编程常用代码段
Aug 28 Python
Python定时器实例代码
Nov 01 Python
Python操作Oracle数据库的简单方法和封装类实例
May 07 Python
浅谈Python里面小数点精度的控制
Jul 16 Python
numpy基础教程之np.linalg
Feb 12 Python
set在python里的含义和用法
Jun 24 Python
Python with用法:自动关闭文件进程
Jul 10 Python
python tkinter控件布局项目实例
Nov 04 Python
详解Python 重学requests发起请求的基本方式
Feb 07 Python
pandas和spark dataframe互相转换实例详解
Feb 18 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实现 使用PHP数组内部指针操作函数
2010/10/12 PHP
基于php验证码函数的使用示例
2013/05/03 PHP
php GUID生成函数和类
2014/03/10 PHP
PHP实现算式验证码和汉字验证码实例
2015/03/09 PHP
thinkphp整合系列之极验滑动验证码geetest功能
2019/06/18 PHP
PHP过滤器 filter_has_var() 函数用法实例分析
2020/04/23 PHP
JavaScript 面向对象编程(2) 定义类
2010/05/18 Javascript
Javascript匿名函数的一种应用 代码封装
2010/06/27 Javascript
自制轻量级仿jQuery.boxy对话框插件代码
2010/10/26 Javascript
node.js中的querystring.parse方法使用说明
2014/12/10 Javascript
js代码验证手机号码和电话号码是否合法
2015/07/30 Javascript
分享javascript实现的冒泡排序代码并优化
2016/06/05 Javascript
AngularJS基础 ng-include 指令简单示例
2016/08/01 Javascript
jQuery 生成svg矢量二维码
2016/08/09 Javascript
在JSP中如何实现MD5加密的方法
2016/11/02 Javascript
js中string和number类型互转换技巧(分享)
2016/11/28 Javascript
移动设备手势事件库Touch.js使用详解
2017/08/18 Javascript
详解Angular2学习笔记之Html属性绑定
2018/01/03 Javascript
vue-router配合ElementUI实现导航的实例
2018/02/11 Javascript
使用Vue.js和Flask来构建一个单页的App的示例
2018/03/21 Javascript
Javascript Promise用法详解
2018/05/10 Javascript
JavaScript实现与使用发布/订阅模式详解
2019/01/19 Javascript
vue 实现v-for循环回来的数据动态绑定id
2019/11/07 Javascript
优化Vue中date format的性能详解
2020/01/13 Javascript
VUE中V-IF条件判断改变元素的样式操作
2020/08/09 Javascript
[01:38]女王驾到——至宝魔廷新尊技能&特效展示
2020/06/16 DOTA
Python可变和不可变、类的私有属性实例分析
2019/05/31 Python
python设计微型小说网站(基于Django+Bootstrap框架)
2019/07/08 Python
python  logging日志打印过程解析
2019/10/22 Python
图解Python中深浅copy(通俗易懂)
2020/09/03 Python
法律进企业活动方案
2014/03/04 职场文书
村党支部对照检查材料思想汇报
2014/09/28 职场文书
成都人事代理协议书
2014/10/25 职场文书
学生保证书
2015/01/16 职场文书
员工辞退通知书
2015/04/17 职场文书
搭讪开场白台词大全
2015/05/28 职场文书