用Python来处理中文分句的方法_【源码精华】,,我在用Python来处理


我在用Python来处理中文分句的时候,在从普通文件中例如txt中读到的中文是使用gbk编码的但是始终不太明白decode('gbk')之后是什么编码;

它应该是某 个unicode编码. 我不知道有没有好的处理方式,但是中文分词要先分句。结果我使用string.maketrans()或者是re.sub() 都没有起到将七七 八八的符号转换为空格的效果。
最后发现可能是由于编码的问题。然后使用了笨方法来做分句,一个一个字符读,读到对应的 就分句。

另外,要注意这里如果是gbk编码一定要decode('gbk'),而且不能编码成utf-8,也不能使用过去的gbk活着gb2312编码。
否 则你分出来的句子就会有乱码的问题。

Python中文分句处理

def Cut(cutlist,lines):       l = []       line = []              for i in lines:           if FindTok(cutlist,i):               l.append("".join(line))               l.append(i)               line = []           else:               line.append(i)       return l  

#然后以行读文件,在切分行为句。上面返回的结果中含有标点符号。标点符号单独存,并且可能结果中包含空格。

cutlist = "[。,,!……!《》<>\"'::?\?、\|“”‘’;]{}(){}【】(){}():?!。,;、~——+%%`:“”"'‘\n\r".decode('gbk')   for lines in file(inputfilename):       l = Cut(list(cutlist),list(lines.decode('gbk')))       for line in l:          if line.strip() <> "":#可能会包含空格符            li = line.strip().split()               for sentence in li:                   print "se:",sentence  

编橙之家提示大家注意要拷贝Python源代码的时候注意格式,总算把中文分句搞定,大家可以根据自己的需要减少或者增加cutlist。

浏览此文章用户还在关注:python csv 中文乱码


编橙之家文章,

评论关闭