Смысл of case insensitive collation
От: igna Россия  
Дата: 07.11.08 09:27
Оценка:
Какой смысл имеет независимая от регистра сортировка в лексикографическом порядке определенного языка? Если в русском языке принято, что строчные буквы предшествуют прописным, зачем менять этот порядок? Я еще понимаю причины появления скажем функции _stricmp в C, которая в случае английского языка является неким подобием функции strcoll, но зачем кому-то понадобилась _stricoll?
Re: Смысл of case insensitive collation
От: Sinclair Россия https://github.com/evilguest/
Дата: 07.11.08 10:07
Оценка: +3
Здравствуйте, igna, Вы писали:

I>Какой смысл имеет независимая от регистра сортировка в лексикографическом порядке определенного языка? Если в русском языке принято, что строчные буквы предшествуют прописным, зачем менять этот порядок?

Совершенно непонятно, что где принято, и почему это должно влиять на библиотечные функции. Помимо case sensitivity есть еще и accent sensitivity. Вопросы применения зависят исключительно от приложения.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: Смысл of case insensitive collation
От: igna Россия  
Дата: 07.11.08 10:34
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Совершенно непонятно, что где принято, и почему это должно влиять на библиотечные функции. Помимо case sensitivity есть еще и accent sensitivity. Вопросы применения зависят исключительно от приложения.


Принято это например в словарях. Для некоторых языков существуют несколько способов сортировки, так соотвественно и locale существует для каждого из способов сортировки свой. Про accent sensitivity говорят обычно имея ввиду, что в одном языке она есть, в другом нет. Если вдруг обнаружится язык, где приняты два способа сортировки, accent sensitive и accent insensitive, значит нужны соответственно два locales, что тут непонятного?
Re[3]: Смысл of case insensitive collation
От: Sinclair Россия https://github.com/evilguest/
Дата: 07.11.08 12:10
Оценка: +2
Здравствуйте, igna, Вы писали:
I>Принято это например в словарях.
Что именно "это"?
I>Для некоторых языков существуют несколько способов сортировки, так соотвественно и locale существует для каждого из способов сортировки свой.
Только не locale, а collation.
I>Про accent sensitivity говорят обычно имея ввиду, что в одном языке она есть, в другом нет.
Про нее обычно говорят, что в одном приложении она есть, а в другом — нет.
I>Если вдруг обнаружится язык, где приняты два способа сортировки, accent sensitive и accent insensitive, значит нужны соответственно два locales, что тут непонятного?
Два collation. Locale ничего не говорит про сравнение строк.
В большинстве языков нет четких правил сравнения строк. Считать ли "ёлка" и "Елка" равными — личное дело проектировщика приложения.

Я вообще твою претензию не понимаю. Я бы понял, если бы чего-то не было, что тебе нужно. А зачем требовать, чтобы что-то убрали ?
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[4]: Смысл of case insensitive collation
От: igna Россия  
Дата: 07.11.08 13:49
Оценка: -2
Здравствуйте, Sinclair, Вы писали:

S>Что именно "это"?

Что строчные буквы предшествуют прописным, тут всего-то три сосны.
S>В большинстве языков нет четких правил сравнения строк. Считать ли "ёлка" и "Елка" равными — личное дело проектировщика приложения.
Не передергивай, речь не о сравнении на равенство, а о сортировке. И если в приложении "Елка" в отсортированном списке идет после "ёлка", то это не по-человечески.
Re[5]: Смысл of case insensitive collation
От: Aikin Беларусь kavaleu.ru
Дата: 07.11.08 14:02
Оценка: -1
Здравствуйте, igna, Вы писали:

S>>В большинстве языков нет четких правил сравнения строк. Считать ли "ёлка" и "Елка" равными — личное дело проектировщика приложения.

I>Не передергивай, речь не о сравнении на равенство, а о сортировке. И если в приложении "Елка" в отсортированном списке идет после "ёлка", то это не по-человечески.
Берем "елка, ёлка,епископ", сортируем:
Стандартное сравнение: "елка, епископ, ёлка"
е и ё -- одна буква: "елка, ёлка, епископ" или "ёлка, елка, епископ" // не важно какой вариант, так как е и ё совпадают

Какой вариант "правильный"?

Правильные варианты ответа:
1) первый
2) второй
3) ни один из них //например для компарера определяющего близость слова к данному (он используется при проверке орфографии для предсказания замены неправильно написанного слова)
4) оба // не уверен, что есть такие задачи, но компарер придумать можно

Так что все зависит от задачи

СУВ, Aikin
Re[6]: Смысл of case insensitive collation
От: igna Россия  
Дата: 07.11.08 14:22
Оценка:
Здравствуйте, Aikin, Вы писали:

A>Какой вариант "правильный"?


Первый: "елка, епископ, ёлка".

