Эффективное дедупликация соответствия текста - PullRequest
1 голос
/ 10 октября 2019
struct Text {
    words: Vec<String>,
    ...
}

struct Input {
    words: Vec<String>,
    ...
}

У меня есть приложение для обработки текста с несколькими шагами.

Во время одного из этапов я запускаю JaroWinkler между каждым словом текста и вводом, выбираю слова Text с наилучшим соответствием дляВведите и получите среднее их баллов. Я использую это среднее значение при расчете конечного результата. Это наивный подход.

Теперь список Text объектов превышает 120 тыс., И есть много повторяющихся слов (300 тыс. Против 60 тыс. Уникальных).

Теперь я трачумного времени на этом этапе. Одна вещь, которую можно сделать здесь, чтобы сократить время, может заключаться в том, чтобы найти JaroWinkler между уникальными словами и всеми входными словами по отдельности, а затем использовать это на шаге. Но это плохо с точки зрения памяти. Что если ввод содержит 1000 слов? Мне придется хранить 1000 х 60 К значений в памяти. Сейчас я ничего не держу в памяти, а плачу в терминах процессора.

Есть ли более эффективный способ сделать это?

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