当前可以从文本中提取隐喻的 NLP/NLU 技术有哪些?
例如
他的话比刀子更深。
或者更简单的形式,例如:
人生是一段路,无论路况多差,住宿条件多差,都必须走。
当前可以从文本中提取隐喻的 NLP/NLU 技术有哪些?
例如
他的话比刀子更深。
或者更简单的形式,例如:
人生是一段路,无论路况多差,住宿条件多差,都必须走。
这仍然是语言学的一个研究课题。快速的谷歌搜索带来了几篇可能有用的论文:
然而,你可能不会得到一个现成的工具来识别你的隐喻。
添加更多细节,隐喻的问题在于您无法仅通过表面结构来检测它们。任何句子都可以(理论上)是一个隐喻。这与明喻不同,明喻通常可以通过like这个词很容易地发现,比如她像风一样奔跑。显然,仅靠自己喜欢是不够的,但它是识别可能候选人的一个很好的起点。
然而,他的话比刀切得更深——从表面上看——是一个正常的句子。只有作为主语的词和作为主要动词的词之间的语义不一致才会产生冲突。为了自动检测到这一点,您需要识别语言角色的可能语义特征并寻找与预期模式的冲突。
动词cut通常会期望一个有生命的物体,最好是人类,或者一个带有刀片的工具(刀切开黄油)作为它的演员或主题。但它也可以包括(水)道:运河穿过景观,道路穿过田野。你越仔细观察,你会发现更多的例外/扩展你的初始假设。
每个扩展/异常都会降低隐喻检测算法的准确性。
第二个例子也类似:人生就是一段旅程。你也许可以使用同义词库,看看生活的同义词是什么。然后你可以对 Journey 做同样的事情,看看它们是否兼容。A car is a vehicle不是比喻,因为vehicle是 car 的同义词。但旅程不是生命的同义词,所以可以是一个隐喻。但我认为这仍然非常棘手。在这种情况下,没有一个限定词可能是一个暗示,因为它不是一个生命是一个旅程- 对于这种隐喻,您可能会限制自己使用裸名词。但这也不是一个固定的规则。
简而言之,这是一个难题,因为您需要查看含义,而不仅仅是结构或单词选择。尽管在 NLP 中进行了数十年的工作,但意义并不容易处理。