Самый быстрый способ поиска тысяч ключевых слов на веб-странице - PullRequest
1 голос
/ 23 февраля 2012

Я хочу отсканировать веб-страницу на наличие ключевых слов из моего словаря. Здесь уже задавались вопросы, чтобы подчеркнуть ключевые слова. Однако мой словарь будет огромным, например, 50 000 слов. Каков наилучший способ сделать это? Также я хочу найти на сайте варианты моей библиотеки. Например, моя библиотека содержит имена генов, такие как p53. Я хочу найти на сайте «р53», «белок р53», «индукция р53», «ингибирует р53», «фосфорилирует р53». Как я могу это сделать? Какой должен быть самый быстрый путь

Или подумайте, что у меня 2 списка

   List1                List2
   ------              -------    
   inhibits              p21
   induces               p53 
   phosphorylates        Akt
   decreases             Braf
                         cMyc

Я хочу, чтобы он мог искать комбинации List1 и 2.

Such as 
"inhibits cMyc" 
"phoshorylates p21" 

Это означает, что для этого примера необходимо найти 4 X 5 = 20 ключевых слов. Но изначально это будет что-то вроде 200 X 50000 = 1 000 000 поисковых запросов.

Ответы [ 2 ]

0 голосов
/ 23 февраля 2012

Попробуйте, может быть, это поможет вам

http://www.gotoquiz.com/web-coding/programming/javascript/highlight-words-in-text-with-jquery/

Вы должны подготовить свои шаблоны таким образом (пример, чтобы получить представление)

string keywords = "Cat, rabbit, dog,hound, fox";
 Regex r = new Regex(@", ?");
keywords = "(" + r.Replace(keywords, @"|") + ")";
0 голосов
/ 23 февраля 2012

Во-первых, словарь должен быть проиндексирован.Затем содержимое страницы также должно быть проиндексировано и найдены совпадения для словаря.Затем должны быть рассмотрены экземпляры на странице (например, выделены, связаны с определениями и т.скажем, как сценарий Greasemonkey.Я не думаю, что хорошо проиндексированный словарь из 50000 элементов будет выглядеть достаточно современным браузером на среднем ПК, даже для страниц с несколькими тысячами слов.

Редактировать

Если у вас есть два списка, тоиндексировать слова на странице (например, очень просто создать отсортированный уникальный список с ключом к первому A, первому B и т. д.).Используйте короткий список для поиска подходящих слов.

Используйте первый набор совпадений слов и найдите их на странице, найдите предыдущее слово, чтобы увидеть, соответствует ли оно слову во втором списке.Сделайте то же самое со следующим словом.Простой двоичный поиск в списке из 50 000 слов никогда не требует более 16 поисков.Использование алфавитного индекса для первого поиска, а затем двоичного, должно сократить его до 5 или 6 поисков за исходное соответствие.

Вы также можете использовать объект вместо индексированного списка и использовать if (word in wordList), чтотакже будьте очень быстрыми (не забудьте включить тест hasOwnProperty).

Если вас интересует только использование современного браузера, обратитесь к веб-работникам и веб-хранилище

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...