香港云主机最佳企业级服务商!

ADSL拨号VPS包含了中国大陆(联通,移动,电信,)

中国香港,国外拨号VPS。

当前位置:云主机 > python >

电信ADSL拨号VPS
联通ADSL拨号VPS
移动ADSL拨号VPS

编写简单的Python程序来判断文本的语种


时间:2021-11-09 10:30 作者:admin


1.问题的描述

python/' target='_blank'>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表示英语、等等;二元组的第二项表示该文本中属于第一项中语系的所占比例。

希望对大家有所帮助。

(责任编辑:admin)






帮助中心
会员注册
找回密码
新闻中心
快捷通道
域名登录面板
虚机登录面板
云主机登录面板
关于我们
关于我们
联系我们
联系方式

售前咨询:17830004266(重庆移动)

企业QQ:383546523

《中华人民共和国工业和信息化部》 编号:ICP备00012341号

Copyright © 2002 -2018 香港云主机 版权所有
声明:香港云主机品牌标志、品牌吉祥物均已注册商标,版权所有,窃用必究

云官方微信

在线客服

  • 企业QQ: 点击这里给我发消息
  • 技术支持:383546523

  • 公司总台电话:17830004266(重庆移动)
  • 售前咨询热线:17830004266(重庆移动)