【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]表示非中文,也就是根据非中文切分出中文的文本。

希望对大家有所帮助,谢谢。

时间: 2024-10-15 22:05:21

【Python】Python在文本分析中将中文和非中文进行分割的相关文章

python re匹配中文和非中文

import re data = """我始终!@@##¥%…………&alkjdfsb1234\n 566667是中国人woaldsfkjzlkcjxv123*())<> """ # 匹配所有汉字 print(re.findall('[\u4e00-\u9fa5]', data)) # 匹配所有单字符,英文,数字,特殊符号 print(re.findall('[\x00-\xff]', data)) # 匹配所有非单字符,入汉

python matplotlib在mac os x 中如何显示中文,完美解决

一. 下载相关的中文字体 simhei 文件: 下载地址 二.通过以下代码查找matplotlib的数据存放位置: import matplotlib print(matplotlib.matplotlib_fname()) 我的目录为: /Volumes/05/anconda/anaconda3/lib/python3.6/site-packages/matplotlib/mpl-data/matplotlibrc 三.打开上述目录,并将下载的字体文件 simhei.ttf 复制到 上述目录的

Python自然语言处理实践: 在NLTK中使用斯坦福中文分词器

http://www.52nlp.cn/python%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E5%A4%84%E7%90%86%E5%AE%9E%E8%B7%B5-%E5%9C%A8nltk%E4%B8%AD%E4%BD%BF%E7%94%A8%E6%96%AF%E5%9D%A6%E7%A6%8F%E4%B8%AD%E6%96%87%E5%88%86%E8%AF%8D%E5%99%A8 原文地址:https://www.cnblogs.com/lhuser/p/

大数据文本分析:灵玖自然语言中文语义分词系统

自然语言通常是指一种自然地随文化演化的语言.英语.汉语.日语为自然语言的例子,而世界语则为人造语言,即是一种为某些特定目的而创造的语言. 自然语言具备两个属性:语言属性与自然属性."语言"属性表现为公认的某些约定俗成的内在规律性;"自然"属性是说并不存在某个人为制造的.严格的语法规则体系来约定人们的语言表达方式,这是和程序设计语言大相径庭的.自然语言需要遵循一定的内在规律,但更大程度上是"存在即合理". 一个自然语言处理系统必须考虑许多语言自身与

关于mysql数据库插入数据,不能插入中文和出现中文乱码问题

首先,推荐一篇博客:http://www.cnblogs.com/sunzn/archive/2013/03/14/2960248.html 当时,我安装完mysql数据库后,新建一个数据库后插入数据,首先出现了中文不能插入mysql数据库的问题,解决办法如下: 修改mysql文件中my.ini里的 sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"变成sql-mode="NO_A

mysql 不能插入中文和显示中文

一)不能显示中文解决办法: 参考:http://bbs3.chinaunix.net/thread-880131-1-1.html 1:windows平台,因为windows操作系统默认的是用了gb2312这个字符,而mysql在安装的时候, 默认的是客户端和服务器都用了latin1,所以这就导致一个字符集和字符校验不匹配的问题, 这个时候只需要找到mysql的配置文件my.ini 找到default-character_set ,把他的参数改 成gb2312就可以了,一共有两个这样的参数,一个

wprintf、wcout输出中文和unicode中文字符串的转换问题

%E4%BD%BF%E7%94%A8CHttpFile%E4%BB%8E%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%AB%AF%E6%AD%A3%E7%A1%AE%E7%9A%84%E8%AF%BB%E5%8F%96%E6%95%B0%E6%8D%AE ??????spoBAByG??υ????d? http://auto.315che.com/ztzhidoud2/qa23963522.htm http://auto.315che.com/kaiyix3/qa23989881

正则替换A标签中的非中文字符

文本如下 <a href='http://blog.mcshell.org/'>@中文aaasd英sdf爽sdfaa</a> <a href='http://blog.mcshell.org/'>@刘aaasd文sd23f爽sdfaa</a> <a href='http://blog.mcshell.org/'>刘aaasd英sdf爽sda</a> regex如下: [^<>\x{4e00}-\x{9fa5}]+(?=[^

python2.7.x的字符串编码到底什么鬼?(中文和英文的处理)

一直以来我其实一直对python的编码弄得非常晕,能正常编码,也能处理一些情况.但是始终不明白有些问题究竟为何出,原因是什么,为什么要这样用. 今天晚上正好好好研究了一番解答了自己心中的困惑. Q:python2.7.x里面的中文表示到底是什么鬼? A:直接来看看 In [23]: x = '好不好喝都要喝' In [24]: x Out[24]: '\xe5\xa5\xbd\xe4\xb8\x8d\xe5\xa5\xbd\xe5\x96\x9d\xe9\x83\xbd\xe8\xa6\x81\