Я пытаюсь определить сходство между двумя терминами; одна написана правильно, а другая может содержать или не содержать орфографическую ошибку (и).
Чтобы сделать это прямо сейчас, я векторизовываю оба термина, используя TFIDFvectorizer, затем использую метод сходства, чтобы определить сходство между ними.
Это работает для следующих типов примеров:
Original term | Input term | Similarity
---------------------------------------
red car | red car | 1.0
red car | big red car | 0.75
Однако, если есть орфографическая ошибка, такая как:
Original term | Input term | Similarity
------------------------------------------
red car | redd carr | 0.0
Это дает сходство 0
, даже если они несколько похожи (я не исключаю, чтобы получить сходство 1.0
, но стремимся получить сходство> 0.0
.
Одно из соображений, которое я имел, состояло в том, чтобы разбить каждое слово на X символов, чтобы каждый термин был:
Original term = ['re', 'ed', 'd ', ' c', 'ca', 'ar']
Input term = ['re', 'ed', 'dd', 'd ', ' c', 'ca', 'ar', 'rr']
Затем определите их сходство по отношению друг к другу и вычислите среднее сходство.
Буду очень признателен за любые другие предложения относительно возможных подходов к этой проблеме.