В каком-таком случае этот вариант кого-то может не устроить, а вариант "елка, ёлка, епископ" устроить?
Re[5]: Смысл of case insensitive collation
От: Юрий Жмеренецкий ICQ 380412032
Дата: 07.11.08 14:24
Оценка: 2 (1)
Здравствуйте, igna, Вы писали:

I>Здравствуйте, Sinclair, Вы писали:


S>>Что именно "это"?

I>Что строчные буквы предшествуют прописным, тут всего-то три сосны.
S>>В большинстве языков нет четких правил сравнения строк. Считать ли "ёлка" и "Елка" равными — личное дело проектировщика приложения.
I>Не передергивай, речь не о сравнении на равенство, а о сортировке.

Сравнение на равенство — это намного проще чем сортировка. Читать здесь(желательно все) — Unicode Collation Algorithm.
Re[7]: Смысл of case insensitive collation
От: Aikin Беларусь kavaleu.ru
Дата: 07.11.08 14:28
Оценка: 1 (1)
Здравствуйте, igna, Вы писали:

I>Первый.

С чего ты взял?

I>Собственно мой изначальный вопрос был о том, в каком-таком случае кого-то этот вариант может не устроить.

Вернемся к тому же самому примеру про "компарера определяющего близость слова к данному (он используется при проверке орфографии для предсказания замены неправильно написанного слова".

Ты написал "елкр", программа проверки орфографии подсветила слово, нажимаешь правой кнопкой и видишь...
Что ты видишь? Ты видишь десяток слов которые возможно ты имел ввиду.
Как составить этот десяток? Почему именно эти слова попали в этот десяток а не другие? Этот десяток чем-то лучше чем остальные 10 тыс слов в словаре. Значит нужно отсортировать словарь используя критерий "лучшести" для данного конкретного случая.
Если формализовать этот критерий, каков он будет? Слово будет "лучше" если количество изменений которые преобразуют это слово в "елкр" будет "меньше".
Как это влияет на нашу ситуацию? "елка" имеет "вес" 1, "ёлка" -- 2, "епископ" -- 6.
Отсортировать по возрастания 1, 2 и 6 не составляет труда.


P.S. Я отвечал на старое сообщение, на него и отвечу.
Re: Смысл of case insensitive collation
От: Aikin Беларусь kavaleu.ru
Дата: 07.11.08 14:40
Оценка:
Здравствуйте, igna, Вы писали:

I>Какой смысл имеет независимая от регистра сортировка в лексикографическом порядке определенного языка?

Задача:
Есть список пользователей. Ники они себе заводили "как попало": Aikin, aIkIn, AIKIN, aikIN.
Ты примерно помнишь ник, но совершенно не помнишь регистр его написания.
Решение:
Сортировка без учета регистра.
Re[8]: Смысл of case insensitive collation
От: igna Россия  
Дата: 07.11.08 14:48
Оценка:
Здравствуйте, Aikin, Вы писали:

A>Если формализовать этот критерий, каков он будет? Слово будет "лучше" если количество изменений которые преобразуют это слово в "елкр" будет "меньше".

A>Как это влияет на нашу ситуацию? "елка" имеет "вес" 1, "ёлка" -- 2, "епископ" -- 6.
A>Отсортировать по возрастания 1, 2 и 6 не составляет труда.

Какое отношение все это имеет к collation?
Re[6]: Смысл of case insensitive collation
От: igna Россия  
Дата: 07.11.08 14:51
Оценка:
Здравствуйте, Юрий Жмеренецкий, Вы писали:

I>>Здравствуйте, Sinclair, Вы писали:


S>>>Что именно "это"?

I>>Что строчные буквы предшествуют прописным, тут всего-то три сосны.
S>>>В большинстве языков нет четких правил сравнения строк. Считать ли "ёлка" и "Елка" равными — личное дело проектировщика приложения.
I>>Не передергивай, речь не о сравнении на равенство, а о сортировке.

ЮЖ>Сравнение на равенство — это намного проще чем сортировка.


Знаю, это Sinclair зачем-то равенство за уши притянул.
Re[2]: Смысл of case insensitive collation
От: igna Россия  
Дата: 07.11.08 14:55
Оценка:
Здравствуйте, Aikin, Вы писали:

A>Есть список пользователей. Ники они себе заводили "как попало": Aikin, aIkIn, AIKIN, aikIN.

A>Ты примерно помнишь ник, но совершенно не помнишь регистр его написания.
A>Решение:
A>Сортировка без учета регистра.

strcoll: aikIN, aIkIn, Aikin, AIKIN
stricoll: Aikin, aIkIn, AIKIN, aikIN

И каким же образом поиск в втором списке для твоей задачи подходит лучше?
Re[9]: Смысл of case insensitive collation
От: Aikin Беларусь kavaleu.ru
Дата: 07.11.08 14:59
Оценка:
Здравствуйте, igna, Вы писали:

I>Какое отношение все это имеет к collation?

Не передергивай, речь не о сравнении на равенство, а о сортировке. И если в приложении "Елка" в отсортированном списке идет после "ёлка", то это не по-человечески.

