• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    聊天機器人雙向搜索知識庫的模糊匹配

    2018-02-26 09:45:22趙素萍
    電子技術(shù)與軟件工程 2018年16期
    關(guān)鍵詞:知識庫

    趙素萍

    摘要

    目前,無論是微信、LINE、Whatsapp還是FacebookMessenger,都吸引商家拼命開發(fā)互動良好的聊天機器人。針對相同語義的不同提問方式,如何得到相同或相似的回答是本人研究的重點。本人以基于ASP.NET開發(fā)平臺開發(fā)出的聊天機器人為例,分析如何使用雙向搜索知識庫模糊匹配的方法,提高聊天機器人回答問題的正確率。

    【關(guān)鍵詞】聊天機器人 知識庫 模糊匹配

    1 聊天機器人的發(fā)展現(xiàn)狀

    60%的年輕人曾經(jīng)用過聊天機器人,用戶更喜歡簡單的界面。有什么不明白直接提問,讓聊天機器人來完成服務(wù)。企業(yè)老板們的選擇也更傾向于歡聊天機器人。因為聊天機器人除了不用發(fā)工資外,更重要的是24小時都可運作。

    不同的人對同一件事會有完全不同的描述方式,那么這時候人們將如何與聊天機器人進(jìn)行交互?即對于語義相同的輸入,應(yīng)該生成相似的回答。例如,你想在“你多大了?”、“幾歲了”和“你的年齡是多少?”等相同語義的問題上得到同樣的回答。然而事實是:生成式系統(tǒng)的普遍問題是它們往往能生成像“太好了!”或“我不知道”這樣的能適用于許多輸入情況的普遍回復(fù)。谷歌的智能回復(fù)(SmartReply)常常用“我愛你”回復(fù)一切。本文就如何提高聊天機器人的智能性,提高回答問題的正確率展開了研究。

    2 模糊匹配

    聊天機器人回答問題的流程和人回答問題的流程是一致的,先思考問題,分析問題中包含的關(guān)鍵詞,再將關(guān)鍵詞連接創(chuàng)造出相應(yīng)的聊天語境,然后根據(jù)語境想出對應(yīng)的答案。聊天機器人則是搜索知識庫然后找到匹配的問題并給出相應(yīng)的答案。

    模糊匹配指將知識庫中的記錄行與用戶問題比較,若記錄行包含用戶問題中的關(guān)鍵字,則認(rèn)為查找成功。下面以c#為開發(fā)語言,以聊天機器人軟件為例介紹模糊匹配。

    首先打開知識庫,知識庫是一個記事本文件。假設(shè)有一條記錄為:

    “你是哪的山西太原”

    具體思路為聊天機器人拿著用戶的問題去知識庫中模糊查找。模糊查找就是不需要兩者完全相同,只需要包含關(guān)即可。若用戶問“哪的”,知識庫中的“你是哪的”包含“哪的”,所以會把答案給出。同時,一旦找到結(jié)果便不需要繼續(xù)查找,立刻退出,否則會增加計算機的工作量,同時也能減少用戶的等待時間。核心代碼如下:

    if(Reader.Contains(question))

    {findout=true;break;}

    找到記錄行后,截取出空格后的文字即為答案,所以需要使用循環(huán)依次判斷并找出空格后退出,然后從空格的下一個字符開始截取剩下的字符串即為答案,截取字符串的函數(shù)為Substring(開始截取的位置),主要代碼如下,

    for(i=0;i

    {if(Reader[i]==")break;}

    answer=Reader.Substring(i+1);

    比如你的籍貫、提供下你的住址、家是哪的、家住哪里,這四個問題的答案是完全一樣的,而且同一個答案的問題數(shù)遠(yuǎn)不止這些。也就是說用戶的問法千奇百怪,若用戶的問題改為“你的籍貫”,而這個問題的答案也是一樣的,如何讓不同的問題找到相同的答案呢?這就像我們?nèi)祟惖乃季S一樣,需要羅列出同義詞,并將其加載到知識庫中。知識庫中的格式就應(yīng)該改為:

    山西太原你的籍貫?zāi)牡募沂悄睦镒≈?/p>

    核心代碼為:

    for(i=0;i

    {if(Reader[i]==")break;}

    answer= Reader.Substring(0,i+1);

    當(dāng)用戶找到匹配的問題后,將答案放到記錄的開始處,那么執(zhí)行流程就變成了循環(huán)找到第一個空格的位置然后結(jié)束循環(huán),返回位置即可。

    3 雙向模糊匹配

    當(dāng)用戶問到“你的住址是?”。我們可以發(fā)現(xiàn)哪怕使用模糊查詢,知識庫中的問題并沒有包含該問題的問題記錄,所以單向的拿著問題去找記錄并模糊匹配,并不能找到記錄。這就需要用到雙向模糊匹配。雙向模糊匹配指記錄行中包含關(guān)鍵字,程序中不僅要拿著問題到記錄中模糊匹配,而且要將循環(huán)到的記錄行取出,并將記錄中的每一個問題記錄與用戶問題模糊匹配,若還是匹配不上則找下一條記錄。例如還是上面的記錄和問題,拿著用戶問題“你的住址是?”去記錄問題中模糊匹配,發(fā)現(xiàn)四個記錄問題都不包含用戶問題。而第四個記錄問題“住址”卻在用戶問題中,如果拿著記錄問題去和用戶問題模糊匹配,即可匹配成功。相關(guān)代碼如下:

    string[] keyword=reder.Trim().Split('');

    for(int i=1;i

    {if(question.Contains(keyword[i]))

    {findout=true;break;}

    }

    第一行:Trim函數(shù)是去掉記錄行中首尾的空格,split函數(shù)是去掉記錄行中的空格,并將分割后的字符串放到數(shù)組中,然后從數(shù)組的第二個元素開始依次搜尋,因為第一個元素為答案。

    剩下行:循環(huán)查找數(shù)組中的其他元素,如果當(dāng)前元素包含在用戶問題中,查找發(fā)現(xiàn)記錄問題‘住址”包含在用戶問題“你的住址是?”中,則模糊匹配成功并退出循環(huán)。返回找到的答案“山西太原”。

    4 結(jié)論

    通過實驗發(fā)現(xiàn),使用雙向模糊查詢可以極大的提高聊天機器人回答問題的正確率。然而目前市面上的聊天機器人普遍到了一個瓶頸期,首先機器人回答問題時先要考慮聊天的上下文環(huán)境,如當(dāng)回答了“山西太原”后,客戶問“太原哪的”,應(yīng)該具體到太原的哪個區(qū)或哪個縣。其次針對用戶復(fù)雜的提問,聊天機器人不能正確領(lǐng)會提問的意圖,如何能提取用戶問題的關(guān)鍵詞,并整合出確定的語義,是我下一步研究的方向。聊天機器人的使用已經(jīng)被越來越多的客戶和廠商接受,然而聊天機器人的功能還有待完善。我很榮幸能成為聊天機器人不斷發(fā)展完善的見證者。如何讓聊天機器人更智能是我們不懈追求的方向,如何使聊天機器人通過圖靈測試是我們最終奮斗的目標(biāo)。我愿意為人工智能奉獻(xiàn)自己的一份綿薄之力。

    參考文獻(xiàn)

    [1]杜舟.下一座金礦移動互聯(lián)網(wǎng)[J].IT時代周刊.2009(04)

    [2]姚飛,張成昱,陳武.清華智能聊天機器人“小圖”的移動應(yīng)用[J].現(xiàn)代圖書情報技術(shù),2014(Z1).

    [3]黃際洲.聊天機器人知識庫自動抽取算法的研究與實現(xiàn)[D].重慶大學(xué),2006.

    猜你喜歡
    知識庫
    漢語近義詞辨析知識庫構(gòu)建研究
    基于TRIZ與知識庫的創(chuàng)新模型構(gòu)建及在注塑機設(shè)計中的應(yīng)用
    美國高校機構(gòu)知識庫開放獲取政策調(diào)查
    杭錦旗地區(qū)辮狀河定量地質(zhì)知識庫建立及應(yīng)用
    高速公路信息系統(tǒng)維護(hù)知識庫的建立和應(yīng)用
    基于全方位服務(wù)機制建設(shè)機構(gòu)知識庫研究
    圖書館研究(2015年5期)2015-12-07 04:05:48
    基于Drupal發(fā)布學(xué)者知識庫關(guān)聯(lián)數(shù)據(jù)的研究
    圖書館研究(2015年5期)2015-12-07 04:05:48
    衛(wèi)星狀態(tài)智能診斷知識庫設(shè)計方法
    機構(gòu)知識庫建設(shè)的動力研究
    科技視界(2014年27期)2014-08-15 00:54:11
    基于決策技術(shù)和粗糙集理論的診斷知識庫構(gòu)建研究
    宜君县| 资兴市| 隆安县| 环江| 巴中市| 拉萨市| 凤冈县| 嘉峪关市| 齐齐哈尔市| 神木县| 宁国市| 肃南| 合作市| 婺源县| 平谷区| 三门峡市| 扎赉特旗| 旬阳县| 闽侯县| 清徐县| 陕西省| 军事| 秭归县| 瓦房店市| 广饶县| 年辖:市辖区| 平泉县| 合川市| 库车县| 南江县| 沽源县| 宿州市| 绥芬河市| 衡阳市| 重庆市| 仲巴县| 张家口市| 莎车县| 新源县| 华池县| 绥芬河市|