は、私が実行している特定のスクリプトのために、私はnltk
以下のパッケージからインストールしておく必要があります。ダウンロードしたnltkサブパッケージを横断/ナビゲートしますか?
req_modules = ['punkt', 'stopwords', 'averaged_perceptron_tagger', 'maxent_ne_chunker']
私はこのように、stopwords
がダウンロードされているかどうかを確認することができます知っている:については
import nltk
import os
if 'stopwords' in os.listdir(nltk.data.find('corpora')):
print(True)
else:
print(False)
私は前にstopwords
を使っていたので、これはうまくいきます。
if not all(m in os.listdir(nltk.data.find('models')) for m in ['punkt', 'averaged_perceptron_tagger', 'maxent_ne_chunker']:
# download the ones that aren't already downloaded
彼らはすべてのnltk.download()
でアクセスダウンローダのモジュールとしてラベル付けされています。しかし、私は最終的のようなものを使用して、他の三つのモジュールがインストールされている場合、プログラムでチェックできるようにしたいです。これは、簡単に検索する必要がありますので、私は1つのリスト内のすべてのダウンロードされたサブパッケージを取得するには、このような何かを試してみました:
all_downloaded = os.listdir(nltk.data.find("corpora")) + os.listdir(nltk.data.find("models"))
しかし、私は
LookupError: Resource 'models' not found
を取得します。
nltk.data
の
'models'
タブを検索するには、
'corpora'
のように検索するにはどうすればよいですか?
は、以下の提案を考慮に入れる:私はこれらのリソースを見つけるための命名規則を前提とすると、「コーパス」は編集
下記のダウンローダで見られるタブと同じ名前であるように、同じです私は以下のコードを試しましたが、例外処理があってもまだ
ImportError
になります。そこには何が起こっているのですか?
req_modules = {'from nltk import punkt': 'punkt', 'from nltk.corpus import stopwords': 'stopwords',
'from nltk import pos_tag': 'averaged_perceptron_tagger',
'from nltk import ne_chunk': 'maxent_ne_chunker',
'from nltk.stem.porter import PorterStemmer': 'porter_test'}
for m in req_modules:
try:
print("Trying: %s" % m)
exec(m)
except LookupError or ImportError:
print("Tried: %s. Resource '%s' was not available and is being downloaded.\n" % (m, req_modules[m]))
nltk.download(req_modules[m])
編集2:
私はそれは用事、動作するようになりました。私はfrom nltk import porter_test
をfrom nltk.stem.porter import PorterStemmer
に変更しました。
したがって、nltkの "Models"部分でダウンロードされたモデルの存在を検索することは、os.listdir( 'nltk.data.find'の 'stopwords'のようなもの) "コーパス")) '? – blacksite
「モデル」は単にダウンローダーのメニュータブです。そこに 'book'フォルダがないように、' nltk_data'フォルダ階層との関係はありません。そして、あなたは 'nltk'ではなく' nltk_data'を意味していたに違いありません。 – alexis
ちなみに、ファイルの存在をチェックするときは、 'os.listdir()'全体を取得してファイルをチェックしないでください。 http://stackoverflow.com/questions/82831/how-do-i-check-whether-a-file-exists-using-pythonを参照してください。 – alexis