【发布时间】:2012-02-16 22:44:27
【问题描述】:
有没有办法找到一个句子中所有仍然有意义且至少包含一个主语、动词和谓词/宾语的子句?
例如,如果我们有一个句子,例如“我将在下个月在奥斯汀的 SXSW 举办 NLP 研讨会”。我们可以从这句话中提取出以下有意义的子句:“我要去参加一个研讨会”、“我要去参加一个关于 NLP 的研讨会”、“我要在 SXSW 做一个关于 NLP 的研讨会”、“我要在 SXSW 做一个研讨会”、“我要在奥斯汀做一个研讨会”、“我下个月要做一个关于 NLP 的研讨会”等等。
请注意这里没有推论的句子(例如“下个月将在 SXSW 举行 NLP 研讨会”。虽然这是真的,但我们不需要将其作为这个问题的一部分。)。所有生成的句子都是给定句子的严格部分。
我们如何解决这个问题?我正在考虑创建带注释的训练数据,其中包含训练数据集中每个句子的一组合法子句子。然后编写一些监督学习算法来生成模型。
我对 NLP 和机器学习还很陌生,所以如果你们能提出一些解决这个问题的方法,那就太好了。
【问题讨论】:
-
在您的示例中,您是否还想要诸如“I am going”和“I am”之类的琐碎子句? “我下个月要去奥斯汀”怎么样?
-
@Adrian McCarthy:“我下个月要去奥斯汀”将属于问题中描述的“推导句子”。这里不需要这些,因为它们意味着对输入句子的语义处理,据我了解,这个想法只是在原始文本中包含/排除各种限定介词短语的组合。
-
@Adrian McCarthy:你提出了一个很好的观点。子句“我要去奥斯汀”在一定程度上处于推断句和“严格”子句之间的边界。但由于要求只列出句子中严格找到的子句,我们将跳过这句话。
-
@mjv:实际上,不,我的示例不需要语义来推断句子。解决您的问题的一种方法是枚举所有可能的子字符串并测试每个子字符串以查看它是否符合语法。那会发现“我下个月要去奥斯汀”。如果您想从所需的子句中省略这样的句子,那么我们需要对您所追求的内容进行更准确的定义。
-
我认为表达问题的一种方法是子句必须包含主句的主要动词(在这种情况下为“do”)作为子句本身的主要动词。我承认,问题的定义并不像所说的那样精确。
标签: parsing artificial-intelligence nlp machine-learning grammar