Я пытался много искать об этом, но все, что я мог найти, это ссылки на библиотеки NLP и AIML или API-интерфейсы чат-ботов. Я хочу начать с нуля и самостоятельно анализировать предложения, чтобы я мог написать базового чат-бота, который дает ответы, подобные человеческим. Может ли кто-нибудь указать на некоторые ссылки/исследовательские документы/учебники/видео для этого?
Нужны ссылки, чтобы понять / проанализировать предложение для чат-бота без использования существующих библиотек
Ответы (2)
Без использования библиотек NLP вам придется писать часть их функций самостоятельно. Хотя это может быть образовательным, вы должны знать, что это также может занять очень много времени.
Некоторые академические ресурсы:
- Введение в поиск информации Кристофера Д. Мэннинга
- обработка речи и языка от Manning/Jurafsky
Программные/практические ресурсы:
- Как создать свой собственный чат-бот для начинающих: чат-боты 101
- Сам себе бот-мастер
- книга NLTK (хотя это библиотека, книга и код могут быть очень полезными)
- Учебное пособие по чат-боту
Поскольку вы используете AIML, вы можете начать работу, просто написав несколько шаблонов, которым вы хотели бы соответствовать. Представьте, что вы хотите проанализировать простейшую форму предложения в форме подлежащее глагол объект. Используя AIML v2, вы можете определить наборы для субъекта, глагола и объекта. Чтобы все было предельно просто, наборы подлежащих и объектов могут содержать простые объекты (кошка, собака, мышь, шляпа, циновка, сыр), а набор глаголов может быть таким, как есть, сидеть и т. д. Тогда ваш AIML будет таким:
<category>
<pattern> * <set>subject</set> <set>verb</set> * <set>object</set> </pattern>
<template>
<random>
<li>I like <star index="2"/>s</li>
<li>I hate <star index="2"/>s</li>
</random>
</template>
</category>
Ввод типа «Кошка сидела на коврике» или «Собака съела кость» будет случайным образом генерировать вывод, такой как «Я люблю кошек», «Я ненавижу собак» и т. д. Очевидно, что вам потребуется значительно расширить логику шаблона для анализа предложение в полезной форме.
Обратите внимание, что это чрезвычайно простой пример, цель которого состоит в том, чтобы показать, как сопоставление шаблонов AIML позволяет вам быстро добиться чего-то, что затем можно улучшить.