聊天机器人

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

编写聊天机器人代码。

导入中文分词库

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()
聊天

相关文章
|
2月前
|
机器学习/深度学习 自然语言处理 搜索推荐
深度学习之个性化助手与定制对话
基于深度学习的个性化助手与定制对话技术,旨在为用户提供具有个性化、上下文感知的对话体验。这类助手系统能够通过用户的偏好、对话历史以及特定需求定制回答,广泛应用于智能客服、个人助理、教育和娱乐等领域。个性化助手通过分析用户数据和生成自然的对话内容,模拟出人性化的交互效果,使用户感到更被理解和支持。
56 0
|
4月前
|
机器人 TensorFlow 算法框架/工具
智能聊天机器人
【8月更文挑战第1天】智能聊天机器人。
113 2
|
6月前
|
人工智能 算法 搜索推荐
AI能否理解音乐情感?
【6月更文挑战第1天】AI能否理解音乐情感?
80 4
|
6月前
|
人工智能 数据可视化 程序员
【ChatGPT(一)】人工智能时代已经开始——什么是ChatGPT?
【ChatGPT(一)】人工智能时代已经开始——什么是ChatGPT?
|
7月前
|
机器学习/深度学习 人工智能 自然语言处理
聊天机器人
聊天机器人
165 4
|
7月前
|
自然语言处理 算法 机器人
做一个基于 chatterbot 的聊天机器人
做一个基于 chatterbot 的聊天机器人
100 0
|
机器学习/深度学习 人工智能 自然语言处理
ChatGPT 和对话式 AI 的未来:2023 年的进展和应用
人工智能(Artificial Intelligence)在过去一段时间以来以前所未有的速度快速发展。从自动化日常任务到重要提醒的设定,AI以各种方式渗透到我们的生活中。然而,在这个领域中迈出的最重要一步是ChatGPT。 ChatGPT被瑞银(UBS)评为“有史以来增长最快的消费者应用程序”,于2022年11月30日正式推出。仅在推出的两个月内,它就成功吸引了超过1亿用户,为对话式人工智能领域创造了奇迹。 对话式人工智能是一种创新技术,能够成功地模拟人类对话。因此,在客户服务、潜在客户生成以及其他与业务相关的任务中,它找到了广泛的应用。
302 0
|
机器学习/深度学习 人工智能 自然语言处理
ChatGPT AI聊天机器人实践
ChatGPT AI聊天机器人实践
418 0
|
存储 人工智能 自然语言处理
对话ChatGPT:Prompt是普通人“魔法”吗?
就像童话故事里的魔法一样,Prompt是AI时代的魔法,拥有它就拥有“巫师”一样的能力。
267 0
对话ChatGPT:Prompt是普通人“魔法”吗?
|
存储 人工智能 自然语言处理
Replika:AI智能聊天机器人
Replika:AI智能聊天机器人
1247 0