spamsink: (Default)
[personal profile] spamsink
Допустим, есть у нас набор слов. Поставим задачу научиться их сортировать. И даже, для простоты, допустим, что все эти слова используют один и тот же алфавит и мы должны научиться их сортировать согласно правилам конкретного языка на конкретный момент времени, глядя лишь на составляющие их алфавитные символы.

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



Есть такой датско-норвежский алфавит:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Æ Ø Å

В нем, как нетрудно видеть, буква Å (введенная вместо буквосочетания "aa" в норвежском в 1917 г., а в датском - в 1948 г., с окончательной фиксацией позиции в алфавите в 1955 г.) сортируется после буквы Z. Это несложно поддержать алгоритмически.

В отличие от норвежского, в датском языке в именах собственных, включая местные географические названия, новая буква не используется, а пишется Aa, но в целях сортировки диграф рассматривается как атомарная буква Å. Поэтому, например, в алфавитном списке городов мира датский город Aabenraa будет идти после города Zagreb. Это тоже несложно поддержать алгоритмически.

Но! В именах собственных не-скандинавского происхождения Aa рассматривается, как две отдельные буквы A, поэтому правильный алфавитный порядок для городов Aabenraa, Aachen, Zagreb таков: Aachen, Zagreb, Aabenraa. Для автоматизации такой сортировки между буквами, которые должны рассматриваться по отдельности, а не как диграф, вставляется символ U+034F с неочевидным названием COMBINING GRAPHEME JOINER, ведь он ничего не соединяет, а даже наоборот. Правильнее было бы назвать его DIGRAPH SEPARATOR, но уже поздно.

И на закуску: до 1980 г. в датском языке буква W считалась графическим вариантом буквы V, поэтому лексикографический порядок был такой, например: Wales, Vallø, Washington, Wedellsborg, Vendsyssel (представьте себе что-нибудь подобное в русском: "шапка, щётка, щука, шутка").
В 1980 г. стали считать V и W отдельными буквами, но упоминаемое в детской алфавитной песенке количество букв осталось прежним - 28, а не 29.

Так что было бы желание, а добавление (возвращение) в русский алфавит каких-нибудь букв не будет ни беспрецедентным, ни сильно оторванным по времени от прецедентов изменения алфавитов языков с долгой историей.

Date: 2012-12-20 09:23 pm (UTC)
From: [identity profile] sab123.livejournal.com
Одно слово, филологи!

Date: 2012-12-20 09:38 pm (UTC)
From: [identity profile] occam-aga.livejournal.com
бухгалтеры не лучше :)

ФИО Дата Взнос
Иванов 11.12 12.20
Петров 12.11 11.99

Date: 2012-12-20 10:10 pm (UTC)
From: [identity profile] komar28.livejournal.com
:) ну, логика есть. То есть, то, что логично в одном языке или для носителей одного языка, кажется нелогичным в другом или для носителей другого.

Меня всегда удивляется нелогичная для меня система русских числительных в связи существительных: одна книга, два, три, четыре книги (род. пад., ед.ч.), пять книг. А почему не просто единственное число для одного и множественное число для большого чем одного. ) Но пример оффтоп немножко)

Date: 2012-12-20 10:20 pm (UTC)
From: [identity profile] sab123.livejournal.com
Наверное из-за окончания числительного (гласная или согласная).

(no subject)

From: [identity profile] komar28.livejournal.com - Date: 2012-12-20 10:29 pm (UTC) - Expand

(no subject)

From: [identity profile] maksa.livejournal.com - Date: 2012-12-21 08:41 am (UTC) - Expand

(no subject)

From: [identity profile] komar28.livejournal.com - Date: 2012-12-21 09:21 am (UTC) - Expand

(no subject)

From: [identity profile] anatoly borodin - Date: 2012-12-21 10:22 am (UTC) - Expand

