酸洗训练有素的NLTK Mod

2024-06-01 04:38:41 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我目前正在训练一个隐马尔可夫模型,它是关于一组外科数据的,如下所示:

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

如果有帮助的话,'model'被给出为'HiddenMarkovModelTagger 15个状态和90个输出符号'

然而,在我的机器上运行这个完整的训练需要将近一个小时。我希望能够序列化nltk模型输出'model'以在会话之间加载和保存。我已经读过了,每个人似乎都在使用Python内置的pickle,对于已知的数据类型,它工作得非常好。我甚至可以使用以下代码来提取经过训练的模型变量:

^{pr2}$

但是当尝试加载pickled文件时,我得到了一个错误:

/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的问题吗?在


Tags: 数据模型selfmodelinittagrangetrain