是否可以将单词附加到现有的OpenNLP POS语料库/模型中?

时间:2014-12-04 18:56:50

标签: nlp text-mining opennlp pos-tagger

有没有办法训练现有的Apache OpenNLP POS Tagger模型?我需要在模型中添加一些特定于我的应用程序的专有名词。当我尝试使用以下命令时:

opennlp POSTaggerTrainer -type maxent -model en-pos-maxent.bin \
        -lang en -data en-pos.train -encoding UTF-8

整个模型都经过重新训练。我只想在en-pos-maxent.bin

附加一些新句子

这是我的培训文件的外观:

Where_WRB is_VBZ the_DT Seven_DNNP Dwarfs_DNNP Mine_DNNP Train_DNNP ?_?
Where_WRB is_VBZ the_DT Astro_DNNP Orbiter_DNNP ?_?
Where_WRB is_VBZ the_DT Barnstormer_DNNP  ?_?
Where_WRB is_VBZ the_DT Big_DNNP Thunder_DNNP Mountain_DNNP Railroad_DNNP  ?_?
Where_WRB is_VBZ the_DT Buzz_DNNP Lightyears_DNNP Space_DNNP Ranger_DNNP Spin_DNNP  ?_?
Where_WRB is_VBZ the_DT Casey_DNNP Jr_DNNP Splash_DNNP N_DNNP Soak_DNNP Station_DNNP  ?_?
Where_WRB is_VBZ the_DT Cinderella_DNNP Castle_DNNP  ?_?
Where_WRB is_VBZ the_DT Country_DNNP Bear_DNNP Jamboree_DNNP  ?_?
Where_WRB is_VBZ the_DT Dumbo_DNNP the_DNNP Flying_DNNP Elephant_DNNP  ?_?
Where_WRB is_VBZ the_DT Enchanted_DNNP Tales_DNNP with_DNNP Belle_DNNP  ?_?
Where_WRB is_VBZ the_DT Frontierland_DNNP Shootin_DNNP Arcade_DNNP  ?_?

训练模型后,除训练文件中的所有单词都标记为DNNP。 例如,如果我要求' Where' (在培训文件中显示)要标记,答案是WRB,但如果我问“你好”这个词。 (不存在于培训文件中)要标记,标记为DNNP。所以我想补充几句话。我怎么能这样做?

2 个答案:

答案 0 :(得分:4)

不幸的是,您无法通过其他培训实例来扩充OpenNLP模型。您需要使用原始训练数据和新数据重新训练整个模型,以获得所需的模型。您需要使用现有的(大型)POS标记语料库以及您的新示例来训练新的POS标记模型。

如果您只想识别某些类型的专有名词,您可以考虑使用您的数据训练OpenNLP NameFinder(或其他命名实体提取器),因为这种注释器更适合识别特定类型的专有名词。您只举几个例子,但我认为POS标记器无法区分普通NNP和新DNNP,因为它们与NNP在同一个上下文中出现并具有相同的形式(大写名词短语)。命名实体识别器是执行此类任务的更好工具。

答案 1 :(得分:1)

这也是前一段时间发布的,我可以给你一个答案:Yago数据库。

我在这里回复了自己的帖子:Is there a way to get the "original" text data for OpenNLP?

看看它