2012-05-31 3 views
1

Привет, я сделал короткий курс AI, и мы разработали chatbot на основе AIML и python. У меня есть новая задача для разработки некоторой формы семантической поисковой системы. Я хочу, чтобы люди могли перемещаться по данным или искать вопросы, и я даю им результаты. Первоначально это будет для конкретной темы, например. транспорта и географии. Некоторая выборка от пользователя:семантическая поисковая система и навигатор

  1. Сколько мне будет стоить от x до y?

    Ans: Это будет стоить вам 26 $

  2. Как далеко от й г?

    Ans: Это 25 миль

  3. Пользователь может добавлять facourite маршруты таким образом, они могут просто ввести, добавить любимые roAnd пользователь будет предложено ввести F маршруты.

    Ans: Вы просите добавить запись на свои любимые маршруты?

    Пользователь: Да.

    Ans: Введите любимый маршрут.

  4. Показать мои общие маршруты.

    Ans: Ваши общие маршруты - это x, y и z.

Таким образом, поиск данных может быть специфичным для пользователя, следовательно, возможно, придется использовать базу данных. Некоторые данные являются внешними, возможно, позволяют отображать карты Google для поиска на расстояниях. Некоторые вопросы могут просто потребовать ответа от чата.

Так что я должен делать при вводе пользователя? Токенизировать его, остановить его, разобрать?

Я надеялся использовать AIML где-то, но статью я читал http://knytetrypper.proboards.com/index.cgi?board=gbot&action=print&thread=285. Говорит, что AIML подходит только для соответствия шаблону. Кто-то, пожалуйста, укажите мне правильное направление. Я загрузил NLTK, мне кажется полезным, но я не знаю, может ли он самостоятельно делать то, что мне нужно.

Любые подобные проекты?

ответ

1

Это очень трудная проблема. Если вы ограничиваете входные данные очень маленьким пространством, это может быть выполнено. В этот момент, хотя вы просто используете словарь и имеете базовые команды для каждого возможного запроса.

Есть несколько способов различать типы запросов: 1) разбор и пытаются использовать все, что информация 2) частичные парсинг/позы tag- найти глаголы 3) машинного обучения/классификационный подход, используя позицию как функции , расстояния, слова/конструкции, такие как 'to'/'from'

... а затем вы можете попытаться вытащить параметры запроса после правильного запроса запроса.

Я бы избегал делать синтаксический разбор, пока вы не уверены, какой именно запрос - классический подход - лучший первый шаг, а для вовлечения в этот NLTK очень полезно.

+0

Большое спасибо за ответ.Поэтому я сначала попробую сделать классификацию, ищущую слова, такие как/из, стоимость, расстояние. Как бы то ни было, я понимаю, что это просто расскажет мне вопрос о том, о чем был вопрос, но на самом деле это не то, что было задано, поэтому я думаю, что вы упомянули, что я должен попробовать разобрать его после. Итак, в основном классификация сокращает пространство поиска в более утонченное пространство? – sqwale

Смежные вопросы