Skip to content
/ chatterbot Public
  • Notifications You must be signed in to change notification settings
  • Fork 8
  • Star 25

从零开始搭建一个中文聊天机器人

25 stars 8 forks Branches Tags Activity
Star
Notifications You must be signed in to change notification settings

wenknow/chatterbot

Branches Tags

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
README.md
README.md
 
 
api.py
api.py
 
 
app.py
app.py
 
 
part.data
part.data
 
 
train.py
train.py
 
 
uwsgi.ini
uwsgi.ini
 
 

Repository files navigation

一、获取语料

  • 中文聊天语料这一块,我选择了网上大神整理的资料,选取其中一部分,小黄鸡语料 公开中文语料包: https://pan.baidu.com/s/1szmNZQrwh9y994uO8DFL_A 提取码:f2ex 中。

二、训练

1、上传语料包

  • 上传处理好的小黄鸡语料到服务器上,有条件的可以使用 Google colab进行训练

2、在服务器上安装 ChatterBot

pip3 install chatterbot
pip3 install chatterbot-corpus

3、试运行chatterbot

  • 运行以下代码将会自动安装nltk_data,此过程可能会很久
from chatterbot import ChatBot
from chatterbot.trainers import ListTrainer

chatbot = ChatBot("bot")
trainer = ListTrainer(chatbot)

4、修改chatterbot中nltk_data的目录

  • 找到python的第三方包site-packages的路径下的chatterbot
cd /usr/local/lib/python3.6/site-packages/chatterbot/
vim utils.py
  • 修改内容如下
def download_nltk_stopwords():

"""

Download required NLTK stopwords corpus if it has not already been downloaded.

"""

nltk_download_corpus('corpora/stopwords')

def download_nltk_wordnet():

"""

Download required NLTK corpora if they have not already been downloaded.

"""

nltk_download_corpus('corpora/wordnet')

def download_nltk_averaged_perceptron_tagger():

"""

Download the NLTK averaged perceptron tagger that is required for this algorithm

to run only if the corpora has not already been downloaded.

"""

nltk_download_corpus('taggers/averaged_perceptron_tagger')

def download_nltk_vader_lexicon():

"""

Download the NLTK vader lexicon for sentiment analysis

that is required for this algorithm to run.

"""
nltk_download_corpus('sentiment/vader_lexicon')

5、创建一个 Chat Bot并进行训练

from chatterbot import ChatBot
from chatterbot.trainers import ListTrainer

chatbot = ChatBot("小明")
trainer = ListTrainer(chatbot)
with open('part.data', encoding='utf-8') as f:
data = f.read().replace('\t', '\n')
data = data.split("\n")

trainer.train(data)

6、本地测试

from chatterbot import ChatBot
import sys

bot = ChatBot(
    '小明',
    database_uri='sqlite:///db.sqlite3'
 )
 
print('Type something to begin...')
 
while True:
    try:
        user_input = input()

        bot_response = bot.get_response(user_input)

        print(bot_response)

    # Press ctrl-c or ctrl-d on the keyboard to exit
    except (KeyboardInterrupt, EOFError, SystemExit):
        break

三、部署成服务

  • 安装flask
pip3 install flask
  • 安装uwsgi
yum install -y pcre pcre-devel pcre-static
yum install -y python3-devel
pip3 install uwsgi --no-cache-dir
  • 新建api.py文件
vim api.py
  • 添加如下内容
from flask import Flask, render_template, request, jsonify
from chatterbot import ChatBot
 
app = Flask(__name__)
 
bot = ChatBot(
    'С˼',
    database_uri='sqlite:///db.sqlite3'
)

@app.route("/")
def home():
	return render_template("index.html")

@app.route("/api/<text>")
def get_bot_api(text):
    res = str(bot.get_response(text))
    return jsonify(res), 200


if __name__ == "__main__":
	app.run(host='0.0.0.0')
  • 新建在项目目录下,添加uwsgi配置
vim uwsgi.ini
  • 添加如下内容
[uwsgi]

http = 0.0.0.0:5000
chdir = /usr/share/nginx/html/chatbot/chatterbot
wsgi-file = api.py
callable = app
processes = 4
threads = 2
master = true
vacuum = true
  • 运行uwsgi
uwsgi uwsgi.ini
  • 调用
$url = "http://127.0.0.1:5000/api/{$word}";
$reply = $this->getData($url);

附:源码

https://github.com/wenknow/chatterbot

About

从零开始搭建一个中文聊天机器人

Resources

Readme
Activity

Stars

25 stars

Watchers

1 watching

Forks

8 forks
Report repository

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%

Footer

© 2024 GitHub, Inc.

玻璃钢生产厂家玉林商场美陈雕塑厂家玻璃钢怎么做成雕塑六安商场秋季美陈柳州景区玻璃钢雕塑安装打磨玻璃钢雕塑上海装饰商场美陈批发白城玻璃钢花盆花器绍兴环保玻璃钢雕塑宁波环保玻璃钢雕塑多少钱玻璃钢红军雕塑款式新密玻璃钢雕塑报价孝南玻璃钢花盆花器姜堰玻璃钢雕塑玻璃钢雕塑翻新视频上海通道商场美陈销售厂家湖南常德玻璃钢雕塑厂家深圳玻璃钢透光雕塑制作管城区博物馆玻璃钢雕塑长沙标牌标识玻璃钢仿铜雕塑公司宁波玻璃钢卡通雕塑费用江苏高质量玻璃钢雕塑供应商酒店玻璃钢园林艺术雕塑江西佛像玻璃钢雕塑哪家便宜黄山玻璃钢雕塑设计芜湖玻璃钢雕塑制造厂家选料考究的玻璃钢雕塑铜仁玻璃钢雕塑厂家哪家好河南省新郑市玻璃钢花盆商场品牌美陈制作扬州玻璃钢不锈钢雕塑香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化