Я ищу скрипт поисковой системы или поисковик, который может:
- Поиск большого количества больших текстовых файлов, в частности, сотен полнотекстовых
романы.
- Используйте регулярные выражения для возврата слов и возможных вариантов.
- Укажите местоположение в файле всех совпадений, например номер строки или количество слов.
- В идеале с javascript или php, так как они единственные языки, на которых я разбираюсь, и мне, вероятно, придется манипулировать результатами. Но я уверен, что смогу прикусить пулю и выучить синтаксис на любом языке.
- Фильтрация массива результатов поиска по словарю для поиска подходящих существительных (это может не включать поисковую систему)
Контекст и особенности (отчасти длинные и только несколько важные):
У меня есть друг, который делает докторскую диссертацию и ищет тему браков между кузенами в романах 19-го века (вспомним пьесы Шекспира). Отсеивание заняло бы вечность, и хотя ни один алгоритм не был бы префектом, оно должно сильно сузить кругозор. Я ищу слово «брак» и все варианты, слово «двоюродный брат» и все варианты, и проверяю их относительную близость. Конечно, я ищу сотни полнотекстовых романов.
Нахождение их относительной близости - это особенность, которую мне трудно найти. Кроме того, мне может понадобиться поиск всех имен, чтобы убедиться, что главный герой, если не главный герой, вовлечен. То есть я пытаюсь определить
А. Имена в целом.
Б. Главный герой. - должно быть среди наиболее часто используемых имен.
Что касается имен в целом, у меня нет полной базы данных имен 19-го века, поэтому я оставляю отфильтровывать собственные имена. Оттуда у меня загадка общих слов, а также имен собственных после пунктуации. Я думаю, что моя лучшая ставка - фильтровать все эти слова через исчерпывающий словарь, оставляя собственные имена. Имена, вероятно, будут использоваться наиболее часто, но посмотрим, смогу ли я отфильтровать любые другие собственные имена, такие как места. Конечно, это далеко не идеально, но это значительно сузит кругозор.
Таким образом, это означает сравнение двух огромных списков слов. Есть множество способов сделать это, но если это в формате, с которым легко работать на языке, который я знаю, это было бы идеально. Мое лучшее предположение - сравнить массив заглавных слов с массивом словарных слов и найти различия. Если это в php или javascript, я в порядке. Как и для любого другого языка, если это относительно простая операция, я уверен, что смогу понять синтаксис достаточно хорошо.
Возможно, это было слишком много контекста, но любые советы по всему алгоритму и процессу также приветствуются.
Большое спасибо за ваше время и помощь! Вы внесете свой вклад в одну огромную докторскую диссертацию, сэкономив бесчисленные часы времени, поэтому мой друг также будет очень благодарен.
Ура!