我正在尝试执行POS,并且我对任何基于Java的标签器(目前使用OpenNLP)都是开放的。有没有办法“强制”标记者将特定的术语(或单词的组合)识别为特定的标记,并基于此对其他标记进行分类?在某种程度上允许对标签进行“交互式修正”。考虑到这样的“校正”是交互式的,用这种新信息实时地“完全训练”标记者是不现实的。
例如,考虑一句话:“我从来没有在湖里游过那么多的力气”。在这里,"swimming“是一个gerrund (名词,而不是动词),用户可能会说"swimming in the lake”是一个名词(在整个句子的上下文中)。如果他指定了这一点,如果标记者吐出"lake“作为单独的名词,这是不好的,因为"lake”已经是“在湖中游泳”的一部分。
你们认为最好的方法是什么?有API调用吗,或者在标记之前,我必须用其他东西替换掉“在湖里游泳”吗?但是,我不认为后一种方法是可靠的,因为我仍然依赖标记器来正确地标记它,而使用已经确切地告诉我它应该是什么。谢谢。
发布于 2015-04-15 05:36:51
如果你想在一个给定的固定POS机标签周围更改其他标签,(据我所知)在CoreNLP中没有办法在不重新训练标签者的情况下做到这一点。
但是,听起来你在这里想要的实际上是一个标记器的区别:“在湖里游泳”是一个名词短语,而不是一个名词,无论你如何训练POS标记器,它都会独立地标记短语中的四个单词。您可以做的一件事是使用分块程序(我认为OpenNLP有一个)或解析器来提取这些名词短语;实际上,即使词性标记器搞砸了,语法分析器也应该正确地猜测跨度是名词短语。
https://stackoverflow.com/questions/29625909
复制相似问题