Как стать автором
Обновить

А бывает ли фонетическая сортировка?

Время на прочтение 2 мин
Количество просмотров 1.4K
Глядя сегодня в адресную книгу своего телефона на Андроиде, я понял, что мне неудобно смотреть на список моих контактов, отсортированный по порядку символов в UTF.



Вот какой список я вижу:
  • John Smith
  • Marcus Wolf
  • Semen Slepakov
  • William Shakespear
  • Zorro
  • Александр Пушкин
  • Иван Барков
  • Яков Перельман


А вот какой список мне бы хотелось увидеть, если локаль телефона — русская:
  • Александр Пушкин (А)
  • William Shakespear (В)
  • John Smith (Д)
  • Zorro (З)
  • Иван Барков (И)
  • Marcus Wolf (М)
  • Semen Slepakov (С)
  • Яков Перельман (Я)


А вот такой список — если локаль английская:
  • Александр Пушкин (A)
  • Иван Барков (звук i: *)
  • John Smith (J)
  • Marcus Wolf (M)
  • Semen Slepakov (S)
  • William Shakespear (W)
  • Яков Перельман (YA**)
  • Zorro (Z)


Идея понятна, да? Сортировка идет по фонетическим правилам, к каждому элементу списка я добавил в скобочках значение букву/звук, которые и определяют положение элемента в списке.

*) Не совсем понятно, куда деть Ивана в английской сортировке. Звук [i:] — сортируется как английская буква E или, все же, как I?

**) Та же история с Яковом. Какой вариант транслитерации использовать — YA или JA?

Что-то подобное, вроде, появляется. Например, в Фейсбуке можно в поле поиска друзей начинать печатать либо по-русски, либо по-английски, и «найдется все»

Подозреваю, что простейшим вариантом реализации было бы использование правил транслита. Т.е. все элементы списка переводятся в кириллицу или латиницу в зависимости от локали, и уже потом сортируются. Но тут есть некотодые проблемы типа указанных выше. Очень часто побуквенная (или по-звучная) транслитерация совершенно не отражает произношение слова. Многообещающим кажется путь на основе чего-нибудь типа en.wikipedia.org/wiki/International_Phonetic_Alphabet, но не факт, что существует порядок символов в этом самом IPA.

Собственно, теперь вопросы:

1. Есть ли уже такие алгоритмы в виде библиотек? Если есть, накидайте ссылок, пожалуйста (например, для Джавы).

2. Давайте попробуем накидать список проблем, с которыми придется столкнуться, если это делать самому. И, желательно, решения этих проблем.
Теги:
Хабы:
+15
Комментарии 19
Комментарии Комментарии 19

Публикации

Истории

Ближайшие события

PG Bootcamp 2024
Дата 16 апреля
Время 09:30 – 21:00
Место
Минск Онлайн
EvaConf 2024
Дата 16 апреля
Время 11:00 – 16:00
Место
Москва Онлайн
Weekend Offer в AliExpress
Дата 20 – 21 апреля
Время 10:00 – 20:00
Место
Онлайн