繁体   English   中英

在python中删除不在NLTK库中的停用词

[英]Removing stop words that are not in NLTK library in python

我一直在尝试从 NLTK 库中找不到的 csv 文件中删除停用词,但是当我生成新的数据框时,应该“清理”了一个附加部分,我仍然看到其中的一些词,并且我不知道如何删除它们。 我不确定我的代码有什么问题,但这里是:

import nltk
from nltk.tokenize import word_tokenize
from nltk.corpus  
import stopwords
from nltk.stem import WordNetLemmatizer
from nltk.corpus import stopwords
stop_words = stopwords.words('english')
print(len(stop_words))
stop_words.extend(["consist", "feature", "site", "mound", "medium", "density", "enclosure"])

def clean_review(review_text):
   # review_text = re.sub(r'http\S+','',review_text)
    review_text = re.sub('[^a-zA-Z]',' ',str(review_text))
    review_text = str(review_text).lower()
    review_text = word_tokenize(review_text)
    review_text = [word for word in review_text if word not in stop_words]
    #review_text = [stemmer.stem(i) for i in review_text]
    review_text = [lemma.lemmatize(word=w, pos='v') for w in review_text]
    review_text = [i for i in review_text if len(i) > 2]
    review_text = ' '.join(review_text)
    return review_text

filename['New_Column']=filename['Column'].apply(clean_review)```

删除停用词后,您正在对文本进行词形还原,这有时是可以的。

但是,您可能有词在词形还原后会出现在您的停用词列表中

看例子

>>> import nltk
>>> from nltk.stem import WordNetLemmatizer

>>> lemmatizer = WordNetLemmatizer()
>>> print(lemmatizer.lemmatize("sites"))
site
>>>

起初,您的脚本不会删除sites ,但在词形还原后,它应该。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM