Нечеткое (текст / строка) сопоставление с ИИ (для обработки общих сокращений) - PullRequest
1 голос
/ 19 февраля 2020

Привет,

У меня есть следующая задача:

1) У меня есть список из 700 000 железнодорожных / автобусных станций с именем

2) У меня есть список B из 300 000 железнодорожных / автобусных станций с названием (немного другое написано, конечно)

3), скажем, 150 000 элементов B, я знаю точное совпадение в A.

4) я хочу сопоставьте вторую половину элементов в B с A (допустим, мы знаем, что есть совпадение).

Я знаю, что здесь много подобных вопросов относительно нечеткого соответствия текста / строк, но что я неудовлетворительным является тот факт, что все они в большей или меньшей степени зависят от таких алгоритмов, как расстояние Левенштейна, и Левенштейн является своего рода проблематичным c, если в ваших текстах есть некоторые сокращения. Например, "Gleis" = "Gl." (немецкий для платформы) или "strasse" = "str." (немецкий для улицы) не должен увеличивать разницу очков. То же самое для сокращенных названий городов и и и и.

Этих сокращений больше, чем я могу обработать вручную, поэтому я подумал, что мог бы использовать тот факт, что у меня есть данные обучения в 3)

Кто-нибудь есть идеи / мысли / проекты / замечания по использованию ИИ / машинного обучения для такого рода задач? Тренировочных данных должно быть достаточно, чтобы алгоритм выучил большинство распространенных сокращений.

Кроме того, я видел некоторые AI-подходы к этому, но они используют только AI, чтобы найти подходящую границу используемой функции расстояния. различать guish между соответствием и несоответствием, что не помогает с сокращениями.

Спасибо, Тим

1 Ответ

0 голосов
/ 11 марта 2020

Что касается вашей проблемы, я бы посоветовал вам обучить встраивание с потерей триплета (https://towardsdatascience.com/lossless-triplet-loss-7e932f990b24).

Для каждой из ваших данных в 3 вы определяете метку, которая представьте, если данные взяты из A или B.

При обучении потере триплета вы определяете якорь (случайный do c из вашего набора данных) и два документа с одинаковым идентификатором и разной меткой. Здесь это do c из A и соответствует do c из B.

Это обучит конфигурацию встраивания для сопоставления элементов из A и B, имеющих одинаковое значение.

Удачи!

...