我想知道是否有人熟悉任何算法句子否定的尝试.
例如,给出这样一句话,“这本书很好”提供了任何数量的替代句子,意思相反,就像“这本书不好”,甚至“这本书不好”.
显然,高精度地完成这一点可能超出了当前NLP的范围,但我确信已经有了这方面的工作.如果有人知道任何工作,请注意一些文章?
解决方法
虽然我没有意识到任何专门研究自动产生否定句子的工作,但我想象一个好的开始是在
formal semantics和
pragmatics中阅读语言学工作.一个很好的可访问性介绍将是
Steven C. Levinson’s Pragmatics的书.
我想你会遇到的一个问题是,否定一个句子所传达的所有信息可能非常困难.例如:
John fixed the vase that he broke.
即使你改变这个约翰也没有修理他破坏的花瓶,有一个presupposition有一个花瓶,约翰打破了它.
同样,仅仅否定约翰没有停止使用毒品,因为约翰停止使用药物仍然传达约翰在某一时刻使用毒品.约翰从来没有使用毒品,更彻底否定.
一些现有的自然语言处理(NLP)工作,您可能想要看的是MacCartney和Manning 2007的Natural Logic for Textual Inference.在本文中,他们使用乔治·拉科夫的自然逻辑和桑切斯·巴伦西亚的单调性演算的概念来创建软件,自动确定一个句子是否需要另一个.你可以用一些他们的技术来检测不必要的人为地构造否定和矛盾的句子.