После окончания двух классов CS я начал работать над личным проектом на Java. Я пишу программу, которая просматривает музыкальную коллекцию и пытается установить тег «Composer», просматривая имя файла и метатеги. Я сравниваю их со списком композиторов, который я создал в виде простого текстового файла. У меня вопрос такой:
Каков хороший метод для сравнения двух строк, чтобы попытаться найти наилучшее совпадение? Например, в моем случае предположим, что у меня есть файл под названием «Pulenc - Gloria in excelsis Deo.flac». В моем списке композиторов есть «Пуленк, Фрэнсис». Я хочу иметь возможность читать «Pulenc» и видеть, что он очень близок к «Poulenc», поэтому я могу правильно установить тег composer. Один мой друг предложил мне изучить косинусное расстояние (о котором я никогда не слышал), а другой порекомендовал расстояние Левенштейна. Является ли один из них хорошим подходом или есть другие методы, которые могут работать лучше?