Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如果没有找到响应,Python Chatterbot会选择类似的文本_Python 3.x_Chatterbot - Fatal编程技术网

Python 3.x 如果没有找到响应,Python Chatterbot会选择类似的文本

Python 3.x 如果没有找到响应,Python Chatterbot会选择类似的文本,python-3.x,chatterbot,Python 3.x,Chatterbot,如果在Chatterbot中找不到响应,我如何选择类似的文本而不是随机响应?关于这个问题已经讨论了几个小时,找不到解决方案 我的意见是:A怎么了 类似的文字发现:我和你在一起肉汤(0.63信心) 但它并没有选择它,而是Chatterbot选择了一个随机响应 import string from chatterbot import ChatBot from chatterbot.trainers import ListTrainer import chatterbot from django.co

如果在Chatterbot中找不到响应,我如何选择类似的文本而不是随机响应?关于这个问题已经讨论了几个小时,找不到解决方案

我的意见是:A怎么了 类似的文字发现:我和你在一起肉汤(0.63信心) 但它并没有选择它,而是Chatterbot选择了一个随机响应

import string
from chatterbot import ChatBot
from chatterbot.trainers import ListTrainer
import chatterbot
from django.contrib.auth.models import User
from django.utils.crypto import get_random_string

from celery import shared_task

@shared_task
def search_for_reply(input_reply):
    # Create a new chat bot named Charlie
    print(input_reply)
    chatbot = ChatBot('Charlie',
                      read_only=True,
                      storage_adapter='chatterbot.storage.SQLStorageAdapter',
                      database_uri='sqlite:////home/knaitas/myproject/database.sqlite3',
                      logic_adapters=[
                      {
                      "import_path": "chatterbot.logic.BestMatch",
                      'threshold': 0.35,
                      "statement_comparison_function": "chatterbot.comparisons.SentimentComparison",
                      "response_selection_method": "chatterbot.response_selection.get_first_response"
                      }
                      ]
                      )
    response = chatbot.get_response(input_reply)

    return response
日志:


我认为chatterbot中的阈值是最大的相似性阈值,所以它搜索可能的答案直到这个阈值。例如,如果您将其设置为0.64,它可能会起作用。感谢您的回答,我将阈值更改为“最大相似性”阈值:0.35,但仍然得到相同的结果,我认为问题在于没有可用的响应,因此如果没有响应,应使用相似,在文档中找不到任何内容:(您也应该将阈值设置得更高。最大相似性\u阈值意味着它使用此阈值或更低的阈值搜索答案。您的阈值更大,因此即使它存在,您也不会得到响应。我知道,我将其更改为0.64,结果仍然相同。我认为这是因为chatterbot没有将类似文本注册为可能的响应。我不明白你的意思相似。你有你的输入回复样本吗?我认为chatterbot中的阈值是最大的相似性阈值,因此它会搜索可能的答案,直到这个阈值。例如,如果你将其设置为0.64,它可能会工作。感谢你的回答,我将阈值更改为“最大相似性阈值”:0.35,但是仍然得到相同的结果,我认为问题在于没有可用的响应,因此如果没有响应,应使用类似的,在文档中找不到任何内容:(您也应该将阈值设置得更高。最大相似性\u阈值意味着它使用此阈值或更低的阈值搜索答案。您的阈值更大,因此即使它存在,您也不会得到响应。我知道,我将其更改为0.64,结果仍然相同。我认为这是因为chatterbot没有将类似文本注册为可能的响应.我不明白你的意思。你有你的输入和回复的样本吗?
[2019-12-24 11:43:14,914: WARNING/ForkPoolWorker-1] What's up brotha
[nltk_data] Downloading package stopwords to
[nltk_data]     /home/knaitas/nltk_data...
[nltk_data]   Package stopwords is already up-to-date!
[nltk_data] Downloading package averaged_perceptron_tagger to
[nltk_data]     /home/knaitas/nltk_data...
[nltk_data]   Package averaged_perceptron_tagger is already up-to-
[nltk_data]       date!
[2019-12-24 11:43:18,090: INFO/ForkPoolWorker-1] Beginning search for close text match
[2019-12-24 11:43:18,091: INFO/ForkPoolWorker-1] Processing search results
[2019-12-24 11:43:21,814: INFO/ForkPoolWorker-1] Similar text found: I'm with you brotha 0.63
[2019-12-24 11:43:21,817: INFO/ForkPoolWorker-1] Using "I'm with you brotha" as a close match to "What's up brotha" with a confidence of 0.63
[2019-12-24 11:43:24,753: INFO/ForkPoolWorker-1] No responses found. Generating alternate response list.
[2019-12-24 11:43:25,358: INFO/ForkPoolWorker-1] No known response to the input was found. Selecting a random response.