编写简单的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基础教程之获取本机ip数据包示例
Feb 10 Python
跟老齐学Python之用Python计算
Sep 12 Python
python实现堆栈与队列的方法
Jan 15 Python
用Python的Django框架来制作一个RSS阅读器
Jul 22 Python
Python加密方法小结【md5,base64,sha1】
Jul 13 Python
Python实现动态加载模块、类、函数的方法分析
Jul 18 Python
python+matplotlib绘制简单的海豚(顶点和节点的操作)
Jan 02 Python
对python-3-print重定向输出的几种方法总结
May 11 Python
Django项目基础配置和基本使用过程解析
Nov 25 Python
对tensorflow中的strides参数使用详解
Jan 04 Python
pytorch实现查看当前学习率
Jun 24 Python
Python Charles抓包配置实现流程图解
Sep 29 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中render和renderPartial的区别
2014/09/03 PHP
php实现的Curl封装类Curl.class.php用法实例分析
2015/09/25 PHP
thinkphp5 加载静态资源路径与常量的方法
2017/12/24 PHP
Laravel5框架自定义错误页面配置操作示例
2019/04/17 PHP
JavaScript中的对象化编程
2008/01/16 Javascript
javascript CSS画图之基础篇
2009/07/29 Javascript
jQuery 相关控件的事件操作分解
2009/08/03 Javascript
js验证电话号码与手机支持+86的正则表达式
2014/01/23 Javascript
js浏览器本地存储store.js介绍及应用
2014/05/13 Javascript
jQuery+css3实现文字跟随鼠标的上下抖动
2015/07/31 Javascript
Bootstrap3学习笔记(三)之表格
2016/05/20 Javascript
js事件驱动机制 浏览器兼容处理方法
2016/07/23 Javascript
Javascript this 函数深入详解
2016/12/13 Javascript
ThinkPHP+jquery实现“加载更多”功能代码
2017/03/11 Javascript
javascript深拷贝的原理与实现方法分析
2017/04/10 Javascript
详解angularJs模块ui-router之状态嵌套和视图嵌套
2017/04/28 Javascript
Node4-5静态资源服务器实战以及优化压缩文件实例内容
2019/08/29 Javascript
element实现合并单元格通用方法
2019/11/13 Javascript
微信小程序使用 vant Dialog组件的正确方式
2020/02/21 Javascript
Python实现扫描指定目录下的子目录及文件的方法
2014/07/16 Python
Python实现获取域名所用服务器的真实IP
2015/10/25 Python
matplotlib绘制符合论文要求的图片实例(必看篇)
2017/06/02 Python
Python网络编程 Python套接字编程
2017/09/13 Python
启动targetcli时遇到错误解决办法
2017/10/26 Python
在Python中关于使用os模块遍历目录的实现方法
2019/01/03 Python
对python 判断数字是否小于0的方法详解
2019/01/26 Python
Pandas实现dataframe和np.array的相互转换
2019/11/30 Python
详解python的变量缓存机制
2021/01/24 Python
经典c++面试题四
2015/05/14 面试题
Linux如何压缩可执行文件
2014/03/27 面试题
半年思想汇报
2013/12/30 职场文书
卫生安全检查制度
2014/02/04 职场文书
常住证明范本
2015/06/23 职场文书
三严三实学习心得体会(精选N篇)
2016/01/05 职场文书
Golang Gob编码(gob包的使用详解)
2021/05/07 Golang
Angular性能优化之第三方组件和懒加载技术
2021/05/10 Javascript