我目前正在尝试使用NLTK构建通用(或实际通用的)POS标记器。我已经涉猎了棕色和树状体的语料库,但可能会定居在树状体的语料库中。
在学习过程中,我发现分类器POS标记器是最准确的。最大实体分类器本来是最准确的,但是我发现它使用了如此多的内存(和处理时间)以至于我不得不大大减少训练数据集,因此最终结果不如使用默认的朴素贝叶斯分类器那样准确。
有人建议我使用MEGAM。 NLTK支持MEGAM,但是我发现的所有示例都是针对通用分类器(例如,使用单词特征向量的文本分类器),而不是更具体的POS标记器。无需重新创建自己的POS功能提取器和编译器(即,我更喜欢使用NLTK中已经存在的功能),如何使用MEGAM MaxEnt分类器? IE。我该如何将其放入以下现有的MaxEnt代码中:
maxent_tagger = ClassifierBasedPOSTagger(train=training_sentences,
classifier_builder=MaxentClassifier.train )
最佳答案
这一类轮应该可以为ClassifierBasedPOSTagger训练MEGAM MaxentClassifier。当然,这假设已安装MEGAM(请下载here)
maxent_tagger = ClassifierBasedPOSTagger(train=train_sents, classifier_builder=lambda train_feats: MaxentClassifier.train(train_feats, algorithm='megam', max_iter=10, min_lldelta=0.1))
关于python - 尝试将MEGAM用作NLTK ClassifierBasedPOSTagger?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4467193/