Date: 2012-12-20 10:22 pm (UTC)
From: [identity profile] yatur.livejournal.com
Там везде множественное число, падежи разные.
Одна книга - ед. ч., именительный падеж
Две книги - мн. ч., именительный
Пять книг - мн. ч., родительный падеж

Но: Двадцать одна книга - опять единственное число! Хотя в английском, скажем, twenty one books.
Edited Date: 2012-12-20 10:23 pm (UTC)

(no subject)

From: [identity profile] komar28.livejournal.com - Date: 2012-12-20 10:27 pm (UTC) - Expand

(no subject)

From: [identity profile] yatur.livejournal.com - Date: 2012-12-20 10:59 pm (UTC) - Expand

Date: 2012-12-20 10:03 pm (UTC)
From: [identity profile] komar28.livejournal.com
Это интересно, про Aachen понятно, это просто длинное гласное, но не-скандинавски, хотя я не знаю, как город произносится в Дании или Норвегии.

В немецком я больше не помню, где ä, ö, ü. Но не после z, это я знаю.

Date: 2012-12-20 10:23 pm (UTC)
From: [identity profile] komar28.livejournal.com
Да, третий вариант используется. Надо смотреть в телефонный справочник у нас.

Кстати, к отличию от Германии в Австртии нет фонетической разницы между "e" и "ä". :)

Date: 2012-12-21 08:44 am (UTC)
From: [identity profile] maksa.livejournal.com
А что с буквой Ё в русском? Мне смутно помнится, что на первой позиции она считается отдельной буквой (между Е и Ж), а на остальных — совпадает с Е (точнее, идёт по п. 2). Неправильно помню?

(no subject)

From: [identity profile] maksa.livejournal.com - Date: 2012-12-21 05:10 pm (UTC) - Expand

(no subject)

From: [identity profile] maksa.livejournal.com - Date: 2012-12-21 06:02 pm (UTC) - Expand

Date: 2012-12-20 10:15 pm (UTC)
From: [identity profile] fatoff.livejournal.com
> Оказывается, эта задача неразрешима без использования словаря или ручной правки подлежащего сортировке набора строк.

Разрешима или нет, в данном случае зависит от цели сортировки. Если это для обеспечения бинарного поиска, скажем, то зачем какие-то сложные правила, хватит положения символов в кодировке. То есть, или дискретное применение, или остальные применения настолько "гуманитарны"...

Date: 2012-12-20 10:25 pm (UTC)
From: [identity profile] fatoff.livejournal.com
Ну, это 'показать' уже UI, слегка гуманитарное... Надо ещё одну таблицу для трансляции алфавита... знаю пару датчан, надо поинтересоваться, как их заденет постановка 'aa' после 'z'. Ответ знаю. :-)

Date: 2012-12-20 11:51 pm (UTC)
From: [identity profile] yatur.livejournal.com
Гуманитарное - в смысле, расчитанное на пользователя-человека. Какому-нибудь веб сервису глубоко пофиг, что идет раньше - Zagreb или Aarhus, лишь бы порядок был всегда один и тот же.

(no subject)

From: [personal profile] stas - Date: 2012-12-21 02:12 am (UTC) - Expand

(no subject)

From: [identity profile] maksa.livejournal.com - Date: 2012-12-21 08:46 am (UTC) - Expand

Date: 2012-12-21 01:03 am (UTC)
From: [identity profile] juan-gandhi.livejournal.com
Добавим сюда турецкую букву I, ломающую всю международную систему toLowerCase...

(no subject)

From: [identity profile] yatur.livejournal.com - Date: 2012-12-21 01:54 am (UTC) - Expand

(no subject)

From: [personal profile] alon_68 - Date: 2012-12-21 05:26 pm (UTC) - Expand

(no subject)

From: [personal profile] stas - Date: 2012-12-21 02:16 am (UTC) - Expand

(no subject)

From: [personal profile] stas - Date: 2012-12-21 06:03 am (UTC) - Expand

