Сравнение txt файлов с кодами, big data

Есть корпус текстов, список списков. Каждый список разной длины и включает коды типа 'y58u ufgh ko9u'.

Мне необходимо сравнить все txt файлы между собой по этим кодам, чтобы выяснить какие списки похожи на друг друга больше чем остальные.

Я пробовала брать CountVectorizer(), но объем данных несколько миллионов и памяти не хватает. Порекомендуйте пожалуйста какие инструменты НЛП можно использовать для данной проблемы, с учетом большого размера данных.

При использовании OneHotEncoding и LabelEncoding возникает такая же проблема с памятью.


Ответы (1 шт):

Автор решения: CrazyElf

Если проблема в том, что сам векторизатор потребляет много памяти, то можете использовать HashingVectorizer, он stateless, то есть не хранит состояние, а поэтому практически не потребляет память. Кроме того, на выходе он даёт разреженную матрицу, которая тоже потребляет мало памяти (если её не превращать в обычную матрицу и пользоваться теми моделями, которые понимают разреженные матрицы).

Далее можно использовать разные современные библиотеки, быстро считающие расстояния, я о них писал, например, здесь. Это в случае, если у вас много таких списков.

А если файлов/списков у вас немного, то есть и проще методы найти близкие пары, но, в общем дальше нужно от вас больше конкретики, что и как вы хотите делать дальше.

→ Ссылка