Подскажите, каким путем лучше пойти?
Есть два больших массива адресов, среди которых много пересекающихся. В обоих массивах адреса внесены руками и без особой системы. Например в некоторые из адресов включен почтовый индекс, в другие нет. Во многих случаях помимо адреса присутствует разная дополнительная информация. Требуется по возможности точно выявить совпадающие в обоих массивах адреса.
Я наметил следующий план:
1) Строится словарь частотности всех слов не являющихся числами по всем записям, из него берутся 2% самых часто встречающихся.
2) Эти слова, знаки препинания и некоторое количество других, заранее заданных слов считаются «мусорными» и удаляются из адресов.
3) Производится вычисление расстояния Левенштейна для всех возможных пар адресов. Для вычислений используется модуль Levenshtein.
К сожалению, скорость работы получилась недопустимо низкой. Нет ли подхода, позволяющего проделать эту работу более эффективно?