необходимо вдохновение для кодирования - ключевые слова, содержащиеся в строке - PullRequest
0 голосов
/ 03 марта 2010

У меня есть конкретная проблема, и мне нужно знать, как лучше ее решить.

У меня есть строка php, которая может содержать несколько ключевых слов (на самом деле тегов). Например: -

"SEO, AdWords, Google"

или

"веб-разработка, создание сообщества, веб-дизайн"

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

Я хочу проверить строку ключевого слова / тега по этим пулам ключевых слов, и, если, например, в строке ключевого слова содержится, например, seo или adwords, это сопоставляется с пулом ключевых слов для онлайн-маркетинга, и подается определенный фрагмент контента. 1013 *

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

Есть идеи?

Спасибо

Jonathan

1 Ответ

1 голос
/ 03 марта 2010

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

1) Самый простой: преобразовать список в регулярное выражение в форме "keyword1 | keyword2 | keyword3" и посмотреть, соответствует ли ввод.

2) Средний: добавьте слова в хеш-таблицу, затем разбейте ввод на слова (возможно, вам придется использовать замену регулярного выражения для удаления пунктуации) и попытайтесь найти каждое слово ввода в хеш-таблице.

3) Самое сложное: это может не работать в зависимости от вашей конкретной ситуации, но если все возможное содержимое может быть проиндексировано поисковым решением (например, Apache SOLR), тогда ваш список ключевых слов может быть использован в качестве строки поиска. и вы можете вернуть результаты выше определенного уровня релевантности.

Трудно точно определить, какое решение будет работать лучше, не зная больше о ваших исходных данных. Большое количество ключевых слов может привести к застреванию регулярного выражения, но если это короткий список, то он может отлично работать. Если ваши входы длинные, то # 2 не будет работать так хорошо, потому что вы должны проверить каждое входное слово. Как всегда, ваш пробег может меняться, поэтому я бы начал с самого простого решения, которое, как мне показалось, сработало бы, и посмотрел, приемлемо ли это.

...