Я делаю инструмент импорта CSV для проекта, над которым я работаю.
Клиент должен иметь возможность вводить данные в Excel, экспортировать их в формате CSV и загружать их в базу данных.
Например, у меня есть эта запись CSV:
1, John Doe, ACME Comapny (the typo is on purpose)
Конечно, компании хранятся в отдельной таблице и связаны с внешним ключом, поэтому мне нужно найти правильный идентификатор компании перед вставкой.
Я планирую сделать это путем сравнения названий компаний в базе данных с названиями компаний в CSV.
сравнение должно возвращать 0, если строки в точности совпадают, и возвращать какое-то значение, которое увеличивается по мере того, как строки становятся более разными, но strcmp здесь не обрезает это, потому что:
«Акме Компани» и «Акме Компани» должны иметь очень небольшую разницу, но
«Акме Компани» и «Cmea Mpnyaco» должны иметь очень большую разницу в показателях
Или «Акме Компани» и «Акме Комп.» также должен иметь небольшой индекс разницы, хотя количество символов отличается.
Также «Акме Компани» и «Компания Акме» должны вернуть 0.
Так что, если клиент вводит тип при вводе данных, я мог бы предложить ему выбрать имя, которое он, скорее всего, хотел бы вставить.
Есть ли известный алгоритм для этого или, может быть, мы можем его изобрести :)