У меня есть список названий лекарств (regular_list) и список новых имен (new_list). Я хочу проверить, присутствуют ли имена в new_list уже в обычном_списке или нет. Проблема в том, что имена new_list могут иметь некоторую опечатку ошибок, и я хочу, чтобы эти имена считались соответствующими обычному списку. Я знаю, что использование stringdist — это решение проблемы, но мне нужен алгоритм машинного обучения.
алгоритм машинного обучения для проверки орфографии
Ответы (1)
Как уже упоминалось здесь, машинное обучение для преодоления опечаток, инструменты машинного обучения слишком много для такой задачи, но проще всего было бы объединить эти подходы.
С одной стороны, вы можете вычислить edit distance
между заданным словом x
и каждым из словарных слов d_i
. Кроме того, вы можете тренировать классификатор по словам
c(d_i, distance(x,d_i))
возвращает True
(класс 1
), если заданное расстояние редактирования было изучено как достаточное, чтобы считать x
версией d_i
с ошибкой. Это может дать вам более общую модель, чем без использования машинного обучения, так как у вас могут быть разные пороги для каждого словарного слова (некоторые слова пишутся с ошибками чаще, чем другие), но, очевидно, вы должны подготовить обучающий набор в форме (misspelled_word, correct_one)
(и добавьте также (correct_one, correct_one
).
Вы можете использовать любой тип двоичного классификатора для такой задачи, который может работать с «реальными» входными данными.