我是 python 新手,用书中的例子练习。我可以用一句话来形容:
>>> from nltk.stem import PorterStemmer
>>> stemmer=PorterStemmer()
>>> stemmer.stem('programming')
'program'
但是,例如,我不能通过 Porter 词干分析器运行文本文件的前 50 个单词。
编辑:除了拆分()之外还有其他方法吗?split() 有时会给出错误的结果。
我是 python 新手,用书中的例子练习。我可以用一句话来形容:
>>> from nltk.stem import PorterStemmer
>>> stemmer=PorterStemmer()
>>> stemmer.stem('programming')
'program'
但是,例如,我不能通过 Porter 词干分析器运行文本文件的前 50 个单词。
编辑:除了拆分()之外还有其他方法吗?split() 有时会给出错误的结果。
如果您正在读取每行有一个标记的文件,则应在运行词干分析器之前去除新行的标记。
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)
关于什么
wholefile = open("text.txt", "r").read()
words = wholefile.split()
stems = [ stemmer.stem(word) for word in words]
编辑:实际上,评论海报给了你同样的东西,但更全面。使用他的解决方案。
EDIT2:谢谢,falsetru :)