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

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

Время на прочтение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

Публикации