簡體   English   中英

使用ChatBot訂購電影票

[英]Ordering movie tickets with ChatBot

我的問題與我剛剛開始研究的項目有關,而且它是一個ChatBot。

我想要構建的機器人有一個非常簡單的任務。 它必須自動化購買電影票的過程。 這是非常接近的域,並且機器人具有對影院數據庫的所有必需訪問權。 當然,如果用戶消息與訂購電影票的過程無關,那么機器人可以像“我不知道”那樣回答。

我已經創建了一個簡單的演示,只是為了向少數人展示它,看看他們是否對這樣的產品感興趣。 該演示使用簡單的DFA方法和一些簡單的文本匹配與詞干。 我在一天內入侵了它,結果發現用戶對他們能夠成功訂購他們想要的門票感到印象深刻。 (該演示使用與影院數據庫的連接,為用戶提供所需的所有信息,以便訂購他們想要的門票)。

我目前的目標是創建下一個版本,一個更高級的版本,特別是在自然語言理解方面。 例如,演示版本要求用戶在單個消息中僅提供一個信息,並且無法識別他們是否提供了更多相關信息(例如電影標題和時間)。 我讀到這里有用的技術被稱為“幀和插槽語義”,它似乎很有希望,但我還沒有找到有關如何使用這種方法的任何細節。

而且,我不知道哪種方法最適合改善自然語言理解。 在大多數情況下,我考慮:

  1. 使用“標准”NLP技術以更好地理解用戶消息。 例如,同義詞數據庫,拼寫糾正,詞性標簽,訓練一些基於統計的分類器來捕捉相似性和單詞之間的其他關系(或者如果可能的話,在整個句子之間?)等。
  2. 使用AIML為會話流建模。 我不確定在這樣一個封閉的領域中使用AIML是否是個好主意。 我從來沒有用過它,所以這就是我要問的原因。
  3. 使用更“現代”的方法並使用神經網絡訓練用於用戶消息分類的分類器。 但是,它可能需要大量標記數據
  4. 我不知道的任何其他方法?

哪種方法最適合我的目標?

你知道在哪里可以找到更多有關“框架和插槽語義”如何工作的資源嗎? 在談到框架和插槽方法時,我指的是斯坦福的PDF

問題相當廣泛,但這里有一些想法和實用建議,基於NLP和基於文本的機器學習在類似問題領域的經驗。

我假設雖然這是聊天機器人的“更高級”版本,但可行的工作范圍非常有限。 在我看來,這是一個非常重要的因素,因為不同的方法在使它們工作所需的手工工作量和類型上存在很大差異,而且最先進的技術可能在這里很難實現。

通常,要考慮的兩種主要方法是基於規則和統計。 第一個傳統上更側重於模式匹配,並且在您描述的設置中(可以投入有限的努力),將涉及手動處理規則和/或模式。 這種方法的一個例子是使用一組封閉(但很大)的模板來匹配用戶輸入(例如使用正則表達式)。 這種方法在性能方面通常具有“玻璃天花板”,但可以相對快速地產生相當好的結果。

統計方法更多的是為一些ML算法提供一堆數據並讓它從中提取規律性,將手動工作集中在收集和標記好的訓練集上。 在我看來,為了獲得“足夠好”的結果,您需要的數據量可能非常大,除非您能夠想出一種方法來輕松收集大量至少部分標記的數據。

實際上我建議在這里考慮混合方法。 使用一些基於ML的統計通用工具從用戶輸入中提取信息,然后應用手動構建的規則/模板。 例如,您可以使用Google的Parsey McParseface進行語法分析,然后對結果應用一些規則引擎,例如將動詞與可能的操作列表(如“buy”)匹配,使用提取的語法關系來查找電影名稱的候選者,這應該可以讓你快速獲得相當不錯的結果,因為語法分析器的強度可以“理解”甚至精心設計和可能混淆的句子。

我還建議推遲你想做的一些元素,比如拼寫糾正,甚至是詞干和同義詞DB - 因為問題相對封閉,你可能會有更好的投資於規則/模板框架的投資回報率和手動規則創建。 此建議也適用於對話流的顯式建模。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM