Python问题:我有一个句子列表,我想应用nltk词干。因此,对于每个句子中的每个单词,我想应用nltk snowball.stem函数。
我想通过理解列表尽可能短一些。下面的代码工作得很好,但是我想用更少的行编写它:
data_stemming=[]
for sentence in data:
word_list=word_tokenize(sentence)
stemmed_sentence=' '.join([stemmer.stem(w) for w in word_list])
data_stemming.append(stemmed_sentence)
print(data_stemming)产出:
['do do done', 'do requir', 'shoe shoe']有人能帮我一下吗?
非常感谢!
发布于 2022-11-07 22:42:59
nltk.word_tokenize接受string作为输入,但data是字符串的list。你需要的是:
data = ['doing do done', 'requires require', 'shoe shoes']
joined_data = ' '.join(data)
data_stemming=[[snowball.stem(w) for w in word_list] for word_list in nltk.word_tokenize(joined_data)]发布于 2022-11-11 09:45:51
你可以试着用一个单子来理解它。
data_stemming = [''.join([stemmer.stem(w) for w in word_tokenize]) for sentence in data]https://stackoverflow.com/questions/74353671
复制相似问题