python中文分句_Python 中文分句

# coding: utf-8

#设置分句的标志符号;可以根据实际需要进行修改

cutlist ="。!?".decode('utf-8')

#检查某字符是否分句标志符号的函数;如果是,返回True,否则返回False

def FindToken(cutlist, char):

if char in cutlist:

return True

else:

return False

#进行分句的核心函数

def Cut(cutlist,lines): #参数1:引用分句标志符;参数2:被分句的文本,为一行中文字符

l = [] #句子列表,用于存储单个分句成功后的整句内容,为函数的返回值

line = [] #临时列表,用于存储捕获到分句标志符之前的每个字符,一旦发现分句符号后,就会将其内容全部赋给l,然后就会被清空

for i in lines: #对函数参数2中的每一字符逐个进行检查 (本函数中,如果将if和else对换一下位置,会更好懂)

if FindToken(cutlist,i): #如果当前字符是分句符号

line.append(i) #将此字符放入临时列表中

l.append(''.join(line)) #并把当前临时列表的内容加入到句子列表中

line = [] #将符号列表清空,以便下次分句使用

else: #如果当前字符不是分句符号,则将该字符直接放入临时列表中

line.append(i)

return l

#以下为调用上述函数实现从文本文件中读取内容并进行分句。

for lines in file("t.txt"):

l = Cut(list(cutlist),list(lines.decode('gbk')))

for line in l:

if line.strip() !="":

li = line.strip().split()

for sentence in li:

print sentence

===================节操分隔线,以上为7月6日内容,以下为7月7日内容============================

不知何故,上述程序突然运行报错,位于“ l = Cut(list(cutlist),list(lines.decode('gbk'))) ”:UnicodeDecodeError: 'gbk' codec can't decode bytes in position 8-9: illegal multibyte sequence。

这肯定又是编码问题了!这是我目前最头疼的一个问题。这与那个t.txt的编码格式有关,之前是utf-8格式。经过多次尝试发现,把该文本文档的编码改为ANSI就又正常了。不懂,不理解,这东西吭爹!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值