玩蛇网提供最新Python编程技术信息以及Python资源下载!
您现在的位置: 玩蛇网首页 > Python源码实例_Python程序源代码_网站项目下载 > 正文内容

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

Python入门佳作 经典教程的全新修订 10个项目引人入胜
玩蛇网推荐图文教程: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 中文乱码


玩蛇网文章,转载请注明出处和来源网址:http://www.iplaypython.com/code/c2715.html



微信公众号搜索"玩蛇网Python之家"加关注,每日最新的Python资讯、图文视频教程可以让你一手全掌握。强烈推荐关注!

微信扫描下图可直接关注

在线python培训课程

玩蛇网PythonQQ群,欢迎加入: ① 240764603 玩蛇网Python新手群
出炉日期:2016-01-31 20:05 玩蛇网 www.iplaypython.com

我要分享到:
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)

必知PYTHON教程 Must Know PYTHON Tutorials

必知PYTHON模块 Must Know PYTHON Modules