20

我想編寫一個用於詢問有關天氣問題的程序。我應該開始看什麼算法和技術。如何進行NLP任務以識別意圖和插槽

ex:這個週末在芝加哥會不會太陽? 我想知道意圖 =天氣查詢,日期 =本週末,位置 =芝加哥。

用戶可以用多種形式表達相同的查詢。

我想解決一些受限制的形式並尋找如何開始的想法。解決方案需要足夠好。

回答

24

由於您的輸入是自然語言形式,因此首先需要通過解析句子結構來開始查看它。並通過NER(命名實體識別器)運行該句。

解析句子讓你想出規則,例如某些類型的依賴關係總是會給你意圖。運行NER可讓您識別地點和日期。如果想出分類意圖的規則並不簡單,那麼也可以使用分類器來使用從輸入句子制定的特徵向量來做同樣的事情。事實上,一些解析器可以用於制定特徵向量。

對於這兩種存在軟件從Stanford NLP Group

可能是你可以看看:

一旦你解析這句話,你有意向和其他信息需要回答這個問題。

例如:我把你的句子「這週末在芝加哥會不會晴朗?」並通過Online Stanford NER Tagger運行。這給了我以下:

Will it be sunny this <DATE>weekend</DATE> in <LOCATION>Chicago</LOCATION> 

現在你已經確定日期和地點。

我希望這會有所幫助。我知道答案是非常通用的,對於剛入門可能會有所幫助。

+0

感謝您使用純英文!也幫助了我很多! – 2013-10-30 08:47:30

+0

優秀的起點。雖然我確實對非自然語言輸入(動作,事件,序列,對象)感興趣,並且沒有啓發式地進行。 – 2014-10-14 01:12:18

+2

根據本文中的解釋,似乎意圖是NLU解析的一個副產品。但是,在解析器能夠對意圖進行分類之前,必須在過程的某個地方進行意圖標記。無論標籤是手動過程還是真的可以通過一些語言知識完全自動化? – bhomass 2017-06-04 23:23:04

10

我覺得這個api正是你要找的。使用起來很簡單,很棒。

https://wit.ai/

3

此外,https://www.luis.ai/是一個很好的實現了NLP框架。他們有一個API以及一個nuget SDK。我們現在一直在使用它們一段時間。它們比我們看過的其他選項便宜。即wit.ai.這個週末會不會是陽光明媚的芝加哥 - >將映射到名爲WeatherQuery一個LUIS意圖:

前 -

所以重新您的例子。 日期 - >將映射到預先建立的LUIS dateTime實體 位置 - > chicago - >將映射到預先建立的LUIS實體 - >我認爲的地理或地址。