【发布时间】:2022-01-18 13:57:39
【问题描述】:
您好,亲爱的,我对 nltk 停用词有疑问:如果我执行循环,则检查字母而不是单词的停用词。我怎样才能改变这种行为? 一个例子:
import pandas as pd
import nltk
stopword = nltk.corpus.stopwords.words('italian')
pd.set_option('display.max_colwidth', None)
df = pd.read_csv('esempioTweet.csv', sep =',')
def remove_stop(text):
text = [word for word in text if word not in stopword]
return text
df['Testo_no_stop'] = df['Testo_token'].apply(lambda x: remove_stop(x))
df.head()
给定上一个这样的列:
[covid, calano, i, nuovi, contagi, e, tamponi]
我希望得到这样的输出:
[covid, calano, nuovi, contagi, tamponi]
但我的输出如下:
[v,d,n, ...]
我知道停用词作用于单个字母而不是整个单词,为什么?我确信我的 remove_stop 函数以正确的方式工作,但为什么停用词以错误的方式运行?感谢您对我的耐心等待。
【问题讨论】:
-
print
stopword它可能是一个字符串,即不是一个列表。或打印df['Testo_token'],这可能是一个词 -
@balmy 我还尝试将新字符串定义为
prova = "oggi piove e non esco,但在这种情况下,停用词也作用于单个字母而不是单个单词 -
这种情况发生在例如
for ch in "I come in peace":你会收到单独的信件。您期待更多像for word in ["I","come","in","peace"]:那样对单词进行迭代。请将您的 csv 的几行示例放入您的问题中。
标签: python nlp nltk stop-words