【问题标题】:python nltk loop printing header instead of the value [duplicate]python nltk循环打印标题而不是值[重复]
【发布时间】:2020-04-14 16:55:22
【问题描述】:

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

输出是这样的

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

【问题讨论】:

    标签: python pandas nlp tokenize stop-words


    【解决方案1】:

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

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

    # before
    # words=pd.DataFrame(tokenized_docs_no_punctuation)
    
    # after
    words = tokenized_docs_no_punctuation[0]
    

    为我工作。

    【讨论】:

    • 我现在试过了,它是正确的,但它一遍又一遍地打印同一个句子,而不是跳下一个句子
    • 谢谢,你的回答帮我解决了问题,我把代码改成这样 words = tokenized_docs_no_punctuation[0:]
    猜你喜欢
    • 2020-04-18
    • 2018-02-04
    • 1970-01-01
    • 2020-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多