6

だから私は現在、次のような手術データのセットで隠れマルコフモデルをトレーニングしています:

nltkTrainer = nltk.tag.hmm.HiddenMarkovModelTrainer(range(15),range(90))
model = nltkTrainer.train_unsupervised(data, max_iterations=3)

参考になれば、「モデル」は「HiddenMarkovModelTagger 15 の状態と 90 の出力シンボル」として与えられます

ただし、私のマシンでこの完全なトレーニングを実行するには、1 時間近くかかります。nltk モデル出力「モデル」をシリアル化して、セッション間でロードおよび保存できるようにしたいと考えています。私は読んだことがありますが、誰もが Python の組み込みの pickle を使用しているようです。これは、既知のデータ型に対してすべてうまく機能します。このコードを使用して、トレーニング済みのモデル変数をピクルすることもできます。

f = open('my_classifier.pickle', 'wb')
pickle.dump(model, f)
f.close()

しかし、ピクルス化されたファイルを読み込もうとすると、次のエラーが発生します。

/usr/local/lib/python2.7/dist-packages/nltk/probability.pyc in __init__(self, probdist_dict)
   1971         """
   1972         defaultdict.__init__(self, DictionaryProbDist)
-> 1973         self.update(probdist_dict)
   1974 
   1975 ##//////////////////////////////////////////////////////

TypeError: 'type' object is not iterable

誰かがこれを回避する方法を見つけましたか? NLTKの問題ですか?

4

0 に答える 0