2013-03-18 97 views
0

我是NLP領域的新手,並對我的問題可能是愚蠢的或不正確的道歉。我期待着任何可以讓我的運動矢量朝向正確方向的幫助。自然語言查詢理解

現在我正在研究我的論文,並且有一個很重要的部分 - 自然語言查詢解析器。以前我有一些搜索引擎算法的經驗。但是現在我希望我的系統能夠「理解」某些類型的查詢,並且能夠將它粗略地轉換爲數據庫查詢語言來執行結構化搜索。例如,對於「我在俄羅斯生活的朋友」這個查詢,系統應該在表格中查找「人員」並選擇「國家=俄羅斯」。

我清楚地知道,結構化搜索不像例如垃圾郵件過濾那樣簡單的NLP問題,但是現在有很多這樣的系統:Siri,Google Now,Facebook Graph Search。他們能夠「理解」查詢,而不僅僅是給出排名結果列表(就像傳統的搜索引擎那樣),而是針對這些類型的信息進行適當的呈現。我對他們如何在裏面工作感興趣,但找不到足夠的信息。

我會很感激任何信息,任何參考資料和書籍,可以幫助我研究這些系統和我的論文進展。最好那些可以在實踐中應用,而不是國防部關閉發展:)

英語不是我的母語,對錯誤抱歉,我希望你能理解我的問題。

回答

2

您的問題過於寬泛。如果你想得到一個有用的答案,你必須更具體。


這裏有一個想法:從查詢中刪除任何填充物的話得到的關鍵字,然後分析關鍵詞,以確定其語義。例如:

my friends who live in Russia 

卸下填充詞:

friends live Russia 

分析(使用同義詞,語義和單詞列表):

friends -> people, 
live -> location, 
Russia -> country 

然後構造查詢。

+0

感謝您的回答。我知道我的問題很廣泛,對不起,但我也不期望具體的答案,只是運動矢量。通過這個例子,我想到了同樣的方向,只是想更多地瞭解在「分析」階段可用的方法和算法。 「同義詞,語義和單詞列表」就像你說的那樣。 – vas3k 2013-03-18 12:34:42

+0

@ vas3k這是最難的部分。國家名稱列表可以幫助您找出名詞是否是一個國家。同義詞(如朋友)可以簡化剩餘的分析。然後你必須通過查看動詞(即live)來找出用戶想要的內容。這就是我所能告訴你的。 – Virtlink 2013-03-18 12:46:23

+0

@Virtlink幸運的是,爲了這個目的,有[已經開發出的幾個開源工具](http://stackoverflow.com/questions/6689344/analysing-meaning-of-publisher/40732225#40732225),他們可以使這個任務更容易。 – 2016-11-22 04:52:58