当前位置:   article > 正文

Python实现聊天机器人(基于ChatterBot)_聊天机器人对话python实现

聊天机器人对话python实现

废话不多说,直接上正题。

使用Python中的ChatterBot和Spacy库编写的简单聊天机器人

首先,需要安装ChatterBot和Spacy库,可以使用以下命令:

 

复制插入

  1. pip install chatterbot
  2. pip install spacy
  3. python -m spacy download en_core_web_sm

复制插入

接下来,我们需要导入所需的库:

 

python复制插入

  1. from chatterbot import ChatBot
  2. from chatterbot.trainers import ChatterBotCorpusTrainer
  3. from chatterbot.comparisons import levenshtein_distance
  4. from chatterbot.response_selection import get_random_response
  5. from spacy.lang.en import English
  6. from spacy.tokenizer import Tokenizer

复制插入

实例化一个聊天机器人:

 

python复制插入

  1. chatbot = ChatBot('MyBot',
  2. logic_adapters=[
  3. {
  4. 'import_path': 'chatterbot.logic.BestMatch',
  5. 'statement_comparison_function': levenshtein_distance,
  6. 'response_selection_method': get_random_response
  7. }
  8. ])

复制插入

为聊天机器人加载语料库

 

python复制插入

  1. corpus_trainer = ChatterBotCorpusTrainer(chatbot)
  2. corpus_trainer.train('chatterbot.corpus.english.greetings',
  3. 'chatterbot.corpus.english.conversations')

复制插入

定义一个自定义逻辑适配器,使用Spacy来提取实体和关键字:

 

python复制插入

  1. class SpacyAdapter:
  2. def __init__(self, **kwargs):
  3. self.nlp = English()
  4. self.tokenizer = Tokenizer(self.nlp.vocab)
  5. def process(self, statement):
  6. doc = self.nlp(statement.text)
  7. statement.entities = {}
  8. statement.keywords = []
  9. for ent in doc.ents:
  10. statement.entities[ent.label_] = ent.text
  11. for noun_chunk in doc.noun_chunks:
  12. statement.keywords.append(noun_chunk.text)

复制插入

将自定义逻辑适配器添加到聊天机器人中:

 

python复制插入

chatbot.logic_adapters.append(SpacyAdapter())

复制插入

最后,可以从命令行或Web界面与机器人进行交互:

 

python复制插入

  1. while True:
  2. try:
  3. user_input = input("You: ")
  4. response = chatbot.get_response(user_input)
  5. print("Bot: ", response)
  6. except (KeyboardInterrupt, EOFError, SystemExit):
  7. break

复制插入

这是一个很简单的聊天机器人,可以根据需求进行更多的自定义和改进。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/592614
推荐阅读
相关标签
  

闽ICP备14008679号