## 補充說明
首先介紹一個概念,就是緩存。為提升整體查詢效率,所有的歷史查詢會被記錄在緩存里,當用戶請求過來時,會首先去緩存里尋找結果。而緩存的更新周期較長,所以在我們做一些修改,比如為某條問答增加了關鍵詞之后,再問同樣的問題,發現關鍵詞沒有生效,實際上是從緩存里取了添加關鍵詞之前的問題。
## 關鍵詞的工作邏輯
首先還是解釋一下關鍵詞的整體工作邏輯:加權+完全匹配。展開來說,1、在沒有關鍵詞設置的情況下,用戶的提問首先會和私有語料庫的所有問題進行相似度打分,如果打分最高的結果超過了私有語料庫設置的匹配度,則返回該結果;2、在設置了關鍵詞的情況下,如果用戶說的話中包含了設置的關鍵詞,會對設置的關鍵詞進行加權計算相似度,如果加權后打分最高的結果超過了設置的匹配度,則返回該結果;3、在設置了關鍵詞,且加權計算之后,任然沒有超過設置的匹配度,那么進行關鍵詞完全匹配對比,如果用戶說的話,包含了私有語料庫某條問答的所有關鍵詞,則返回該問答;4、在設置了關鍵詞,且觸發了關鍵詞完全匹配邏輯之后,如果命中了多個問題,那么在這些問題里取相似度打分最高的結果返回。
## 關鍵詞的使用注意事項
根據以上的邏輯,關鍵詞的設置,應該盡量遵循以下原則:1、多個關鍵詞的情況下,不要設置近義詞,要設置會在一句話里同時出現的詞;2、如果需要通過關鍵詞設置來提升匹配精度,那么關鍵詞粒度要細,如“AAA的價格”“AAA的選型”這兩個問題,可分別將“價格”“選型”設置為關鍵詞,如果還有“BBB的價格”“BBB的選型”這些問題,那么就要將”AAA”,”BBB”也分別設置為關鍵詞;3、避免使用短語,盡量使用單詞作為關鍵詞,提升關鍵詞的命中率。
## 關鍵詞的使用案例
(未避免緩存的影響,我們在兩個不同的機器人下面來做這個案例)
分別在兩個機器人下面設置同樣的問題:“斷路器的選型問題”。 其中一個問題沒有關鍵詞,另外一個問題,將 “斷路器”與“選型”設置為關鍵詞。

-----------------------------------------------------------------

我們來看下測試結果:
首先是沒有設置關鍵詞的問題,當問法與設置的問題相差較大時,機器人無法給出正確答復。

再來看設置了關鍵詞的問題:當問法與設置的問題相差較大時,機器人可以給出正確答復。

下面再來看另外一個案例,圍繞同一個產品的不同屬性的問題,如上面的例子是斷路器選型,我們在這里再加一個“斷路器的價格”問題,設置如下

測試結果如下:在分別提問價格和選型相關的問題,且問法與設置的問題有較大差距時,均可以返回正確的結果。
