Подобный и семантический поиск - PullRequest
2 голосов
/ 04 января 2012

У меня мало проблем с семантическим веб-поиском.Я создаю приложение на PHP / MySQL, которое будет работать как «семантическая» поисковая система.Эта проблема, как правило, очень сложная, но моя ситуация немного проще.Мне нужно будет выполнять поиск только по данным на моем веб-сайте и только по данным, которые я добавлю в базу данных.

Идея состоит в том, что somoene ищет еду, поэтому система возвращает рядом с документами еды также документ, который содержит слово Pizza, потому что Pizzaэто еда.Мой сайт будет действительно специфичным, поэтому можно смоделировать все эти отношения (по крайней мере, я так думаю), но я ожидаю, что не будет всего.Первая проблема заключается в том, что я не знаю, как сохранить эти данные в базе данных, я имею в виду эти отношения, потому что это будут отношения N: M, и они должны быть действительно гибкими, потому что они будут использоваться для каждого поиска на сайте.Это будет «как дерево», от самых абстрактных до самых специфических, например Food -> pizza -> margherita, а также food-> vegetarian -> margherita.Моя идея состоит в том, чтобы использовать тройки из семантической сети и сохранять все отношения как обоснованные тройки.

Следующая проблема связана с вводом пользовательских данных.Допустим, пользователи смогут добавлять некоторые «теги» в свой документ, и мое приложение должно было соединить их с моими тройками.Поэтому, если пользователь вводит Pizza, в первую очередь мое приложение должно предложить ему все известные пиццы, и если он выберет margherita, то его документ будет связан с pizza margherita, но если он добавит неизвестную пиццу, мое приложение свяжет его документ с Puzza.только (высшая абстракция).

Позже каждый поисковый запрос будет искать лучшее совпадение в моей модели троек и в документе, связанном с поиском, это хорошая идея?

Мой вопрос действительно общий, как разработать это приложение, что должно быть первымидея или какой-то первый толчок.

Спасибо за любые идеи, как решить эту проблему.

1 Ответ

3 голосов
/ 04 января 2012

Одним из быстрых способов было бы сохранить где-нибудь фразы вроде « Food pizza margherita » и « Food pizza что-то », связанные с идентификатором категории и / или набором документов, чтобы вы могливыполнить полнотекстовый и морфологический поиск для связанных категорий / документов и показать верхнюю / нижнюю категории.

Этот тип запросов может выполняться с использованием стандартного полнотекстового поиска MySQL http://dev.mysql.com/doc/refman/5.1/en/fulltext-boolean.html или внешних полнотекстовых поисковых систем, таких как Lucene http://lucene.apache.org/ или Sphinx http://sphinxsearch.com

...