Comments 19
UFO just landed and posted this here
Спасибо за наводку. Про soundex прочел, а бывает ли он для не-английских языков?
0
UFO just landed and posted this here
Огромное спасибо. Я ж видел эту статью, но почему-то решил, что это немного не то, что надо. Сейчас внимательно перечитал, и понял, что это очень и очень то.
Осталось решить проблему адаптации для сортировки в условиях ограниченных ресурсов (телефоны). Сразу приходит в голову несколько вариантов:
1. Генерить полные фонетические коды для всех контактов и записывать в кастом поле в адресной книге. В принципе, при наличии кучи API для популярных адресных книг, это можно реализовать как отдельный сервис, если их генерация на телефоне будет заметно отнимать ресурсы. Или просто в виде скрипта
2. Расширить адресную книгу, чтобы генерировать только те части фонетических кодов, которые нижны для сортировки. Например, для списка в статье достаточно первых пары букв, а для «Иванченко» и «Иванченков» — генерить полностью, и эта генерация будет работать при добавлении новых контактов, что происходит не так часто. В-общем, из расплывчато-теоретической задача _внезапно_ превратилась в «да возьми и сделай».
Еще раз спасибо.
Осталось решить проблему адаптации для сортировки в условиях ограниченных ресурсов (телефоны). Сразу приходит в голову несколько вариантов:
1. Генерить полные фонетические коды для всех контактов и записывать в кастом поле в адресной книге. В принципе, при наличии кучи API для популярных адресных книг, это можно реализовать как отдельный сервис, если их генерация на телефоне будет заметно отнимать ресурсы. Или просто в виде скрипта
2. Расширить адресную книгу, чтобы генерировать только те части фонетических кодов, которые нижны для сортировки. Например, для списка в статье достаточно первых пары букв, а для «Иванченко» и «Иванченков» — генерить полностью, и эта генерация будет работать при добавлении новых контактов, что происходит не так часто. В-общем, из расплывчато-теоретической задача _внезапно_ превратилась в «да возьми и сделай».
Еще раз спасибо.
0
Хорошая идея. Если всё-таки реализую стартап, позаимствую её. Можно?)
+1
Естественно, а если соответствующая библиотека будет выложена в open-source, то вообще замечательно будет!
Хмм… а если б я сказал «нет»? ;-)
Хмм… а если б я сказал «нет»? ;-)
+1
Отреплейсить буквы фонетически в дополнительном поле (нужно учесть сочетания). Дальше обычная сортировка по тому полю и вывод данных по этому. Но есть сильный нюанс. Тот же William скорее читается как Уильям, но бывает что читают и как Вильям.
0
А я мечтаю о телефоне, в котором помимо всего прочего будет возможность создавать папки для контактов.
Нет, не эти конченные группы, которые спрятаны за 5 меню по опциям, а прямо в списке чтоб можно было как дерево проводника раскрывать и закрывать. Задолбало в названии контакта метку писать.
Зато вон презентуют новые ОС для телефонов, кучу всякой херни, а папки уже второй десяток лет сделать никто не может.
Нет, не эти конченные группы, которые спрятаны за 5 меню по опциям, а прямо в списке чтоб можно было как дерево проводника раскрывать и закрывать. Задолбало в названии контакта метку писать.
Зато вон презентуют новые ОС для телефонов, кучу всякой херни, а папки уже второй десяток лет сделать никто не может.
+1
Дерево — это скучно, и не очень хорошо отражает реальные связи между объектами (в данном случае — людьми). Вот тут (http://blog.cornelius-schumacher.de/2011/03/its-not-address-book.html) один КДЕ-шник предложил другой способ группировки контактов, мне кажется, интересно. Я себе поставил, поигрался. Пока программа сырая, но имеет потенциал.
0
Дело в том, что буквы в принципе почти никогда не отражают произношение. Следовательно, возможны варианты, когда одно и то же произношение можно передать различными буквами. Но вот алфавит, как упорядоченная последовательность, существует только для букв, но не для звуков (у IPA, насколько я знаю, нет стандартного порядка возрастания/убывания). Поэтому идея, при всей своей простоте, кажется несколько странной. Почему, например, William оказался рядом с «В», а Яков — с «Y»? Ведь можно и William — «У», Яков — «I»? Тем более что существует для некоторых имён ещё традиция (Хаксли—Гексли, например). При переходе от одного языка к другому меняется произношение одного и того же имени (вот у Вас John идёт на «Д», хотя у англофона он никаким образом с «D» не ассоциируется, потому что там другой звук, не связанный с буквой «D» никак).
На мой взгляд, принципиальная неразрешимость этой задачи, связанная с тем, что очень мало в мире языков, записываемых с точным соответствием букв и фонем, сводит на нет всю потенциальную пользу.
На мой взгляд, принципиальная неразрешимость этой задачи, связанная с тем, что очень мало в мире языков, записываемых с точным соответствием букв и фонем, сводит на нет всю потенциальную пользу.
0
>вот у Вас John идёт на «Д», хотя у англофона он никаким образом с «D» не ассоциируется, потому что там другой звук, не связанный с буквой «D» никак
Вы упустили один момент — John у меня на букву «Д», когда включена _русская_ локаль.
В английской локали он будет на букву «J», как и положено.
С Яковом — да, действительно неоднозначно, так же как и с Вильямом/Уильямом.
А насчет Хаксли/Гексли — мне не кажется, что это имеет отношение к данной задаче. Так же как и то, что возможны варианты, когда одно и то же произношение можно передать разными буквами — в первом приближении мне было бы достаточно, чтобы во всех случаях выбирался один и тот же вариант. Я не собираюсь переводит имена и фамилии на другой язык. (оффтоп) я обалдел, когда узнал, что по правилам польского (блин, или чешского?!) языка Маргарет Тэтчер пишется как Малгожата Тэтчерова. И во всех газетах так и писалась.(/оффтоп)
Вы упустили один момент — John у меня на букву «Д», когда включена _русская_ локаль.
В английской локали он будет на букву «J», как и положено.
С Яковом — да, действительно неоднозначно, так же как и с Вильямом/Уильямом.
А насчет Хаксли/Гексли — мне не кажется, что это имеет отношение к данной задаче. Так же как и то, что возможны варианты, когда одно и то же произношение можно передать разными буквами — в первом приближении мне было бы достаточно, чтобы во всех случаях выбирался один и тот же вариант. Я не собираюсь переводит имена и фамилии на другой язык. (оффтоп) я обалдел, когда узнал, что по правилам польского (блин, или чешского?!) языка Маргарет Тэтчер пишется как Малгожата Тэтчерова. И во всех газетах так и писалась.(/оффтоп)
0
Попробую немного переформулировать: Вы пытаетесь свести два списка-алфавита в один, используя «общий знаменатель» — произношение. Но так как связь между написанием и произношением неоднозначная, однозначного сопоставления у Вас, к сожалению, не получится. В лучшем случае Вы сможете использовать сопоставление, к которому привыкли лично Вы и которое не вызывает у Вас отторжения.
Особенность алгоритмов soundex и им подобных в том, что они не используются для сортировки при выводе списка, а только для поиска. В соответствии с soundex многие сходно произносимые, но совершенно разно пишущиеся слова окажутся на одной позиции, что несколько противоречит идее упорядочивания по алфавиту.
Особенность алгоритмов soundex и им подобных в том, что они не используются для сортировки при выводе списка, а только для поиска. В соответствии с soundex многие сходно произносимые, но совершенно разно пишущиеся слова окажутся на одной позиции, что несколько противоречит идее упорядочивания по алфавиту.
0
Ага, это я уже понял, поразбиравшись с soundex и русским Metaphone. Поэтому сейчас начал думать в сторону транслитерации в нужный алфавит. Точнее, транслитерации преферансом и поэтессами. Ни один из фонтетических алгоритмов, на которые я смотрел, не дает мне то, что мне нужно, и именно по указанной вами причине.
0
А по поводу того, что в лучшем случае это будет сопоставление, к которому привык лично я — меня это не пугает, потому что а) я не один, всегда найдется куча людей со схожими привычками, а кому не нравится, то б) он может модифицировать мое решение под себя, ну или в) расхождений не должно быть очень уж много, эта часть может быть настраиваемой
0
Sign up to leave a comment.
А бывает ли фонетическая сортировка?