编写简单的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实现一个简单的线程池
Apr 07 Python
通过Python爬虫代理IP快速增加博客阅读量
Dec 14 Python
深入探究Django中的Session与Cookie
Jul 30 Python
详解Django-auth-ldap 配置方法
Dec 10 Python
python实现生成字符串大小写字母和数字的各种组合
Jan 01 Python
学习python的前途 python挣钱
Feb 27 Python
详解js文件通过python访问数据库方法
Mar 03 Python
使用celery执行Django串行异步任务的方法步骤
Jun 06 Python
python图形界面开发之wxPython树控件使用方法详解
Feb 24 Python
Python requests模块session代码实例
Apr 14 Python
python3.7添加dlib模块的方法
Jul 01 Python
Python爬虫之Selenium多窗口切换的实现
Dec 04 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新手谈谈我的学习心得
2007/02/25 PHP
PHP实现多服务器session共享之NFS共享的方法
2007/03/16 PHP
PHP 出现乱码和Sessions验证问题的解决方法!
2008/12/06 PHP
php自动获取目录下的模板的代码
2010/08/08 PHP
php获取网页中图片、DIV内容的简单方法
2014/06/19 PHP
PHP explode()函数的几个应用和implode()函数有什么区别
2015/11/05 PHP
php微信高级接口群发 多客服
2016/06/23 PHP
php使用PDO执行SQL语句的方法分析
2017/02/16 PHP
php微信公众号开发之微信企业付款给个人
2018/10/04 PHP
Laravel实现通过blade模板引擎渲染视图
2019/10/25 PHP
删除重复数据的算法
2006/11/23 Javascript
jquer之ajaxQueue简单实现代码
2011/09/15 Javascript
ExtJS的拖拽效果示例
2013/12/09 Javascript
基于Vue实现tab栏切换内容不断实时刷新数据功能
2017/04/13 Javascript
Windows下快速搭建NodeJS本地服务器的步骤
2017/08/09 NodeJs
生成无限制的微信小程序码的示例代码
2019/09/20 Javascript
微信小程序云函数添加数据到数据库的方法
2020/03/04 Javascript
JS数组push、unshift、pop、shift方法的实现与使用方法示例
2020/04/29 Javascript
浅述python中argsort()函数的实例用法
2017/03/30 Python
python音频处理用到的操作的示例代码
2017/10/27 Python
Python利用openpyxl库遍历Sheet的实例
2018/05/03 Python
Python实现合并excel表格的方法分析
2019/04/13 Python
Python tkinter和exe打包的方法
2020/02/05 Python
jupyter notebook实现显示行号
2020/04/13 Python
python中逻辑与或(and、or)和按位与或异或(&、|、^)区别
2020/08/05 Python
Janie and Jack美国官网:GAP旗下的高档童装品牌
2019/09/09 全球购物
博柏利美国官方网站:Burberry美国
2020/11/19 全球购物
若通过ObjectOutputStream向一个文件中多次以追加方式写入object,为什么用ObjectInputStream读取这些object时会产生StreamCorruptedException?
2016/10/17 面试题
工作会议主持词
2014/03/17 职场文书
岗位廉洁从政承诺书
2014/03/27 职场文书
关于安全的广播稿
2014/10/23 职场文书
承诺函格式模板
2015/01/21 职场文书
2015年万圣节活动总结
2015/03/24 职场文书
用人单位聘用意向书
2015/05/11 职场文书
CSS3实现的水平标题菜单
2021/04/14 HTML / CSS
Python机器学习之逻辑回归
2021/05/11 Python