Общая идея такова:
- Сканирование текста, выявление предложений и слов, содержащихся в них.Напишите текстовый файл, содержащий эту информацию.Например, если первое предложение в вашем первом документе «Это была темная и бурная ночь».Это будет в вашем файле:
1, 1, It
1, 1, was
1, 1, a
1, 1, dark
1, 1, and
1, 1, stormy
Когда вы закончите, у вас будет огромный текстовый файл, содержащий одну строку для каждого слова в каждом документе.
Затем вы сортируете этот файл по слову, документу и номеру предложения.
Теперь вы можете просмотреть этот файл и создать индекс по слову.По сути, это показывает, в каких предложениях содержится каждое слово. Например, записи для «темных» и «бурных» могут выглядеть примерно так:
dark: 1:1, 3:8, 22:99, ...
stormy: 1:1, 12:6, 22:99, ...
Теперь, если кто-то попросит вас сказать им, в каких предложениях "происходит «темное» и «бурное», вы можете получить списки для двух слов, пересечь множество и вернуть результат (в данном случае 1: 1, 22:99).
Это неОсобенно сложно это сделать для небольшого объема (несколько мегабайт) данных.Это было бы сложным упражнением для тех, кто имеет немного опыта программирования.Выполнимо, но сложно.
Однако при работе с терабайтами вы должны быть очень креативны со своими структурами данных или иметь возможность бросить много оборудования на проблему.Это определенно не проблема, которую я бы ожидал от начинающего программиста.