jieba问题求解
本帖最后由 Wxylkxy 于 2021-10-21 22:48 编辑直接上图吧。jieba分词。我不李姐一样的代码不同电脑分的结果不一样。为啥会是单字符。快疯了真。直接上图吧。 首先content.split()这个不用写,一个大文档直接分词,
主要可能是.split()这个步骤会导致表示字符串变成列表,其实一般不需要这一步:
#上面,没有赋值
content.split()
#而下面是
txt =txt.split()
然后单字符很正常,很多时候标点符号,和一些停用词 的,他,你,我,都是单字符,你选择通过停用词库整理,并可以自己增加词库,优先选择增加的词库,jieba.jieba.load_userdict,jieba.add_word("满地冰霜"),就只会生成满地冰霜
这里 通常 感觉是那txt文件吧,我是新人,不太懂 本帖最后由 ljl9090 于 2021-10-21 23:31 编辑
ljl9090 发表于 2021-10-21 23:13
首先content.split()这个不用写,一个大文档直接分词,
主要可能是.split()这个步骤会导致表示字符串变 ...
测试了一下,content.split(),实际上还是对原content处理,没有赋值成功,导致你在列表推导式的时候,就会形成 [《,鹿,鼎,记,] 这是你对每个字符串的遍历,结巴在这里没用意义,结巴只是详相当于多加了一层[],所以,建议这样改content = content.split
或者如果没有其它的特殊情况,
直接这样
with open() as f:
data =f.read()
#添加停用词处理,以及词库
res_word = jieab.lcut(data)
ljl9090 发表于 2021-10-21 23:30
测试了一下,content.split(),实际上还是对原content处理,没有赋值成功,导致你在列表推导式的时候,就 ...
感谢大哥已经解决了。因为content没赋值。但是一段文本不懂 不去前后空格jieba不出来吗。 Wxylkxy 发表于 2021-10-22 08:30
感谢大哥已经解决了。因为content没赋值。但是一段文本不懂 不去前后空格jieba不出来吗。
去空格,用s.strip()
然后如果存在行号或者有段落那种,使用s.replace("\n","") 思路吧
主要这里有个问题,如果就是一段字符串, s = " ......"
这里的话赋值效果只是多了一个list,变成,s1 = ,变成列表类型反而不能直接使用结巴了,还要遍历,其实遍历效果也只是jieba.lcut(s1) 因为列表长度为1
页:
[1]