2010-08-12 8 views
0

Я ищу алгоритм, который будет эффективно разделять строку поиска на массив известных поисковых фраз. Например, если я нахожу «пиццу Лос-Анджелеса», ей нужно знать, что я ищу «Лос-Анджелес» и «Пиццу», а не «Лос» и «Пиццу в Лос-Анджелесе».Поисковый запрос и алгоритм определения ключевых слов

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

ответ

0

Google N-gram Corpus может быть использован для определения наиболее подходящих разделов.

Для достаточно коротких фраз, вы можете создать все возможные наборы п-грамм, что выражение можно разделить на (например, ["Los", "Angeles", "pizza"], ["Los Angeles", "pizza"], ["Los", "Angeles pizza"] и ["Los Angeles pizza"] для примера фразы), искать их в корпусе, и посмотрите, какой из них выйдет с наибольшим количеством вхождений. (Принимая во внимание размер корпуса, вам, вероятно, нужно загрузить его в базу данных, а не в хэш-таблице в памяти.)

EDIT: Судя по всему, это не в свободном доступе. Может быть, есть некоторые подобные вещи, которые вы могли бы использовать. Если нет, есть определенные тексты из Интернета, которые вы можете скачать и использовать для создания собственных списков n-граммов.

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