我很困惑我應該採取的方法來實現一個使用Bot框架的FAQ。我考慮使用LUIS,但發現我必須爲每個問題創建一個意圖。由於可能有很多這樣的(比如100),我想知道是否有更好的方法?如何在Bot框架上實現FAQ?
1
A
回答
1
我不認爲你需要爲每個問題創建一個意圖,那個信息設計是不可接受的。你需要做的是分類你的問題類型,這些分類應該是你的意圖。
我們幾乎做同樣的事情,所以在我的情況下,我創建了一個名爲「定義」的意圖,通常以「什麼是...」開頭。然後,我嘗試用所有可能的問題來詢問定義。
由於您在處理常見問題解答,因此它是一組有限的信息。基本上,您可以使用所有常見問題解答並將它們作爲話語提交,並將其歸類爲適當的意圖。
2
如果你正在做的是返回常見問題,目前還不清楚你是否需要LUIS。只需使用搜索技術。如果您只有幾百個常見問題解答,您可以使用像Lucene這樣的搜索引擎,或者使用更簡單的搜索引擎來編寫您自己的排序器,以便根據與該文檔匹配的用戶查詢中的單詞數量來選擇答案。
一個相當簡單的排名算法就是將用戶話語分解爲令牌,然後爲每個文檔搜索文檔中的每個令牌。通過計算文檔中匹配的令牌數量並計算覆蓋率得分來生成您的得分。覆蓋範圍基本上是用戶查詢中條款的百分比與文檔匹配的百分比。
有幾種方法可以計算覆蓋率,但這裏有一個相當簡單的方法。將所有匹配的令牌長度相加,然後將其除以正搜索的文檔/字段的總長度。因此,讓我們說我們有一個問題「向亞洲展示我的狗」,我們有一個名爲「亞洲狗」的文件。我們會在用戶話語中匹配「狗」和「亞洲」兩個令牌。它們的總長度爲8,標題長度爲10.因此(8/10)將爲標題字段提供0.8的覆蓋率分數。
在搜索文檔時,您可以使用相同的基本技巧,但是您想要說明術語匹配的次數。基本上我們想要一個文件,有5個「狗」和10個「亞洲」出現排名文件,每個文件只有一個出現。
有很多其他的東西,你可以添加到你的排名算法,如干擾& TF-IDF的支持,但在這一點上,你應該只使用搜索引擎。
相關問題
- 1. Bot框架名稱實體
- 2. 如何使用bot框架在多個Facebook頁面上使用相同的bot
- 3. C#BOT框架 - DeleteStateForUser在resumeafter
- 4. 如何使用Bot框架和天藍色保存bot數據
- 5. 如何實現Three20框架的協議?
- 6. 如何實現Moles隔離框架?
- 7. 實體框架 - 實現IDbSet
- 8. 如何使用Node js跟蹤bot框架中的上下文
- 9. 如何在實體框架
- 10. System.Net.Http.HttpRequestException(微軟Bot框架)
- 11. Bot框架需要託管?
- 12. 集成Bot框架與UWP
- 13. Bot框架語言翻譯
- 14. Cortana與Bot框架集成
- 15. 在Web API中實現實體框架
- 16. 如何在實體框架5/6中實現部分更新?
- 17. 如何在實體框架4.0中實現SQL「in」
- 18. 如何在iPhone中使用XMPP框架實現實時聊天?
- 19. 如何在實體框架中實現IDisposable?
- 20. 在Bot框架中授權Facebook頁面時出現問題
- 21. 如何在Microsoft Bot框架中創建一個新的IDialogContext實例?
- 22. 在實體框架的上下文中實現業務邏輯
- 23. 在Microsoft bot框架中驗證用戶
- 24. 形式和意圖在Bot框架,wit.ai
- 25. 返回表在Microsoft BOT框架
- 26. 在Skype bot框架附件內容null
- 27. 如何使用zend框架在窗體上實現上一個按鈕?
- 28. 實體框架:如何在實體
- 29. Bot框架LuisDialog混合對話框
- 30. 增強現實框架
是的,這應該大大減少意圖的數量,謝謝。 –
因爲他從根本上說是正確的,所以我會把它放在羅馬人的答案上。只需創建一個像「常見問題解答」的單一意圖,然後培訓一個LUIS實體來提取用戶問題。從那裏使用標準的搜索技術來找到最相關的定義。如果你有大量的FAQ,你可以使用像Lucene這樣的搜索引擎來搜索答案。 –