Искусственный интеллект в чатботах

machine-learning nlp artificial-intelligence bots

686 просмотра

4 ответа

9306 Репутация автора

Я работаю над чат-ботом, где бот будет взаимодействовать с клиентами. Я хочу создать интеллектуального, похожего на ИИ бота.

Я сделал немного, но я был бы признателен за предложения по его улучшению.

Если клиент входит:

A) I want to know the cost of XXX car.
B) Send me the price of car XXX.
C) What is the cost of XXX car?
D) Specifications of XXX car

Как я могу построить бота, чтобы он вернулся к этим ответам? Если я сопоставлю полное предложение, это не сработает.

Мои клиенты могли написать что угодно, могли спросить что угодно. Пожалуйста, кто-нибудь может помочь убедиться, что бот поймет разные фразы одного и того же запроса?

Заранее спасибо.

Автор: N Sharma Источник Размещён: 18.07.2016 04:12

Ответы (4)


5 плюса

816 Репутация автора

Используйте любую из существующих библиотек NLP, таких как Opennlp или StanfordNlp, для POSTagging или анализа настроений вашего пользователя, чтобы получить название автомобиля (как упомянуто в вашем примере) или понять любую часть предложения.

Вы можете найти много базовой поддержки здесь и здесь

Автор: iamgr007 Размещён: 19.07.2016 05:33

0 плюса

484 Репутация автора

Эта проблема требует семантического анализа, но я считаю, что такие сервисы, как Wit.ai, могут решить ваш случай, не переходя к более сложному решению.

Автор: Ramtin M. Seraj Размещён: 29.07.2016 01:17

0 плюса

33803 Репутация автора

Bot Framework делает отвечать и реагировать на эти виды запросов очень просто. Вы даже можете интегрировать когнитивные услуги для выполнения НЛП:

https://docs.botframework.com/en-us/bot-intelligence/language/#navtitle

Автор: Joel Martinez Размещён: 29.07.2016 06:16

0 плюса

1801 Репутация автора

Вы можете использовать NLP и попытаться проанализировать ваши примеры от A до D и сопоставить их с некоторыми предопределенными ответами.

Например:

Используя модель, которая хорошо работает в коротких предложениях ( https://gate.ac.uk/wiki/twitter-postagger.html ), например, твиты, и после некоторой очистки предложения, чтобы удалить ненужный шум, вы получите результат следующее. Модель автомобиля помечена как собственное существительное, автомобиль и стоимость как существительные и т. Д. Зная это, вы можете фильтровать / сопоставлять вопрос с вашими заранее заданными ответами гораздо лучше, чем раньше.

{'car': 'NN', 'cost': 'NN', 'know': 'VBP', 'want': 'VBP', 'XXX': 'NNP'}

Пример использования пользовательской модели с библиотекой nltk:

from nltk.tag import pos_tag

def pos_tag_sentence(sentence):
    """Takes a list of words and returns their matching part of speech"""

    default_tagger = nltk.data.load(nltk.tag._POS_TAGGER)
    train_model = g.train_model # the custom model as a dictionary
    tagger = nltk.tag.UnigramTagger(model=train_model, backoff=default_tagger)  # Unigram works best in short text
    return dict(tagger.tag(sentence))

Чтобы продвинуться дальше, если у вас есть набор данных, состоящий из примеров вопросов и соответствующих ответов, вы можете попробовать контролируемые алгоритмы обучения, используя, например, часть речи и слова в качестве функций ( scikit-learn - отличная библиотека).

Короче говоря, требуются время и испытания, чтобы сделать его как можно лучше, и нет единого хорошего решения для такого рода проблем.

Надеюсь это поможет. Удачи!

редактировать: я только заметил, что вы не упомянули конкретный язык программирования, но мои примеры на Python. Хотя на любом языке есть много замечательных библиотек, так что просто ищите и пробуйте :)

Автор: mkaran Размещён: 30.07.2016 08:42
Вопросы из категории :
32x32