Вы могли бы быть лучше использовать Trie. Trie лучше подходит для поиска частичных совпадений (т. Е. При поиске по тексту абзаца), которые потенциально вы ищете, в отличие от создания кучи вызовов в словаре, которые в большинстве случаев терпят неудачу.
Причина, почему я думаю, что Trie (или изменения) подходит потому, что он построен, чтобы делать то, что вы пытаетесь сделать:
Если вы используете эту (или некоторые модификации который имеет обозначенные слова на каждом узле вместо буквы), это было бы наиболее эффективным (по крайней мере, я знаю) с точки зрения хранения и поиска; Хранение, потому что вместо того, чтобы хранить слово «The» пару тысяч раз в каждой записи Dict, которая имеет это слово в названии (как в случае с названиями фильмов), она будет храниться один раз в одном из узлов прямо под корнем. Следующее слово «Shawshank» будет находиться в дочернем узле, а затем «выкуп» будет в следующем, и в общей сложности три поиска; то вы перейдете к следующей фразе. Если он терпит неудачу, то есть фраза - это только «Shawshank Looper», тогда вы терпите неудачу после тех же трех поисков, и вы переходите к сломанному слову, Looper (который, как это бывает, также будет дочерним узлом под корнем, и вы получаете удар. Это решение работает, если вы читаете абзац без названий фильмов mashup).
Использование хеш-таблицы, вам нужно разбить все слова, проверить первое слово, а затем, пока нет совпадений, продолжайте добавлять слова и проверяете, есть ли эта фраза в словаре, пока вы не получите нажмите, или вы дойдете до конца абзаца. Поэтому, если вы нажмете абзац без заголовков фильмов, у вас будет столько поисков, сколько слов в параграфе.
Насколько массивным является словарь? «Как я могу это сделать с наименьшими словарными вызовами? Итак, о сложностях поиска, а не об использовании памяти - правильно? Какие-либо ограничения в отношении языка программирования? – Constantin
Как указывается данный параграф, одна длинная строка или файл? – ChiefTwoPencils
Словарь содержит несколько миллионов многотоновых строк. Я., сложность поиска - главная проблема. Нет ограничений для языка программирования. Пара будет блобом текста – sharath