mr bullet手游攻略 最强大脑里小度的对话功能是如何做到的?
最强大脑里小度的对话功能是如何做到的?
其实我们做一个智能聊天机器人也不容易。我刚刚在这里实现了一个非常简单的聊天机器人。当你和这个机器人聊天的时候,每次机器人都会根据你说的关键词找到答案句子。如果你能 找不到,随便说个默认语言。数据存储格式是xml。以下是xml的原始文件:lt?xml版编码UTF-8?大型旅行车的
ltchatgt
lt!-默认聊天语句- gt
ltdefaultgt
Ltcontentgt,你在哪里?lt/contentgt
Ltcontentgt,你还是学生吗默认值gt
lt!-回答指定关键词的句子顺序-gtltanswergt lt contentkey责备gt不责备lt/contentgt。
lt内容键慢速gt是,慢速lt/contentgt
Ltcontent密钥。嘿,gt,什么 怎么样了?lt/contentgt
Ltcontent key88gt再见lt/contentgt
lt内容关键感谢gt有 没什么可感谢的。
我赢了。;别说了,我会去的。
lt/chatgt////////////////////////////////////////////。
公共类表单1
继承由Windows窗体设计器Public Sub New()生成的# regionCode
()此调用是Windows窗体设计器所必需的。
InitializeComponent()在InitializeComponent()调用后添加任何初始化结束子窗体以覆盖dispose,从而清理组件列表。
受保护的重载覆盖Sub Dispose(ByVal Dispose为Boolean)
如果处理然后
如果不是(组件什么都不是),那么
组件。处置()
如果…就会结束
如果…就会结束
我的基地。处置(处置)
结束子胜利由dows表单设计器要求。
下面的过程是Windows窗体设计器所必需的。
您可以使用Windows窗体设计器来修改此过程。
不要使用代码编辑器修改它。
将事件RichTextBox1作为朋友
事件文本框1为的朋友
事件按钮1为的朋友
()gt私有Sub InitializeComponent()
将资源标注为新资源(GetType(Form1))
新的
我。文本框1新
我。按钮1新
()
RichTextBox1
新系统。绘图点(0,0)
RichTextBox1
真实的
新的(560,304)
2
文本框1
我。文本框1 .位置新系统。绘图点(0,312)
文本框1
新(456,21)
0
我。文本框1 .文本
按钮1
我。按钮1 .新系统的位置。绘图点(472,312)
按钮1
新(72,24)
一个
我。按钮1 .文本输入
表格1
新(6,14)
新(560,341)
(我。按钮1)
(我。文本框1)
()
我。Icon CType(($this。图标)、系统。绘图.图标)
错误的
表格1
我。文字青蛙王子
(False)End Sub # End Region Private Sub form 1 _ Load(ByVal sender As System。对象,ByVal e作为系统。EventArgs)处理MyBase。负荷
readxml()
末端接头
将xmlFile显示为字符串。/robot.xml
Dim聊天列表作为新的数组列表
迪姆安swerList作为新哈希表
Dim random作为新系统。随机私有Sub readxml()
尝试
将文档标注为XmlDocument新建XmlDocument
医生。加载(xmlFile)
Dim nodeList作为XmlNodeList
Dim根作为XmlElement
-默认聊天语句-
节点列表(/聊天/默认/内容)
将节点标注为XmlNode
对于节点列表中的每个节点
()
然后
回答指定关键字的陈述顺序-
节点列表(/聊天/回答/内容)
对于节点列表中的每个节点
((关键)。值,)
然后
将ex作为异常捕获
MsgBox()
结束尝试
末端接头
private Sub button 1 _ Click(ByVal s:)ltgt-1)那么
如果学习新单词(内容),则
我学到了新的东西,谢谢!控制字符。Lf)
如果…就会结束
出口接头
如果…就会结束
(内容控制字符。Lf)
Dim aStr$ getSimilarContent(内容)
如果(aStr Nothing)那么
尺寸i% (1,)
aStr(一)
如果…就会结束
(ControlChars。Lf)
()
末端接头
获取类似的字符串
函数getSimilarContent(字符串形式的ByVal内容)作为字符串
调暗按键为
Dim enumR As
While()
Dim str$
如果c内容。等于(字符串)
返回应答列表
如果…就会结束
结束时间
()
While()
Dim str$
如果((str) ltgt -1)或((content) ltgt -1)那么
返回应答列表
如果…就会结束
结束时间
不返回任何内容
End函数添加一条新语句。
函数learnNewWord(字符串形式的ByVal内容)为布尔值
尝试
将文档标注为XmlDocument新建XmlDocum:)
Dim str1$ (0,I)
Dim str2美元(i 1)
医生。加载(xmlFile)
Dim elem As XmlElement(内容)
作为XmlAttribute的Dim属性(键)
str1
str2
(属性)
添加新语句-
Dim根作为XmlElement
将xmlNode显示为xmlNode(/聊天/回答)
(elem)
(str1,str2)
(xmlFile)
返回True
将ex作为异常捕获
MsgBox()
返回False
结束尝试
End函数Private Sub textbox 1 _ KeyPress(ByVal sender As Object,ByVal e As)句柄
如果()那么
Button1_Click(无,无)
如果…就会结束
末端接头
结束类
希望你能理解!
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。