18

データ セットからストップ ワードを削除するコードがいくつかあります。ストップ リストは大部分の単語を削除していないように見えるため、このストップ リストに単語を追加して、削除されるようにします。この場合のそれら。ストップワードを削除するために使用しているコードは次のとおりです。

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

単語を追加するための正しい構文がわからず、正しい構文がどこにも見つからないようです。どんな助けでも大歓迎です。ありがとう。

4

10 に答える 10

3

私のUbuntuマシンでのやり方は、ルートの「ストップワード」に対してctrl + Fを押すことでした。フォルダをくれました。さまざまなファイルが含まれているその中に足を踏み入れました。128語弱の「english」を開いた。そこに私の言葉を付け加えました。保存して完了。

于 2015-03-21T08:40:49.967 に答える
2

英語のストップ ワードは、nltk/corpus/stopwords/english.txt 内のファイルです (ここにあると思います...このマシンには nltk がありません..最善の方法は、nltk リポジトリ内で 'english.txt を検索することです)。

このファイルに新しいストップ ワードを追加するだけです。

また、ストップ ワード リストが数百に増えた場合は、ブルーム フィルターを調べてみてください。

于 2011-04-01T11:11:29.867 に答える
2

これに関する解決策も探していました。いくつかの試行錯誤の後、ストップリストに単語を追加する必要がありました。お役に立てれば。

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
于 2015-01-08T13:40:00.827 に答える
2

私は常にstopset = set(nltk.corpus.stopwords.words('english'))それを必要とするモジュールの一番上で行います。その後、セットに単語を追加するのは簡単で、メンバーシップのチェックも高速です。

于 2011-04-01T16:01:14.627 に答える
0
 import nltk
 nltk.download('stopwords')
 from nltk.corpus import stopwords
 #add new words to the list
 new_stopwords = ["new", "custom", "words", "add","to","list"]
 stopwrd = nltk.corpus.stopwords.words('english')
 stopwrd.extend(new_stopwords)
于 2017-12-12T06:27:32.940 に答える
0

STOP_WORDS.add(“Lol”) #お好みで新しいストップワードをコーパスに追加

于 2021-06-07T05:17:21.130 に答える