如何使用词性标注器标记字段特定名词?

时间:2014-02-03 06:10:34

标签: java nlp information-retrieval stanford-nlp opennlp

我想使用词性技术在一个句子中标记特定字段,例如技术和科学名词。

示例

考虑句子:

1)计算机需要键盘,监视器,CPU才能工作。
2)汽车使用齿轮和离合器。

现在我的目标是,例句必须标记为

  • 第一句
  

计算机/技术
    需要/名词
  键盘/技术
  CPU /技术
  到/介词
  工作/动词

  • 第二句

      

    汽车/机械
      用/动词
      齿轮/机械
      和/   离合器/机械

  •   
  我的需要
   我想在java上实现上面提到的目标,即通过技术,机械,电气等相关领域来标记名词。

我之前的作品
我已经使用过Stanford NLP,Open NLP,但他们正在标记POS,但不满足需要。

请告诉我怎么做?

2 个答案:

答案 0 :(得分:1)

有趣的问题,这里有一些想法。由于您需要使用词性,请使用OpenNLP等词性标注器,这将为您提供所需的POS标签。第二部分有点棘手(对某些单词进行分类)。如果映射到类别的单词将受到限制,您可以简单地使用查找列表,有时这是最简单和最准确的,使用NER模型会给您一些噪音。如果没有,那么你可以做已经建议的,就是训练一个NER模型。

答案 1 :(得分:1)

命名实体识别(NER)是一种实体识别/提取系统,它将文本中的实体定位并将其分类为预定义的类别(例如主板 - >技术,RAM - >技术随机访问内存 - >技术)。 NER通常使用基于语言语法的方法和统计方法。我怀疑你需要为你的任务深入了解这些方法的细节。如果您确实感兴趣,请随时阅读conditional random fields

据我所知,您所需要的只是能够根据您的类别(即技术,机械等)训练您自己的NER。 The Stanford NER FAQ page提供了有关如何执行此操作的充分信息。

为了直观地了解最终系统的工作原理,您可以查看online demo of the Stanford NER。他们提供英语,中文和德语分类。有三种英语分类器在3类,4类和7类中进行了训练......试试看,然后亲自看看。

我试图尽可能简洁。在SO上无法详细介绍NER。我希望我的答案以及提供的链接可以帮助您完成任务。