聊天机器人

简介: 编写聊天机器人代码。

编写聊天机器人代码。

导入中文分词库

import jieba

对语料库进行分词,分词结果存入fenci_result.txt文件

f1 = open('corpus.txt', encoding="utf8")
f2 = open('fenci_result.txt', 'a', encoding="utf8")
lines = f1.readlines()
for line in lines:
line.replace('\t', '').replace('\n', '').replace(' ', '')
seg_list = jieba.cut(line)

# 将词汇以空格隔开
f2.write(' '.join(seg_list))

f1.close()
f2.close()

获取计算文本向量及其相似度模型

from gensim.models import word2vec

sentences = word2vec.Text8Corpus('fenci_result.txt')
model = word2vec.Word2Vec(sentences)
model.save("word2Vec.model")

导入相关库

import json
import random
import math

加载和解析模板文件

f3 = open('templet.txt', encoding="utf8")
str = ''
for line in f3.readlines():
str += line
content = json.loads(str)

f3.close()

print(content)

寻找最大相似度的回答

def answer(input):

# 存储最大相似度
similarityMax = 0
# 存储最大相似度问句的下标
similarityIndex = -1
# 对用户输入做分词处理
input_word_arr = list(jieba.cut(input))
# 遍历规则库
for i in range(len(content)):
    title_word_arr = list(jieba.cut(content[i]['title'].replace(' ', '')))
    #print(title_word_arr)
    # 使用try...except语法来做余弦相似度计算,避免因词向量小而引发报错
    #similarity越大越相似
    try:
        similarity = model.wv.n_similarity(input_word_arr, title_word_arr)
    except Exception:
        similarity = 0
    # 储存当前最大相似度及其下标
    if similarityMax < similarity:
        similarityMax = similarity
        similarityIndex = i
# 随机取一个回复,如果similarityIndex为-1,则说明未匹配到相似语句
if similarityIndex != -1:    
    reply_index = math.floor(random.random() * len(content[similarityIndex]['reply']))
    if reply_index:
        return {"title": content[similarityIndex]['title'], "reply": content[similarityIndex]['reply'][reply_index]}
return {"title": "无", "reply": "抱歉,我不太明白您的意思"}

对话流程

def main():
while True:

    #接受用户输入
    input_str = input("用户:")
    #寻找匹配的答复
    result = answer(input_str)
    #输出结果
    print("匹配到问题: %s 回答: %s" % (result['title'], result['reply']))

main()
聊天

相关文章
|
1月前
|
搜索推荐 UED
ChatGPT的推理过程
【1月更文挑战第8天】ChatGPT的推理过程
84 3
ChatGPT的推理过程
|
20天前
|
自然语言处理 机器人
chatGPT真的这么神奇吗?
例如"什么时候"、"来到"、"这里" 等单词;然后根 据这些单词生成一句回复 “我是星期五傍晚到达这里的” 。 ChatGPT能够带来很大的方便性和效率性。它不仅能帮助你快速地找到正确的信息,而且它能带来真正人性化地对话体验就好像在和真正人一样地对话一样。
12 3
|
11天前
|
人工智能 数据可视化 程序员
【ChatGPT(一)】人工智能时代已经开始——什么是ChatGPT?
【ChatGPT(一)】人工智能时代已经开始——什么是ChatGPT?
|
8月前
|
机器学习/深度学习 人工智能 搜索推荐
ChatGPT4
4.3.3 人类反馈强化微调效果
170 0
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
聊天机器人
聊天机器人
71 4
|
1月前
|
自然语言处理 算法 机器人
做一个基于 chatterbot 的聊天机器人
做一个基于 chatterbot 的聊天机器人
|
8月前
|
机器学习/深度学习 人工智能 算法
ChatGPT2
1.3 背后的金主OpenAI
|
11月前
|
人工智能 数据可视化 搜索推荐
嚯——ChatGPT是很强,但也会胡说八道。。。
嚯——ChatGPT是很强,但也会胡说八道。。。
|
机器学习/深度学习 人工智能 自然语言处理
ChatGPT 和对话式 AI 的未来:2023 年的进展和应用
人工智能(Artificial Intelligence)在过去一段时间以来以前所未有的速度快速发展。从自动化日常任务到重要提醒的设定,AI以各种方式渗透到我们的生活中。然而,在这个领域中迈出的最重要一步是ChatGPT。 ChatGPT被瑞银(UBS)评为“有史以来增长最快的消费者应用程序”,于2022年11月30日正式推出。仅在推出的两个月内,它就成功吸引了超过1亿用户,为对话式人工智能领域创造了奇迹。 对话式人工智能是一种创新技术,能够成功地模拟人类对话。因此,在客户服务、潜在客户生成以及其他与业务相关的任务中,它找到了广泛的应用。
243 0
|
机器学习/深度学习 人工智能 自然语言处理
ChatGPT AI聊天机器人实践
ChatGPT AI聊天机器人实践
388 0