NLTKのコーパスを用いたStopWord除去(英語)[Python][NLP]

8月 9, 2020

In [1]: from nltk.corpus import stopwords
In [2]: stopWords = stopwords.words('english')
In [3]: stopWords
Out[3]: ['i', 'me', 'my', 'myself', 'we', 'our', (省略)]
In[4]: len(stopWords)
Out[4]: 179
In[5]: words = ["he", "gets", "an", "apple"] # ストップワードを除去したい文をスペース区切りしたリスト
In[6]: [w for w in words if w not
in stopWords]
Out[6]: ['gets', 'apple']

終わり。


LookupErrorが発生した場合の対処法

In[1]: from nltk.copus import stopwords
In[2]: stopWords = stopwords.words('english')
Out[2]:
LookupError:
**********************************************************************
Resource stopwords not found.
Please use the NLTK Downloader to obtain the resource:
import nltk
nltk.download('stopwords')
Searched in:
- '/home/hoge/nltk_data'
- '/usr/share/nltk_data'
- '/usr/local/share/nltk_data'
- '/usr/lib/nltk_data'
- '/usr/local/lib/nltk_data'
- '/usr/nltk_data'
- '/usr/lib/nltk_data'
**********************************************************************

LookupError発生時は以下のコマンドを入力し、コーパスをダウンロードしエラー回避。

In[1]: import nltk
In[2]: nltk.download('stopwords')

Proxy下の場合は、エラーがでる。

In[1]: nltk.download('stopwords')
[nltk_data] Error loading stopwords: <urlopen error [Errno -5] No
[nltk_data]     address associated with hostname>
Out[1]: False

Proxy下の場合は、一旦ターミナルに戻って、以下のコマンドを打ってエラー回避。

# コーパスのダウンロード
$ sudo -E python -m nltk.downloader -d /home/hoge/nltk_data all

Python

Posted by vastee