首页 > 代码库 > 【Python】Python在文本分析中将中文和非中文进行分割
【Python】Python在文本分析中将中文和非中文进行分割
1.问题描述
进行文本分析的时候需要将中文和非中文进行分开处理,下面通过Python将文本中的中文部分提取出来进行需要的处理。
2.问题解决
开发环境:Linux
程序代码如下:split.py
#!/usr/bin/python #-*- coding:utf-8 -*- import sys reload(sys) sys.setdefaultencoding("utf8") import re #导入正则表达式模块:re模块 def translate(inputFile, outputFile): fin = open(inputFile, 'r') #以读的方式打开输入文件 fout = open(outputFile, 'w') #以写的方式打开输出文件 for eachLine in fin: #按行读入文件内容 line = eachLine.strip().decode('utf-8', 'ignore') #处理前进行相关的处理,包括转换成Unicode等 p2 = re.compile(ur'[^\u4e00-\u9fa5]') #中文的编码范围是:\u4e00到\u9fa5 zh = " ".join(p2.split(line)).strip() zh = ",".join(zh.split()) outStr = zh #经过相关处理后得到中文的文本 fout.write(outStr.strip().encode('utf-8') + '\n') fin.close() fout.close() if __name__ == '__main__': translate(sys.argv[1], sys.argv[2]) ##通过获得命令行参数获得输入输出文件名来执行,方便
程序完成之后,在Linux命令行输入:python split.py myinput.txt myoutput.txt
就能够执行了。最终的翻译结果都写入到输出文件myoutput.txt中了。
3.注意问题
(1)第16行,中文的编码范围是:\u4e00到\u9fa5,所以该行的[^\u4e00-\u9fa5]表示非中文,也就是根据非中文切分出中文的文本。
希望对大家有所帮助,谢谢。
【Python】Python在文本分析中将中文和非中文进行分割
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。