python nltk 循环打印 header 而不是值

python nltk loop printing header instead of the value

我在 csv 文件中标记了句子,但是当我尝试删除 for 循环中的停用词时,它停止打印单词并为所有句子打印列 header 任何想法在哪里最后一行的错误?

for review in tokenized_docs:
    new_review = []
    for token in review:
        new_token = x.sub(u'', token)
        if not new_token == u'':
            new_review.append(new_token)
    tokenized_docs_no_punctuation.append(new_review)
    words=pd.DataFrame(tokenized_docs_no_punctuation)
    #print(words)
    print([word for word in words if word not in stops])

输出显示如下

应该是单词而不是列 header 数字。

由于代码中的 words 是数据框,因此 word 成为 for 循环中的列名 (0, 1, 2,.. )。

您可以直接更改为列表。例如,

# before
# words=pd.DataFrame(tokenized_docs_no_punctuation)

# after
words = tokenized_docs_no_punctuation[0]

对我有用。