кранты юниксу

From: [identity profile] andybil.livejournal.com - Date: 2012-12-28 10:51 am (UTC) - Expand

Date: 2012-12-21 01:58 am (UTC)
From: [identity profile] yatur.livejournal.com
Вот, кстати, что нагуглилось: http://gizmodo.com/382026/a-cellphones-missing-dot-kills-two-people-puts-three-more-in-jail

A Cellphone’s Missing Dot Kills Two People, Puts Three More in Jail

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

(no subject)

From: [identity profile] spectat.livejournal.com - Date: 2012-12-21 05:40 am (UTC) - Expand

(no subject)

From: [personal profile] alon_68 - Date: 2012-12-21 05:41 pm (UTC) - Expand

Date: 2012-12-21 05:41 am (UTC)
From: [identity profile] spectat.livejournal.com
интересно, а как в языках с иерографическим письмом делают сортировку?
From: [identity profile] livejournal.livejournal.com
User [livejournal.com profile] spectat referenced to your post from проблемы локализации: Iı -İi (http://spectat.livejournal.com/260514.html) saying: [...] Hamlet demişkən, olummu, ölümmü, sual budur, bu. ссылку увидел в комментарии к посту [...]

Date: 2012-12-21 10:29 am (UTC)
From: [identity profile] anatoly borodin (from livejournal.com)
В венгерском тоже весело http://en.wikipedia.org/wiki/Hungarian_alphabet#Alphabetical_ordering_.28collation.29 ()

Date: 2012-12-21 05:46 pm (UTC)
alon_68: (Default)
From: [personal profile] alon_68
В общем, некоторым языкам пора делать очередную алфавитную реформу в связи с изменившимися обстоятельствами.

(no subject)

From: [identity profile] anatoly borodin - Date: 2012-12-23 08:33 pm (UTC) - Expand

(no subject)

From: [personal profile] alon_68 - Date: 2012-12-23 09:30 pm (UTC) - Expand

(no subject)

From: [identity profile] anatoly borodin - Date: 2012-12-24 06:01 pm (UTC) - Expand

(no subject)

From: [identity profile] roberto2007.livejournal.com - Date: 2012-12-24 10:10 pm (UTC) - Expand

(no subject)

From: [personal profile] alon_68 - Date: 2012-12-25 05:29 am (UTC) - Expand

(no subject)

From: [personal profile] alon_68 - Date: 2012-12-25 08:43 am (UTC) - Expand

(no subject)

From: [personal profile] alon_68 - Date: 2012-12-25 09:19 am (UTC) - Expand

Date: 2012-12-21 05:33 pm (UTC)
alon_68: (Default)
From: [personal profile] alon_68
В каталонском существует вполне визуальный сепаратор в виде точки в середине - Llobregat Льобрегат, но paral·lel параллель.

Замечательные каталонцы

Date: 2012-12-28 10:57 am (UTC)
From: [identity profile] andybil.livejournal.com
А знатоков китайского тут нет?
Как там сортируют?

Инструменты

Date: 2012-12-28 11:45 am (UTC)
From: [identity profile] andybil.livejournal.com
Ну понятно же уже, что нужен инструмент, который позволит изменять порядок сортировки на любые алфавиты.
Вот тут некоторые ругали филологов, а что такое INFINITY и NAN в свете сортировок?
И какие филологи писали IEEE 754?
А про путаницу с NULL в БД забыли?
А убивать надо тех, кто сортирову зашивает в бинарники. Это должно быть всегда доступно и пользователям, ибо программист в выходные спит, пока начальство внедряет творчество очередного взбесившегося принтера. А творчество ограничить невозможно.

Profile

spamsink: (Default)
spamsink

February 2026

S M T W T F S
12345 67
8 91011 121314
15161718 192021
22 2324 25262728

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 4th, 2026 11:12 pm
Powered by Dreamwidth Studios