2016-05-31 55 views
3

轉達我有,我想提取那些表達以下語義的句子的集合:NLP:特定的語義確定是否在一個句子

我喜歡意大利美食。

這樣一個句子的結構和措辭有很多不同。一些例子:

  • 我喜歡意大利,中國和印度的食物。
  • 我喜歡的美食有中國,意大利和印度。
  • 我喜歡的一些美食包括印度,意大利和中國。
  • 我喜歡世界各地的各種美食,如意大利,中國和印度。

解決此問題的好方法是什麼?

我不是NLP的專家。這裏只是一些我能想到的:

  • 找同義詞「喜歡」和「美食」
  • 使用解析器(斯坦福或Parsey McParseface)
  • 修剪的依賴關係樹句子
  • 構建依賴樹只包括主語(如'I'),動詞關鍵詞(如'like'),名詞關鍵詞(如'food')和名詞修飾語(如'Italian')。這可以通過找到覆蓋樹中所有這些節點的路徑來完成。
  • 存儲訓練語句的依賴樹的集合。如果測試句子的依賴關係樹在訓練中存在
  • 檢查

任何意見,建議和/或意見,將不勝感激!

+1

這是一個關係抽取任務,並且所有的nlp任務都不容易。斯坦福CoreNLP有一個關係提取模塊。看看你是否可以使用它或訓練你的數據。 –

回答

2

我認爲你是在正確的軌道上。我的想法需要您找到的同義詞(例如,「enjoy」=「like」=「love」,「food」=「cuisine」)。如果你看一下你的陰莖,你可以找到所有的句子有一些相同的圖案,即

--- --- 欣賞/喜歡/愛 --- 意大利 ---

「 - 」表示句子中的所有其他標記。您可以使用模式挖掘算法(即PrefixSpan)首先發現此模式。如果你已經完成了這一步,那麼你幾乎接近答案。關於如何在模式結尾添加單詞「美食」,您可能需要使用斯坦福依賴解析器來獲取依賴關係,並提取由「意大利語」和「美食」組成的對。最後你可以結合這兩個結果並得到你的答案。要測試一個句子,只要看看它是否具有該模式即可。

如果這種模式不存在或者句子的語法太複雜以至於找不到模式,那麼這種方法確實有限制。而且它不在語義層面上。因此,我對其他人如何解決這種情況的答案很感興趣。如果我得到關於如何在真實語義層面解決它的一些想法,我會更新。

希望它有幫助。

相關問題