编写简单的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 多进程和数据传递的理解
Oct 09 Python
完美解决Python 2.7不能正常使用pip install的问题
Jun 12 Python
TensorFlow实现模型评估
Sep 07 Python
django session完成状态保持的方法
Nov 27 Python
Python3日期与时间戳转换的几种方法详解
Jun 04 Python
pandas删除行删除列增加行增加列的实现
Jul 06 Python
Python 读取用户指令和格式化打印实现解析
Sep 02 Python
python MultipartEncoder传输zip文件实例
Apr 07 Python
python修改微信和支付宝步数的示例代码
Oct 12 Python
基于Python的图像阈值化分割(迭代法)
Nov 20 Python
python 监控服务器是否有人远程登录(详细思路+代码)
Dec 18 Python
Python OpenCV超详细讲解调整大小与图像操作的实现
Apr 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计算当前程序执行时间示例
2014/04/24 PHP
关于扩展 Laravel 默认 Session 中间件导致的 Session 写入失效问题分析
2016/01/08 PHP
thinkPHP自定义类实现方法详解
2016/11/30 PHP
jQuery ajax+PHP实现的级联下拉列表框功能示例
2019/02/12 PHP
laravel利用中间件做防非法登录和权限控制示例
2019/10/21 PHP
thinkphp框架类库扩展操作示例
2019/11/26 PHP
jquery中event对象属性与方法小结
2013/12/18 Javascript
jQuery制作拼图小游戏
2015/01/12 Javascript
jquery实现鼠标经过显示下划线的渐变下拉菜单效果代码
2015/08/24 Javascript
JavaScript代码因逗号不规范导致IE不兼容的问题
2016/02/25 Javascript
很酷的星级评分系统原生JS实现
2016/08/25 Javascript
jquery 实时监听输入框值变化的完美方法(必看)
2017/01/26 Javascript
深入理解Webpack 中路径的配置
2017/06/17 Javascript
基于复选框demo(分享)
2017/09/27 Javascript
Vue2仿淘宝实现省市区三级联动
2020/04/15 Javascript
JS实现的哈夫曼编码示例【原始版与修改版】
2018/04/22 Javascript
Vue 第三方字体图标引入 Font Awesome的方法
2018/09/28 Javascript
element el-input directive数字进行控制
2018/10/11 Javascript
原生js实现获取form表单数据代码实例
2019/03/27 Javascript
前端vue-cli项目中使用img图片和background背景图的几种方法
2019/11/13 Javascript
node.js中npm包管理工具用法分析
2020/02/14 Javascript
Python 正则表达式操作指南
2009/05/04 Python
Python自动化构建工具scons使用入门笔记
2015/03/10 Python
Python使用smtplib模块发送电子邮件的流程详解
2016/06/27 Python
Python基于最小二乘法实现曲线拟合示例
2018/06/14 Python
Python将一个Excel拆分为多个Excel
2018/11/07 Python
用pyqt5 给按钮设置图标和css样式的方法
2019/06/24 Python
Python OpenCV去除字母后面的杂线操作
2020/07/05 Python
css3 矩阵的使用详解
2018/03/20 HTML / CSS
百丽国际旗下购物网站:优购
2017/02/28 全球购物
实习生的自我鉴定范文欣赏
2013/11/20 职场文书
环境工程专业个人求职信
2013/12/05 职场文书
实用求职信范文分享
2013/12/25 职场文书
工程质检员岗位职责
2015/04/08 职场文书
初中物理教学反思
2016/02/19 职场文书
面试中老生常谈的MySQL问答集锦夯实基础
2022/03/13 MySQL