试图将MEGAM用作NLTK ClassifierBasedPOSTagger?

时间:2010-12-17 02:29:41

标签: python nlp nltk pos-tagger

我目前正在尝试使用NLTK构建一个通用(或一般的实用)POS标记器。我已经涉足棕色和树木语料库进行训练,但可能会在树库语料库中定居。

随着学习,我发现分类器POS标签是最准确的。最大实体分类器意味着最准确,但我发现它使用了大量内存(和处理时间),我必须大大减少训练数据集,因此最终结果不如使用默认的朴素贝叶斯分类器。

有人建议我使用MEGAM。 NLTK对MEGAM有一些支持,但我发现的所有示例都是针对一般分类器(例如,使用单词特征向量的文本分类器),而不是更具体的POS标记器。无需重新创建我自己的POS功能提取器和编译器(即我更喜欢使用已经在NLTK中的那个),我如何使用MEGAM MaxEnt分类器? IE浏览器。我怎么能把它放在一些现有的MaxEnt代码中:

maxent_tagger = ClassifierBasedPOSTagger(train=training_sentences,
                                        classifier_builder=MaxentClassifier.train )

2 个答案:

答案 0 :(得分:8)

这个衬垫应该用于训练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))

答案 1 :(得分:2)

对于未来的用户:

Megam现在可在MAC上使用:

$brew tap homebrew/science
$brew install megam

如果您没有XQuartz,它可能会要求您先获得XQuartz。这是直接下载链接: http://xquartz.macosforge.org/downloads/SL/XQuartz-2.7.5_rc4.dmg