Я занимаюсь разработкой приложения, которое обеспечивает поиск по контексту. Приложение находится на стадии разработки.
Мне нужно знать, будет ли достаточно простой структуры графа и алгоритма обхода или мне следует использовать нейронную сеть. Я хочу пойти с самым долгосрочным решением.
Я имею в виду представление отдельных понятий простыми узлами. Предположим, я хочу найти цвет волос Джона (черный). Я думаю, что мне нужно четыре концептуальных узла: Джон, волосы, цвет и черный. Вот два алгоритма - какой из них лучше всего подходит для моей задачи?
Алгоритм обхода
См. Эту схему для справки: http://chadjohnson.ath.cx:8080/static/concept_map.png
- Ввод (как-то так), по порядку: 1. Человек 2. Джон 3. Волосы 4. Цвет
- Найдите узел графа, соответствующий 'person'.
- Просмотрите все узлы, смежные с узлом person, и найдите узел john.
- Просмотрите все узлы, смежные с узлом 'john', и найдите узел, который имеет связи как с узлом 'hair', так и с узлом 'color'.
Другой вариант - представить «цвет волос» в качестве своего собственного концептуального узла, сделав его так, чтобы «светлые волосы» были понятием «цвет волос». Тогда шаг (4) станет
Посмотрите на все узлы, смежные с узлом "Джон", и найдите узел, который является понятием "цвет волос".
Алгоритм нейронной сети
- Ввод, в произвольном порядке: 1. человек 2. джон 3. волосы 4. цвет
- Обучите сеть, чтобы сопоставить эти конкретные данные с понятием «светлые волосы».
Любая обратная связь будет оценена. Спасибо!
Важной целью будет способность ответить на вопрос: «Какого цвета волосы у Джона?»
Итак, я хочу иметь возможность хранить понятия «личность», понятия разных людей, понятие волос, понятие цвета, понятия нескольких разных цветов, а затем я хочу связать разных людей с разными краски для волос.
Как только эти знания и их ассоциации будут на месте, я бы хотел иметь возможность искать цвет волос данного человека, учитывая (входные данные) ссылку на человека, концепцию волос и концепцию цвета.
Вот где мой вопрос вступает в игру: обход против нейронной сети.
Если это изменит ваш ответ, будущие этапы будут такими:
- компьютер, изучающий грамматику языка с нуля
- компьютер для ответов на вопросы, использующий знание грамматики языка
- компьютер для перевода предложений с одного языка на другой, правильно, исходя из контекста и имеющихся знаний. В самой простой форме он будет хранить концепцию, ассоциировать слово для данного языка с концепцией и ассоциировать другое слово для другого языка с той же концепцией. Чтобы перевести, слово для целевого языка, связанного с концепцией, будет найдено и возвращено (см. http://chadjohnson.ath.cx:8080/static/language_translation.png).