ClassifierBasedPOSTagger
とclassifier_builder=MaxentClassifier.train
を使用してPOSタギングを実行しようとしています。ここではコードの一部は次のとおりです。NLTKのPOSタギングのための最大分類子の反復回数を変更するにはどうすればよいですか?
from nltk.tag.sequential import ClassifierBasedPOSTagger
from nltk.classify import MaxentClassifier
from nltk.corpus import brown
brown_tagged_sents = brown.tagged_sents(categories='news')
size = int(len(brown_tagged_sents) * 0.9)
train_sents = brown_tagged_sents[:size]
test_sents = brown_tagged_sents[size:]
me_tagger = ClassifierBasedPOSTagger(train=train_sents, classifier_builder=MaxentClassifier.train)
print(me_tagger.evaluate(test_sents))
しかし、コードを実行する時間後、私はそれはまだClassifierBasedPOSTagger(train=train_sents, classifier_builder=MaxentClassifier.train)
を初期化していることを参照してください。出力では、私は、コード実行の以下の部分を見ることができます:
==> Training (100 iterations)
Iteration Log Likelihood Accuracy
---------------------------------------
1 -5.35659 0.007
2 -0.85922 0.953
3 -0.56125 0.986
私は繰り返しは分類器は、任意の入力に品詞タグ付けをする準備ができている前に、100であることを行っていると思います。それは私が一日かかるだろうと思う。どうしてそんなに時間がかかるの?そして、反復を減らすことは、このコードを少し実用的にする(時間を短縮し、十分に役立つことを意味する)。そうなら、それらの反復を減らす方法は?
EDIT
1.5時間後、私は次のような出力が得られます。
==> Training (100 iterations)
Iteration Log Likelihood Accuracy
---------------------------------------
1 -5.35659 0.007
2 -0.85922 0.953
3 -0.56125 0.986
E:\Analytics Practice\Social Media Analytics\analyticsPlatform\lib\site-packages\nltk\classify\maxent.py:1310: RuntimeWarning: overflow encountered in power
exp_nf_delta = 2 ** nf_delta
E:\Analytics Practice\Social Media Analytics\analyticsPlatform\lib\site-packages\nltk\classify\maxent.py:1312: RuntimeWarning: invalid value encountered in multiply
sum1 = numpy.sum(exp_nf_delta * A, axis=0)
E:\Analytics Practice\Social Media Analytics\analyticsPlatform\lib\site-packages\nltk\classify\maxent.py:1313: RuntimeWarning: invalid value encountered in multiply
sum2 = numpy.sum(nf_exp_nf_delta * A, axis=0)
Final nan 0.991
0.892155885577594
は、アルゴリズムは、出力の最初の行で指定され、エラーのためとして100 iterations
に着くことになっていましたそれはしませんでしたか?トレーニングにかかる時間を短縮する方法はありますか?
このコードをコンピュータで実行するのにどれくらい時間がかかりますか? –
'size = int(len(brown_tagged_sents)* 0.05)'のために、私のシステムでは約4-5分かかりました。 – RAVI
私のシステムでは約1時間かかります。考えられる問題は何か?私はscipyをインストールした後、scipyとnumpyが速く動くようになることを知りました。 scipyのインストール後に再起動する必要がありますか? –