Добавление слов в стоп-лист nltk - PullRequest
9 голосов
/ 01 апреля 2011

У меня есть некоторый код, который удаляет стоп-слова из моего набора данных, так как список стопов, похоже, не удаляет большинство слов, которые мне бы тоже хотелось это удалит их для этого случая. Код, который я использую для удаления стоп-слов:

word_list2 = [w.strip() for w in word_list if w.strip() not in nltk.corpus.stopwords.words('english')]

Я не уверен в правильном синтаксисе для добавления слов и, похоже, нигде не могу найти правильный синтаксис. Любая помощь приветствуется. Спасибо.

Ответы [ 8 ]

11 голосов
/ 12 сентября 2017

Вы можете просто использовать метод добавления, чтобы добавить к нему слова:

stopwords = nltk.corpus.stopwords.words('english')
stopwords.append('newWord')

или добавьте список слов, предложенный Чарли в комментариях.

stopwords = nltk.corpus.stopwords.words('english')
newStopWords = ['stopWord1','stopWord2']
stopwords.extend(newStopWords)
2 голосов
/ 21 марта 2015

То, как я это делал на своей машине с Ubuntu, я использовал Ctrl + F для «стоп-слов» в корне. Это дало мне папку. Я вошел в него, у которого были разные файлы. Я открыл «английский», в котором было всего 128 слов. Добавил мои слова к нему. Сохранено и сделано.

2 голосов
/ 08 января 2015

Также искал решение по этому вопросу. После некоторого следа и ошибки я должен добавить слова в стоп-лист. Надеюсь, это поможет.

def removeStopWords(str):
#select english stopwords
cachedStopWords = set(stopwords.words("english"))
#add custom words
cachedStopWords.update(('and','I','A','And','So','arnt','This','When','It','many','Many','so','cant','Yes','yes','No','no','These','these'))
#remove stop words
new_str = ' '.join([word for word in str.split() if word not in cachedStopWords]) 
return new_str
2 голосов
/ 01 апреля 2011

Я всегда делаю stopset = set(nltk.corpus.stopwords.words('english')) в верхней части любого модуля, который нуждается в этом. Тогда легко добавить больше слов в набор, а также быстрее проверять членство.

1 голос
/ 01 апреля 2011

Английские стоп-слова - это файл в nltk / corpus / stopwords / english.txt (я думаю, это было бы здесь ... у меня нет nltk на этой машине ... лучше всего искать 'english.txt внутри нло репо)

Вы можете просто добавить свои новые стоп-слова в этот файл.

также попробуйте посмотреть фильтры Блума , если ваш список стоп-слов увеличится до нескольких сотен

0 голосов
/ 12 февраля 2019
import nltk
stopwords = nltk.corpus.stopwords.words('english')
new_words=('re','name', 'user', 'ct')
for i in new_words:
    stopwords.append(i)
print(stopwords)
0 голосов
/ 20 января 2019

Я использую этот код для добавления новых стоп-слов в список стоп-слов nltk в python

from nltk.corpus import stopwords
#...#
stop_words = set(stopwords.words("english"))

#add words that aren't in the NLTK stopwords list
new_stopwords = ['apple','mango','banana']
new_stopwords_list = stop_words.union(new_stopwords)

print(new_stopwords_list)
0 голосов
/ 12 декабря 2017

В windows C: \ Users \ username \ AppData \ Roaming \ nltk_data \ corpora перейдите по этому пути для стоп-слов и измените его в соответствии с требованием

...