mr bullet手游攻略 最強(qiáng)大腦里小度的對(duì)話功能是如何做到的?
最強(qiáng)大腦里小度的對(duì)話功能是如何做到的?其實(shí)我們做一個(gè)智能聊天機(jī)器人也不容易。我剛剛在這里實(shí)現(xiàn)了一個(gè)非常簡單的聊天機(jī)器人。當(dāng)你和這個(gè)機(jī)器人聊天的時(shí)候,每次機(jī)器人都會(huì)根據(jù)你說的關(guān)鍵詞找到答案句子。如果你能
最強(qiáng)大腦里小度的對(duì)話功能是如何做到的?
其實(shí)我們做一個(gè)智能聊天機(jī)器人也不容易。我剛剛在這里實(shí)現(xiàn)了一個(gè)非常簡單的聊天機(jī)器人。當(dāng)你和這個(gè)機(jī)器人聊天的時(shí)候,每次機(jī)器人都會(huì)根據(jù)你說的關(guān)鍵詞找到答案句子。如果你能 找不到,隨便說個(gè)默認(rèn)語言。數(shù)據(jù)存儲(chǔ)格式是xml。以下是xml的原始文件:lt?xml版編碼UTF-8?大型旅行車的
ltchatgt
lt!-默認(rèn)聊天語句- gt
ltdefaultgt
Ltcontentgt,你在哪里?lt/contentgt
Ltcontentgt,你還是學(xué)生嗎默認(rèn)值gt
lt!-回答指定關(guān)鍵詞的句子順序-gtltanswergt lt contentkey責(zé)備gt不責(zé)備lt/contentgt。
lt內(nèi)容鍵慢速gt是,慢速lt/contentgt
Ltcontent密鑰。嘿,gt,什么 怎么樣了?lt/contentgt
Ltcontent key88gt再見lt/contentgt
lt內(nèi)容關(guān)鍵感謝gt有 沒什么可感謝的。
我贏了。;別說了,我會(huì)去的。
lt/chatgt////////////////////////////////////////////。
公共類表單1
繼承由Windows窗體設(shè)計(jì)器Public Sub New()生成的# regionCode
()此調(diào)用是Windows窗體設(shè)計(jì)器所必需的。
InitializeComponent()在InitializeComponent()調(diào)用后添加任何初始化結(jié)束子窗體以覆蓋dispose,從而清理組件列表。
受保護(hù)的重載覆蓋Sub Dispose(ByVal Dispose為Boolean)
如果處理然后
如果不是(組件什么都不是),那么
組件。處置()
如果…就會(huì)結(jié)束
如果…就會(huì)結(jié)束
我的基地。處置(處置)
結(jié)束子勝利由dows表單設(shè)計(jì)器要求。
下面的過程是Windows窗體設(shè)計(jì)器所必需的。
您可以使用Windows窗體設(shè)計(jì)器來修改此過程。
不要使用代碼編輯器修改它。
將事件RichTextBox1作為朋友
事件文本框1為的朋友
事件按鈕1為的朋友
()gt私有Sub InitializeComponent()
將資源標(biāo)注為新資源(GetType(Form1))
新的
我。文本框1新
我。按鈕1新
()
RichTextBox1
新系統(tǒng)。繪圖點(diǎn)(0,0)
RichTextBox1
真實(shí)的
新的(560,304)
2
文本框1
我。文本框1 .位置新系統(tǒng)。繪圖點(diǎn)(0,312)
文本框1
新(456,21)
0
我。文本框1 .文本
按鈕1
我。按鈕1 .新系統(tǒng)的位置。繪圖點(diǎn)(472,312)
按鈕1
新(72,24)
一個(gè)
我。按鈕1 .文本輸入
表格1
新(6,14)
新(560,341)
(我。按鈕1)
(我。文本框1)
()
我。Icon CType(($this。圖標(biāo))、系統(tǒng)。繪圖.圖標(biāo))
錯(cuò)誤的
表格1
我。文字青蛙王子
(False)End Sub # End Region Private Sub form 1 _ Load(ByVal sender As System。對(duì)象,ByVal e作為系統(tǒng)。EventArgs)處理MyBase。負(fù)荷
readxml()
末端接頭
將xmlFile顯示為字符串。/robot.xml
Dim聊天列表作為新的數(shù)組列表
迪姆安swerList作為新哈希表
Dim random作為新系統(tǒng)。隨機(jī)私有Sub readxml()
嘗試
將文檔標(biāo)注為XmlDocument新建XmlDocument
醫(yī)生。加載(xmlFile)
Dim nodeList作為XmlNodeList
Dim根作為XmlElement
-默認(rèn)聊天語句-
節(jié)點(diǎn)列表(/聊天/默認(rèn)/內(nèi)容)
將節(jié)點(diǎn)標(biāo)注為XmlNode
對(duì)于節(jié)點(diǎn)列表中的每個(gè)節(jié)點(diǎn)
()
然后
回答指定關(guān)鍵字的陳述順序-
節(jié)點(diǎn)列表(/聊天/回答/內(nèi)容)
對(duì)于節(jié)點(diǎn)列表中的每個(gè)節(jié)點(diǎn)
((關(guān)鍵)。值,)
然后
將ex作為異常捕獲
MsgBox()
結(jié)束嘗試
末端接頭
private Sub button 1 _ Click(ByVal s:)ltgt-1)那么
如果學(xué)習(xí)新單詞(內(nèi)容),則
我學(xué)到了新的東西,謝謝!控制字符。Lf)
如果…就會(huì)結(jié)束
出口接頭
如果…就會(huì)結(jié)束
(內(nèi)容控制字符。Lf)
Dim aStr$ getSimilarContent(內(nèi)容)
如果(aStr Nothing)那么
尺寸i% (1,)
aStr(一)
如果…就會(huì)結(jié)束
(ControlChars。Lf)
()
末端接頭
獲取類似的字符串
函數(shù)getSimilarContent(字符串形式的ByVal內(nèi)容)作為字符串
調(diào)暗按鍵為
Dim enumR As
While()
Dim str$
如果c內(nèi)容。等于(字符串)
返回應(yīng)答列表
如果…就會(huì)結(jié)束
結(jié)束時(shí)間
()
While()
Dim str$
如果((str) ltgt -1)或((content) ltgt -1)那么
返回應(yīng)答列表
如果…就會(huì)結(jié)束
結(jié)束時(shí)間
不返回任何內(nèi)容
End函數(shù)添加一條新語句。
函數(shù)learnNewWord(字符串形式的ByVal內(nèi)容)為布爾值
嘗試
將文檔標(biāo)注為XmlDocument新建XmlDocum:)
Dim str1$ (0,I)
Dim str2美元(i 1)
醫(yī)生。加載(xmlFile)
Dim elem As XmlElement(內(nèi)容)
作為XmlAttribute的Dim屬性(鍵)
str1
str2
(屬性)
添加新語句-
Dim根作為XmlElement
將xmlNode顯示為xmlNode(/聊天/回答)
(elem)
(str1,str2)
(xmlFile)
返回True
將ex作為異常捕獲
MsgBox()
返回False
結(jié)束嘗試
End函數(shù)Private Sub textbox 1 _ KeyPress(ByVal sender As Object,ByVal e As)句柄
如果()那么
Button1_Click(無,無)
如果…就會(huì)結(jié)束
末端接頭
結(jié)束類
希望你能理解!