Алгоритм сопоставления нескольких слов в тексте, подсчитать количество каждого подходящего слова - PullRequest
0 голосов
/ 06 июня 2010

Я заметил, что у него есть решения для сопоставления нескольких слов в данном тексте, такие как ниже: Алгоритм сопоставления нескольких слов в тексте

Если я хочу точно знать количество появлений каждого подобранного слова в тексте, мое решение будет таким:

шаг 1: использование алгоритма ac для получения слов обработки;

шаг 2: подсчитать количество каждого слова, полученного на шаге 1

Есть ли более быстрый путь?

Thx ~

1 Ответ

0 голосов
/ 06 июня 2010
  1. Поместите слова, которые вы хотите найти, в хеш-таблицу, со словами в качестве ключей и значениями, инициализированными в 0.
  2. Перебирайте слова в тексте, каждый раз проверяя, является ли слово ключом в хеш-таблице, если да, то увеличивайте значение для этого ключа.
  3. Выполните итерацию по хеш-таблице, находя ненулевые значения, ключи для них - ваши совпадающие слова, значения - это счетчики.

Запускается в O (N + M), где N - количество слов, которые вы ищете для , а M - количество слов, которые вы ищете - .

...