<noframes id="z7bdd"><pre id="z7bdd"><strike id="z7bdd"></strike></pre>
    <output id="z7bdd"><ruby id="z7bdd"><dfn id="z7bdd"></dfn></ruby></output>
    <address id="z7bdd"><strike id="z7bdd"></strike></address>
    <sub id="z7bdd"></sub><noframes id="z7bdd">

        <track id="z7bdd"></track>

        問答系統設計的一些思考

        日期: 2018-12-07 10:57:17 / 人氣: 2771

        問答系統通常分為任務型機器人、閑聊機器人解決型機器人(客服機器人),三者的設計分別針對不同的應用場景。A):任務型機器人主要用于完成用戶的某些特定任務,比如:買機票、話費充值或者天氣咨詢。B):閑聊機器人主要用于深入的和用戶進行無目的交流;C):解決型機器人(客服機器人)用于解決用戶的問題,比如:商品購買咨詢、商品退貨咨詢等。這里通過一些案例分析來介紹不同情況的算法選型:

        任務型問題,1):“成都今天天氣怎么樣”;2):“明天呢";3):“后天呢”。

        Slot Filling

        首先,“成都今天天氣怎么樣”屬于天氣類問題(其中包含實體“地點”、“時間”),已經能夠完成應答;然后,“明天呢”該句話僅包含實體信息(”時間“),并未包含地點信息,如果直接采用意圖分類,不能完成此次應答;最后,”后天呢“同樣是只包含實體信息(”時間“)。針對此類的多輪對話場景,可采用slot filling的方式進行應答(slot filling是多個槽值組成,例如:天氣場景需要實體槽值“地點”和“時間”)?!泵魈炷亍昂汀焙筇炷亍爸话睍r間“實體,但是上文”成都今天天氣怎么樣“則包含了”地點“實體,只需要將下文的實體(“時間”)替換上文的實體(“時間“)即可。

        解決型問題,1):”iphone X多少錢“;2):”郵費是多少呢”;3):“可以無理由退貨么?”。

        特征拼接上下文模型

        針對此處的多輪對話,涉及到商品的購買、售前運費和退換貨政策三個意圖,并且后面的意圖分析需要前文的會話意圖,就是一個典型的多輪對話過程。首先,“iphone X多少錢”可以通過單句的意圖分類即可完成應答;而“運費是多少呢”則需要判斷用戶咨詢的屬于售前運費還是售后運費,此時可通過結合上文問題的方式進行意圖分析(1:抽取上文的意圖特征加入當前問題可解決部分上下文場景問題;2:結合上文和當前問題采用深度學習的算法進行上下文的意圖分析)。最后,“可以無理由退貨么”需要知道商品的信息才可以回答用戶的問題,因此需要上文商品“iphone X”(可以將對話中實體、商品信息保存用于下文應答)。

        解決型問題,1):”https://item.jd.com/6577511.html?jd_pop=67fb9e1c-df43-4cf9-9509-37998e9c983a&abt=0“;2):”多少“;3):”錢?“

        層級上下文模型(H-CNN-GRU)

        此時多輪對話過程中,涉及到用戶輸入過程中單句輸入不完整。slot filling和簡單抽取上文特征的方式并不適合,而組合多句輸入則可以完成此處的應答(具體方式見此處)。

        閑聊型問題

        聊天記錄

        針對閑聊型問題,由于用戶并無明確的意圖,因此不適合做意圖分類,這里我們可以采用生成式模型,根據大量用戶歷史的閑聊語料生成相應的答案(生成式模型得到的答案可能存在語法、連貫性問題,但是閑聊場景的對話對語句語法和連貫性要求不高,相對隨意)。

        seq2seq模型

        總結:我們在分析一個人的時候通常涉及IQ和EQ兩個方面,IQ在于解決問題的能力,而EQ在于解決問題的方式。在實現一個機器人問答系統的時候,我們也應該考慮IQ和EQ兩個方面。這里只是針對問答系統中的一些特殊案例進行分析,一個完整的問答系統仍需要大量其他方面的工作,比如:讓問答系統的回答更加擬人化(用戶情感分析)。


        作者:lirainbow0
        鏈接:www.jianshu.com/p/13f0f32a6dab
        來源:簡書
         

        欲求不满的人妻日本电影
        <noframes id="z7bdd"><pre id="z7bdd"><strike id="z7bdd"></strike></pre>
          <output id="z7bdd"><ruby id="z7bdd"><dfn id="z7bdd"></dfn></ruby></output>
          <address id="z7bdd"><strike id="z7bdd"></strike></address>
          <sub id="z7bdd"></sub><noframes id="z7bdd">

              <track id="z7bdd"></track>