Wxylkxy 发表于 2021-10-21 22:23

jieba问题求解

本帖最后由 Wxylkxy 于 2021-10-21 22:48 编辑

直接上图吧。jieba分词。我不李姐一样的代码不同电脑分的结果不一样。为啥会是单字符。快疯了真。直接上图吧。

ljl9090 发表于 2021-10-21 23:13

首先content.split()这个不用写,一个大文档直接分词,
主要可能是.split()这个步骤会导致表示字符串变成列表,其实一般不需要这一步:
#上面,没有赋值
content.split()
#而下面是
txt =txt.split()

然后单字符很正常,很多时候标点符号,和一些停用词 的,他,你,我,都是单字符,你选择通过停用词库整理,并可以自己增加词库,优先选择增加的词库,jieba.jieba.load_userdict,jieba.add_word("满地冰霜"),就只会生成满地冰霜
这里 通常

yanyi520 发表于 2021-10-21 23:15

感觉是那txt文件吧,我是新人,不太懂

ljl9090 发表于 2021-10-21 23:30

本帖最后由 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)

Wxylkxy 发表于 2021-10-22 08:30

ljl9090 发表于 2021-10-21 23:30
测试了一下,content.split(),实际上还是对原content处理,没有赋值成功,导致你在列表推导式的时候,就 ...

感谢大哥已经解决了。因为content没赋值。但是一段文本不懂 不去前后空格jieba不出来吗。

ljl9090 发表于 2021-10-22 11:29

Wxylkxy 发表于 2021-10-22 08:30
感谢大哥已经解决了。因为content没赋值。但是一段文本不懂 不去前后空格jieba不出来吗。

去空格,用s.strip()
然后如果存在行号或者有段落那种,使用s.replace("\n","") 思路吧
主要这里有个问题,如果就是一段字符串, s = " ......"
这里的话赋值效果只是多了一个list,变成,s1 = ,变成列表类型反而不能直接使用结巴了,还要遍历,其实遍历效果也只是jieba.lcut(s1) 因为列表长度为1
页: [1]
查看完整版本: jieba问题求解