单词分词后删除停用词并降低大小写

时间:2018-11-05 07:22:31

标签: python nltk

我是NLP的新手,在执行以下任务时面临一些挑战。 我要执行这些任务顺序。 1.句子标记化 2.单词在每个句子上标记 3.小写 4.停止单词删除 5.使每个单词合法化

我试图编写一个函数来完成上述任务

import nltk
import numpy as np
import random
import string
from nltk.corpus import stopwords

def text_processing(input_str):
    tokens = nltk.sent_tokenize(input_str)#sentence tokenizing
    for words in tokens:
        each_word = nltk.word_tokenize(words)#word tokeninzing
        for i in each_word:
            lower_words = i.lower()
            stopwords_removed = [w for w in lower_words if not w in stopwords]
            print(stopwords_removed)

当我调用上述函数时

text_processing(new_doc)

我遇到此错误:TypeError:“ LazyCorpusLoader”类型的参数不可迭代。如何克服这个错误。

1 个答案:

答案 0 :(得分:0)

您不能直接使用停用词。
相反,您应该首先在Jupyter或终端中键入以下内容来下载资源:

nltk.download()

然后出现下载器,然后选择Corpus->停用词,然后下载。
enter image description here
然后您可以通过以下方式使用停用词:

my_stopwords = set(stopwords.words('english'))

参考:
https://www.geeksforgeeks.org/removing-stop-words-nltk-python/
NLTK and Stopwords Fail #lookuperror