Вы можете использовать кодирование Хаффмана Реализация не сложно, также есть алгоритмы zip на языках (например, C # и Java), и вы можете использовать их.
Также Если вы уверены, что 80-90% повторяется всего, создайте словарь всех слов, затем для каждой строки сохраняйте позицию словарного слова, значит, имеете битовый массив большого размера (т.е. 10000 т. Е.) И отмечайте соответствующую позицию от bits[i]
до 1
, еслиwords[i]
существует в текущей строке.Думайте, что длина каждого слова составляет 5 символов, тогда сокращение занимает около 1/5 размера.