Найдите наборы строк, которые человек может легко спутать - PullRequest
0 голосов
/ 10 мая 2018

Учитывая список строк (в частности, names ), существует ли алгоритм обнаружения предметов, которые могут быть легко перепутаны человеком, например.ниже, 3, 4 и 5, скорее всего, будут сбиты с толку, 6 и 7 менее легко, 1 и 2 маловероятны, и 8 не имеет равных.Если поиск наборов затруднителен, пары будут приемлемы.

1. Joe Average
2. Joe Beverage
3. Michael Andersen
4. Michael Anderson
5. Micheal Anderson
6. Steve Cook
7. Steve Look
8. Xena: Warrior Princess

Чтобы усложнить ситуацию, необходимо учитывать положение символов, поскольку человеку легче обнаружить разницу символов в начале слова / строки, чемодин посередине, например.

1. Pink Floyd
2. Bink Floyd
3. Rolling Stones
4. Rolllng Stones

Кроме того, заметить разницу символов в длинной строке труднее, чем в короткой:

1. Florence Griffith-Joyner
2. Florence Grifflth-Joyner
3. J. Lo
4. J. Law

Может быть, есть и другиеаспекты, которые должны быть приняты во внимание, основанные на том, как люди читают, как движется глаз и т. д. и другие вещи, которые могут вызвать ошибочную идентификацию.

Единственный известный мне связанный алгоритм - это Левенштейн, который ассимилирует пары человеканикогда не будет.

Способы упрощения проблемы (что я изначально имел в виду):

  • Предположим, экранный шрифт фиксированной ширины
  • Сравнение одного символа с однимсимвол
  • Предположим, небольшой набор символов с в основном отличающимися символами

Способы усложнения проблемы(чего следует избегать, если размер кода увеличивается):

  • Не ограничивайтесь сравнением одного символа, например.сравните маленький RN с маленьким M
  • Рассмотрите весь набор Unicode со всеми его гомоглифами

1 Ответ

0 голосов
/ 10 мая 2018

Вы можете использовать взвешенное расстояние редактирования, где разные правки имеют разные затраты. Таким образом, замена «О» на «Е» будет иметь низкую стоимость, но замена «С» на «L» будет иметь более высокую стоимость. Этот подход требует таблицы всех правок с соответствующими весами.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...