【开发心得】python+jieba分词失败的原因

博主在进行Python词频分析时遇到程序无法运行的问题,通过排查确定问题出在stopWord.txt文件的编码上。文件在Spyder中显示为乱码,导致jieba分词失败。解决方案是将stopWord.txt转换为UTF-8格式,从而解决了数组溢出错误。博主提醒在处理语言分析程序时,应注意文件编码,避免此类低级错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天用python做词频分析的时候,突然发现之前写好并可以运行的程序无法运行了。根据排除法,肯定不是程序的问题,只能一个一个排查下去。

首先,排除了分析文本无法读取的问题,下面的代码可以正常运行:

f = open("h:\\test.txt","r",encoding='UTF-8')  # 以追加的方式

message = f.readlines()

然后,再排除过滤分词的问题,如下代码也可以正常运行:

item = line.strip('\n\r').split('\t')

最后,发现报错的语句是数组溢出,应该与后面这句有关系:

if '-' not in str(item[0]):
                jieba.analyse.set_stop_words('h:\\stopWord.txt') #停用词
                allow_pos = ('n','nr','ns')
                tags = jieba.analyse.extract_tags(item[0],topK=10,withWeight=False,allowPOS=allow_pos)  
#                print(tags)

发现print(tags)这句没有执行,回过头来,逐个注释,发现下面这句注释以后正常了!

jieba.analyse.set_stop_words('h:\\stopWord.txt') #停用词

估计问题应该出在stopWord.txt,用notepad++打开是正常的,但是用spyder打开,发现内容是乱码,难怪无法分词!

解决方案:将stopWord.txt转成UTF8格式,问题解决!

反思:类似语言处理的程序,对于编码格式尤其要小心,不确定的情况下,首先将所有需要读取的文件都转成UTF8格式,才能不发生这种低级错误

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

战斗模式

如果有帮助,就来一杯咖啡吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值