2016-01-06 5 views
5

これまではNgramModelクラスをnltkでエラーなく使用しました。しかし、最近nltkをversion 3.1に更新しましたが、NgramModelクラスが見つかりません。私はいつものようにインポートしようとすると:nltk NgramModelエラー

from nltk.model import NgramModel

を私はエラーに

ImportError: No module named 'nltk.model'を取得します。

NgramModelまたはmodelモジュールが最近交換されましたか?

+1

NgramModelが安定するまで、https://github.com/kpu/kenlmとそのpythonラッパーを試すことができます。 – alvas

答えて

6

これはbugsのためopen issueです。

これは問題で注目される:モデルのブランチへ

If you're currently using the version from github, you can switch to the "model" branch, which includes the NgramModel code, though it's currently significantly behind the "develop" branch and hasn't picked up all the newest bug fixes.

リンクがhereです。

+2

ありがとう!バグのため、同じ言語モデル機能を持​​つ別のモジュールに切り替えることをお勧めしますか? – istewart

+1

@istewartバグが気にならなかった場合は、おそらくNLTKのローカルインストールに 'model'モジュールを追加するだけです。このようにして、新しいNLTK機能と必要な 'NGramModel'機能の両方を提供します。しかし、YMMV。 – erip

+1

更新:私はちょうど期待どおりに更新しました、そして、今は 'NgramModel'がうまくインポートします。しかし、言語モデルを構築した後、エントロピーを計算しようとしたところ、次のエラーが発生しました: 'ファイル" /Library/Python/2.7/site-packages/nltk/model/ngram.py "、171行目 return self._probdist.prob((context、word))AttributeError: 'NgramModel'オブジェクトに '_probdist'属性がありません 可能であれば、別の言語モデルクラスを使用しています。 – istewart