1) Именно на эту цитату я отвечал
2) Если ты имел ввиду "отсортированном по алфавиту списке", то а) так бы и писал, б) для некоторых задач е и ё могут быть одной и той же буквой.
Re[3]: Смысл of case insensitive collation
От: Aikin Беларусь kavaleu.ru
Дата: 07.11.08 15:01
Оценка:
Здравствуйте, igna, Вы писали:

I>Здравствуйте, Aikin, Вы писали:


A>>Есть список пользователей. Ники они себе заводили "как попало": Aikin, aIkIn, AIKIN, aikIN.

A>>Ты примерно помнишь ник, но совершенно не помнишь регистр его написания.
A>>Решение:
A>>Сортировка без учета регистра.

I>strcoll: aikIN, aIkIn, Aikin, AIKIN

I>stricoll: Aikin, aIkIn, AIKIN, aikIN

I>И каким же образом поиск в втором списке для твоей задачи подходит лучше?

Для списка в 4 элемента сортировка не нужна вообще!
Re[10]: Смысл of case insensitive collation
От: igna Россия  
Дата: 07.11.08 15:05
Оценка: -1
Здравствуйте, Aikin, Вы писали:

A>Не передергивай, речь не о сравнении на равенство, а о сортировке. И если в приложении "Елка" в отсортированном списке идет после "ёлка", то это не по-человечески.

A>1) Именно на эту цитату я отвечал



-Мальчик, как тебя зовут?
(молчит)
-Мальчик, ты что, тормоз?
-Меня Вася зовут...
-А где ты живешь?
-Я не тормоз...
Re[4]: Смысл of case insensitive collation
От: igna Россия  
Дата: 07.11.08 15:07
Оценка:
Здравствуйте, Aikin, Вы писали:

I>>strcoll: aikIN, aIkIn, Aikin, AIKIN

I>>stricoll: Aikin, aIkIn, AIKIN, aikIN

I>>И каким же образом поиск в втором списке для твоей задачи подходит лучше?

A>Для списка в 4 элемента сортировка не нужна вообще!

Ну понятно, что до и после этих четырех еще немерянные тыщи, и что? Каким образом поиск в втором списке для твоей задачи подходит лучше?
Re[11]: Смысл of case insensitive collation
От: Aikin Беларусь kavaleu.ru
Дата: 07.11.08 15:13
Оценка:
Здравствуйте, igna, Вы писали:

I>Здравствуйте, Aikin, Вы писали:


I>

A>>Не передергивай, речь не о сравнении на равенство, а о сортировке. И если в приложении "Елка" в отсортированном списке идет после "ёлка", то это не по-человечески.

A>>1) Именно на эту цитату я отвечал

I>


Ок.

Именно на эту цитату я отвечал изначально в сообщении Re[5]: Смысл of case insensitive collation
Автор: Aikin
Дата: 07.11.08

После чего ты спросил "В каком-таком случае этот вариант кого-то может не устроить, а вариант "елка, ёлка, епископ" устроить?".
Я привел пример.
Ты сослался на то, что имел ввиду совсем другое.
Я ответил что обсуждение идет в контексте поста Re[4]: Смысл of case insensitive collation
Автор: igna
Дата: 07.11.08



Что тебя не устраивает?


P.S. Переход на личности не засчитан
Re[5]: Смысл of case insensitive collation
От: Aikin Беларусь kavaleu.ru
Дата: 07.11.08 15:18
Оценка: :)
Здравствуйте, igna, Вы писали:

I>Здравствуйте, Aikin, Вы писали:


I>>>strcoll: aikIN, aIkIn, Aikin, AIKIN

I>>>stricoll: Aikin, aIkIn, AIKIN, aikIN

I>>>И каким же образом поиск в втором списке для твоей задачи подходит лучше?

A>>Для списка в 4 элемента сортировка не нужна вообще!

I>Ну понятно, что до и после этих четырех еще немерянные тыщи, и что? Каким образом поиск в втором списке для твоей задачи подходит лучше?

Ты случаем не издеваешься?

... , Aikin, aIkIn, AIKIN, aikIN, ..., igna, Igna, IGNA, ignA, ...

Без учета регистра: ... , Aikin, aIkIn, AIKIN, aikIN, ..., igna, Igna, IGNA, ignA, ...
С учетом: ... ,aikIN, aIkIn, ..., igna, ignA, ..., Aikin, AIKIN, ..., Igna, IGNA, ...
Re[12]: Смысл of case insensitive collation
От: igna Россия  
Дата: 07.11.08 15:24
Оценка:
Здравствуйте, Aikin, Вы писали:

A>Что тебя не устраивает?


Твой пример имеет отношение к сортировке, но к collation — вряд ли. Все-таки согласись, странно постоянно и в каждом предложении напоминать о том, что речь идет о сортировке в смысле collation, когда collation эта появилась в названии темы с самого начала и не девается оттуда никуда.

A>P.S. Переход на личности не засчитан


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