Каков наилучший способ выбора фрагмента текста на основе ключевых слов? - PullRequest
3 голосов
/ 09 февраля 2010

Когда вы ищете что-то в Stackoverflow, оно обрезает часть описания вопроса, которая лучше всего соответствует вашим критериям, и после этого помечает слова критериев.

Интересно, лучший способ сделать это вручную в C #, то есть без помощи полнотекстового поискового движка.

Основная проблема как быстро выбрать лучшую часть текста?

То, что я сделал до сих пор:

  1. Я получаю пробелы в индексах текста. Это позволяет мне знать, где слова начинаются так, что я могу начать свой тесты подстрок из них.
  2. Из каждого пробела я получаю 300 символов вперед и проверяю, как много вхождений ключевых слов я найти.
  3. Я предполагаю, что часть длиной в 300 символов, вхождения являются лучшими, поэтому я вырезал его из исходного текста.

Это хороший подход? Есть ли более быстрый способ? Является ли подсчет количества вхождений лучшим способом найти наиболее релевантную часть?

1 Ответ

1 голос
/ 09 февраля 2010

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

Вы можете рассмотреть вопрос о разрыве совпадения в более удобных местах, таких как знаки препинания или соединительные слова.вместо пробелов.

Возможно, вы также захотите взглянуть на термин «частота - обратная частота документа» , чтобы дать различные значения ключевым словам, а не просто их подсчет.

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