首页 > 解决方案 > python nltk循环打印标题而不是值

问题描述

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

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])

输出显示如下

上

这应该是单词而不是列标题编号。

标签: pythonpandasnlptokenizestop-words

解决方案


正如words您的代码中的数据框一样,word在 for 循环中成为列名 (0, 1, 2,.. )。

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

# before
# words=pd.DataFrame(tokenized_docs_no_punctuation)

# after
words = tokenized_docs_no_punctuation[0]

为我工作。


推荐阅读