Как обрабатывать сокращения в вопросах для чат-бота?

У меня есть сценарий, где пользователь может задать тот же вопрос чата по-разному. Например, вопрос может быть "что такое туберкулез?" или это может быть "что такое переходный эффект?". Ответ на оба вопроса один и тот же, но способ задать вопрос другой. Я использую levenshtein_distance для сравнения операторов в моем коде, но это не сработает в этом случае, так как это соответствует буквенно-буквенным поправкам. Как мне сравнить мои заявления в этом случае? Должен ли я предоставить оба вопроса для моих данных или есть какой-нибудь другой умный способ сделать это. Пожалуйста, предложите.

1 ответ

У меня есть решение для этого. Мы можем написать нашу собственную функцию предварительной обработки и вызвать ее внутри экземпляра chatbot.

bot = ChatBot("Norman",
          read_only=True,
          preprocessors=[
                       'chatterbot.preprocessors.TB_Correction'
                        ])

А внутри Preprocessors.py(присутствует в C:\Users\ Имя_пользователя \AppData\Local\Continuum\Anaconda3\Lib\site-packages\chatterbot) мы можем добавить к нему функцию, как показано ниже:

def TB_Correction(chatbot,statement):
    '''
    Replacing TB with Transition Benefits
    '''
    import re

    if 'TB' in statement.text:
            statement.text = re.sub(r'[T][B]','Transition Benefits',statement.text)
    return statement
Другие вопросы по тегам