1

我是 python 新手,用书中的例子练习。我可以用一句话来形容:

>>> from nltk.stem import PorterStemmer
>>> stemmer=PorterStemmer()
>>> stemmer.stem('programming')
'program'

但是,例如,我不能通过 Porter 词干分析器运行文本文件的前 50 个单词。

编辑:除了拆分()之外还有其他方法吗?split() 有时会给出错误的结果。

4

2 回答 2

1

如果您正在读取每行有一个标记的文件,则应在运行词干分析器之前去除新行的标记。

from nltk.stem.porter import PorterStemmer

stemmer = PorterStemmer()

with open('tokens.txt', 'r') as fp:
    tokens = fp.readlines()

for t in tokens:
    s = stemmer.stem(t.strip())
    print(s)
于 2018-09-29T01:12:50.837 回答
-1

关于什么

wholefile = open("text.txt", "r").read()
words = wholefile.split()
stems = [ stemmer.stem(word) for word in words]

编辑:实际上,评论海报给了你同样的东西,但更全面。使用他的解决方案。

EDIT2:谢谢,falsetru :)

于 2015-02-08T18:04:41.080 回答