用户:
小萝卜cXsQ查看:137 回复:3 评论:25 创建时间:2022-12-26T14:59:14
AI,也就是人工智能,总让人觉得很难很高级
而今天,我们就来揭开它的面纱的一部分
制作一个聊天机器人
第一步,编写聊天框架
代码,上!
def main():
read_data()
while 1:
msg = input()
if msg == 'bye':
break
main()
print('bye')
不用我说,点进来的各位都看得懂吧?
第二步,获取数据
一个聊天机器人,怎么能离开海量的数据呢?
不过
我不太会写爬虫
所以
我只能手写
格式如下,有实力的自己写爬虫
消息
回复
我给份现成的
你好
你好
你是谁
我是你的AI聊天机器人
在你的代码目录下新建data文件夹,在底下新建文件data.txt,把数据放进去
第三步,获取数据
上代码
def read_data():
f = open("./data/data.txt", "r", encoding='utf-8')
line1 = f.readline()
line2 = f.readline()
while line1 and line2:
dtmp[line1] = line2
line1 = f.readline()
line2 = f.readline()
把代码放进data.py里,开头写一句dtmp = {}
第四步,实现回复匹配
我们可以这样实现这个功能
首先,使用dtmp.keys()获取所有有回复的消息
然后
获取用户消息与各个回复的相似度
取相似度最大的消息的回复输出
上代码
def get_xsd(str1, str2):
a = 1
a -= abs(len(str1)-len(str2))/max(len(str1), len(str2))
for i in range(min(len(str1), len(str2))):
if (str1[i] != str2[i]):
a -= 1/max(len(str1), len(str2))
return a
def get_response(msg):
max = 0
ans = ""
for i in dtmp.keys():
t = get_xsd(msg, i)
if t > max:
max = t
ans = dtmp[i]
if max<0.01:
return "我不懂你在说什么\n"
return ans
一样的,放data.py里
代码很简单,不用我解释吧?
最后,完善框架
from data.data import *
def main():
read_data()
while 1:
msg = input()
if msg == 'bye':
break
print(get_response(msg), end='')
main()
print('bye')
运行

完结撒花!
SCS_user_LoeheodVOQ调用api有什么好说的()()()
点赞0
评论
我看错了()()
你将这个帖子太高到不属于它的层次()
啥意思
这只是一个简单的匹配语句的代码()而api则要用requests通俗来说就是爬虫()
是 抬高()
你为啥括号打英文的()()
因为中英shift切换太麻烦了()就干脆调成英文字符了()方便写代码)
所以我在学习seq2seq模型
要我说 你学个nlp简单些()
然后加点语料库训练一下)
然后在学个nlg
其实,我最近不是一直在搞人工智能,而是在写操作系统
6()
所以,你会写c语言吗
初学吧()学到了矩阵
和类
c++才有类
你把c和c++弄混了
不过,我现在用c++写内核了
感兴趣的话跟我一起写吧,正缺人,两个人,难写
awa你看我连c和c++都弄不清()你觉得我可靠吗
我擅长的语言只是py awa
c/c++大佬难寻啊,linux内核大佬难寻啊
找这么久找到了1个人......