У меня есть файл ARPA, который составляет почти 1 ГБ. Я должен сделать поиск в нем менее чем за 1 минуту. Я много искал, но пока не нашел подходящего ответа. Я думаю, что мне не нужно читать весь файл. Мне просто нужно перейти к определенной строке в файле и прочитать всю строку. Строки файла ARPA имеют разную длину. Я должен отметить, что файлы ARPA имеют определенный формат.
Формат файла
\data\
ngram 1=19
ngram 2=234
ngram 3=1013
\1-grams:
-1.7132 puluh -3.8008
-1.9782 satu -3.8368
\2-grams:
-1.5403 dalam dua -1.0560
-3.1626 dalam ini 0.0000
\3-grams:
-1.8726 itu dan tiga
-1.9654 itu dan untuk
\end\
Как вы видите в примере файла, у меня есть 19 строк по 1 грамму, 234 строки по 2 грамма и 1013 строк по 3 грамма. Я передаю строковую часть строки программе и получаю числа, которые находятся слева и справа от строки. Входная строка может помочь мне узнать, в какой части файла я должен выполнять поиск. Мне нужно найти способ не читать файл полностью, потому что мой файл очень большой и чтение всего файла занимает много времени. Я думаю, что это хороший способ перейти к определенной строке в файле без использования индексного файла и доступа ко всей строке.
Будет здорово, если вы поможете мне выполнить мое задание.