python聊天机器人

python聊天机器人

实现效果

实现效果图如下:
在这里插入图片描述

准备工作

一个文件夹,里面装一个python文件,一个questions.txt文件,一个answers.txt文件,下载所需要的库。
在question和answers设置对应的问题和答案。
如:
在这里插入图片描述
在这里插入图片描述
然后导入代码即可使用。

import jieba
import numpy as np
from sklearn.feature_extraction.text import CountVectorizer

# 问题和回答数据文件
questionTXT = 'questions.txt'
answerTXT = 'answers.txt'

# 数据预处理
questions = []
# 读入问题数据
with open(questionTXT, "r", encoding="utf-8") as f:
    for line in f:
        questions.append(line.strip())

questions = [jieba.lcut(q) for q in questions]
questions = [' '.join(q) for q in questions]

answers = []
# 读入回答数据
with open(answerTXT, "r", encoding="utf-8") as f:
    for line in f:
        answers.append(line.strip())

# 特征提取
vectorizer = CountVectorizer()
X = vectorizer.fit_transform(questions)

# 聊天循环
while True:
    # 读入用户输入
    user_input = input('你: ').strip()
    if not user_input:
        continue
    
    # 预处理用户输入
    user_input = jieba.lcut(user_input)
    user_input = ' '.join(user_input)
    
    # 匹配最相似的问题
    test_X = vectorizer.transform([user_input])
    sims = np.dot(test_X[0], X.T)
    index = sims.argmax()
    
    # 输出回答
    print('虚拟人:', answers[index])
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱吃巧克li

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值