通过Porter Stemmer运行文件

时间:2015-02-08 18:01:26

标签: python nltk porter-stemmer

我是python的新手并且使用书中的示例进行练习。 我可以说一句话:

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

但我不能通过Porter stemmer运行文本文件的前50个单词。

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

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分:-1)

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

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

EDIT2:谢谢,falsetru:)