假设有一句话:
On March 1, he was born.将其更改为
He was born on March 1.不会破坏句子的意思,它仍然有效。以任何其他方式混洗单词都会产生奇怪的无效句子。所以基本上,我说的是句子的一部分,这使得信息更具体,但删除它们并不会破坏整个句子。有没有NLP库可以识别这样的部件?
发布于 2010-04-24 11:29:06
Constituents
这听起来像是您想要识别句子的,它是一组单词,根据语言的语法作为一个单独的单元进行操作。
事实上,当语言学试图发现一种语言的语法时,他们在一定程度上通过查看movement来实现。与您的示例一样,这是一组单词可以移动到句子中的不同位置,同时仍然保留句子的含义。
成分可以是单个单词、短语,甚至是更大的组,比如整个从句。在一个句子中,它们具有嵌套的层次结构。例如,你给出的第一个例句可以分析为:
(S (PP (IN On) (NP (NNP March) (CD 1)))
(NP (PRP he))
(VP (VBD was) (VP (VBN born))))整个句子由一个prepositional phrase组成,后跟一个noun phrase,然后是一个verb phrase。介词短语可以进一步分解为一个单元,该单元由单个单词'On‘后跟一个名词短语组成。
短语结构分析器
要自动查找构成成分,您可能需要使用短语结构解析器。有许多这样的解析器可供选择,这些解析器都是开源的,包括:
编写的Collins解析器的重新实现和改进版本
Stanford和Berkeley解析器可能是最容易安装和使用的。正如在Cer et al. 2010中所看到的,最准确的解析器是Berkeley和Charniak。与其他解析器相比,Bikel解析器速度较慢,精度也较低。
在线演示
斯坦福大学的解析器here有一个在线演示。我使用了演示来生成上面给出的示例句子的语法分析。
关于删除的说明
在每个成分中,都会有一个head word。例如,使用名词短语:
(NP (DT The) (JJ big) (JJ blue) (NN ball))
这里的中心词是名词ball,它由形容词big和blue修饰。如果这个名词短语被嵌入到一个句子中,你可以删除这些修饰语,并且仍然有一些与原始句子的意思一致但不那么具体的东西。
在名词短语中,通常可以删除形容词、非中心语的名词和嵌套介词短语。
在动词短语和完整从句中,事情变得更加棘手,因为删除作为动词参数的材料可能会完全改变句子的解释。例如,在He sold Jim.中从the book中删除He sold Jim the book会导致
发布于 2010-04-23 23:13:01
OpenNLP可能会为您做一些这方面的工作。Phrase chunking和解析应该可以帮助你做到这一点。然而,这并不是一个特别简单的问题,随着句子结构变得更加复杂和模糊,算法往往会变得混乱。有时,您应该能够对句子中的短语进行重新排序并保持含义。
https://stackoverflow.com/questions/2699646
复制相似问题