有没有Phrase head finder?

时间:2012-05-26 16:37:19

标签: java nlp

我有一些我要解析的句子。这就是我拥有的和我需要的东西:我有这样的句子:

  

我在医院。

     

我要从家到加拿大。

我想知道的是“在医院”,“从家里”和“到加拿大”的短语。

我正在使用Berkley解析器,但它给我的是所有句子的解析结果,如果我想手动提取短语的头部,我应该开发另一个解析器!我要解析的文件是一个非常大的文件,所以如果我自己开发一个解析器,它可能会有很多错误。是否有任何解析器可以给我我想要的结果?

顺便说一句,分别解析短语,与句子解析相比可能导致不同的解析,我坚持解析句子然后提取短语头。

2 个答案:

答案 0 :(得分:6)

S tanford ParserOpenNLP解析器将为您提供词性和相关性信息,您可以使用它们来确定短语的头部

例如,使用Stanford解析器,您将获得:

(S
  (NP (PRP I))
  (VP (VBD was)
      (PP (IN in)
          (NP (DT the)
              (NN hospital)))))

这告诉你句子(S)由名词短语(NP)和动词短语(VP)组成;动词短语是动词(V *)+介词短语(PP),它是中的介词和名词短语;第二名词短语是确定词(DT)和名词(NN)。

如果我理解这个问题,你正在寻找名词短语的头部(可能还有动词短语)。您可以从此信息中识别头部,但解析器也会为您提供以下依赖项信息:

nsubj(was, I)
prep_in(was, hospital)
det(hospital, the)

这告诉您 I 这两个词属于名义主题 nsubj 的关系( I 是动词的主题);单词 hospital 处于“in”介词( prep-in )关系中;单词“hospital”和“the”属于限定词( det )。使用先前的解析和依赖性信息,您可以判断第一个名词短语的头部是“I”(平凡),第二个名词短语的头部是“医院”(因为它是“顶部”)名词短语中关系的元素)

答案 1 :(得分:3)

如Attila的回应中所述,在短语中找到头字的问题并非微不足道。迈克尔柯林斯教授有一个寻找头词的启发式列表(他的启发式算法基于宾夕法尼亚大学银行数据集),斯坦福CoreNLP套件(我在20140104版本中查看)中提供了这些启发式的实现。

给出的响应here提供了有关斯坦福CoreNLP中为您提供主要词汇的类的更多详细信息。