5

我目前正在尝试使用 NLTK 构建一个通用(或尽可能通用)的 POS 标记器。我已经涉足了 brown 和 treebank 语料库进行培训,但可能会选择 treebank 语料库。

边走边学,我发现分类器词性标注器是最准确的。最大实体分类器应该是最准确的,但我发现它使用了太多内存(和处理时间),以至于我必须显着减少训练数据集,因此最终结果不如使用默认的朴素贝叶斯分类器准确。

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

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

2 回答 2

8

这一条线应该适用于为 ClassifierBasedPOSTagger 训练 MEGAM MaxentClassifier。当然,前提是已经安装了 MEGAM(到这里下载)

maxent_tagger = ClassifierBasedPOSTagger(train=train_sents, classifier_builder=lambda train_feats: MaxentClassifier.train(train_feats, algorithm='megam', max_iter=10, min_lldelta=0.1))
于 2010-12-17T17:14:32.740 回答
2

对于未来的用户:

Megam 现在可在 MAC 上使用:

$brew tap homebrew/science
$brew install megam

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

于 2014-06-24T14:57:19.520 回答