我有一系列句子,我想从中提取那些表达以下语义含义的句子:
我喜欢意大利菜。
这种句子的结构和措辞有很多变化。一些例子:
解决这个问题的好方法是什么?
我不是NLP的专家。这是我能想到的:
非常感谢任何想法,建议和/或评论!
答案 0 :(得分:2)
我认为你走在正确的轨道上。我的想法需要您识别的同义词(例如,"享受" ="喜欢" ="爱" ,& #34;食物" ="美食" )首先。如果你看一下你的语料库,你会发现所有的句子都有一些相同的模式,即
--- 我 --- 喜欢/喜欢/喜欢 --- 意大利语 ---
" - "表示句子中的所有其他标记。您可以使用模式挖掘算法(即PrefixSpan)来首先发现此模式。如果你已完成这一步,那么你几乎接近答案。关于如何添加单词" cuisine"在模式结束时,您可能需要使用Stanford Dependency Parser来获取依赖关系,并提取包含单词" Italian"和"美食"。最后,您可以将这两个结果结合起来并得到答案。要测试一个句子,只要看看它是否有模式即可。
如果不存在这样的模式或者句子的语法太复杂而无法找到模式,则该方法确实存在限制。而且它不在语义层面。因此,我对其他人如何解决这种情况非常感兴趣。如果我得到一些关于如何在真实语义层面解决它的想法,我会更新。
希望它有所帮助。