* [Comm] Автораспознавание кодировки? @ 2004-11-08 20:22 Mikhail Ramendik 2004-11-08 20:30 ` Alexey Rusakov ` (2 more replies) 0 siblings, 3 replies; 19+ messages in thread From: Mikhail Ramendik @ 2004-11-08 20:22 UTC (permalink / raw) To: community Всем привет! Хотелось бы завести скрипт, который по статистике распознаёт кодировку русского письма, а затем ставит ему правильный charset в header. Наверняка такое уже делали. не подскажет ли кто, есть ли оно где-то? Если вдруг в Сизифе - устроит, выну, только скажите что именно :) С уважением, Михаил Рамендик ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Comm] Автораспознавание кодировки? 2004-11-08 20:22 [Comm] Автораспознавание кодировки? Mikhail Ramendik @ 2004-11-08 20:30 ` Alexey Rusakov 2004-11-08 23:46 ` Mikhail Ramendik 2004-11-09 20:04 ` Денис Смирнов 2004-11-12 22:30 ` Andrey Orlov 2 siblings, 1 reply; 19+ messages in thread From: Alexey Rusakov @ 2004-11-08 20:30 UTC (permalink / raw) To: community On 08.11.2004 23:22, Mikhail Ramendik wrote: > Хотелось бы завести скрипт, который по статистике распознаёт кодировку > русского письма, а затем ставит ему правильный charset в header. > > Наверняка такое уже делали. не подскажет ли кто, есть ли оно где-то? > Если вдруг в Сизифе - устроит, выну, только скажите что именно :) В Сизифе, по крайней мере, лежит enca, которая умеет определять кодировку произвольного файла, в том числе из stdin. Из нее и sed нетрудно сделать скрипт, делающий требуемое. -- Alexey "Ktirf" Rusakov ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Comm] Автораспознавание кодировки? 2004-11-08 20:30 ` Alexey Rusakov @ 2004-11-08 23:46 ` Mikhail Ramendik 0 siblings, 0 replies; 19+ messages in thread From: Mikhail Ramendik @ 2004-11-08 23:46 UTC (permalink / raw) To: community Alexey Rusakov wrote: > В Сизифе, по крайней мере, лежит enca, которая умеет определять > кодировку произвольного файла, в том числе из stdin. Из нее и sed > нетрудно сделать скрипт, делающий требуемое. Ну, писать на sed распаковку произвольного mime сообщения я пожалуй что и не буду ;) А вообще - огромное спасибо. Enca явно решает вопрос вместе с каким-нибудь стандартным парсером mime (я беру тот что в Питоне). Правда, прикрутить pyenca пока не удалось, написал автору; но если так и не получится - так через stdin/stdout тоже неплохо. С уважением, Михаил Рамендик ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Comm] Автораспознавание кодировки? 2004-11-08 20:22 [Comm] Автораспознавание кодировки? Mikhail Ramendik 2004-11-08 20:30 ` Alexey Rusakov @ 2004-11-09 20:04 ` Денис Смирнов 2004-11-12 5:34 ` Alexey V. Novikov 2004-11-12 22:30 ` Andrey Orlov 2 siblings, 1 reply; 19+ messages in thread From: Денис Смирнов @ 2004-11-09 20:04 UTC (permalink / raw) To: community On Mon, Nov 08, 2004 at 11:22:44PM +0300, Mikhail Ramendik wrote: MR> Хотелось бы завести скрипт, который по статистике распознаёт кодировку MR> русского письма, а затем ставит ему правильный charset в header. MR> Наверняка такое уже делали. не подскажет ли кто, есть ли оно где-то? MR> Если вдруг в Сизифе - устроит, выну, только скажите что именно :) Если я тебе дам хороший модуль распозавания кодировки, ты сможешь написать что-нибудь, что будет парсить MIME и применять этот модуль? -- С уважением, Денис http://freesource.info ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Comm] Автораспознавание кодировки? 2004-11-09 20:04 ` Денис Смирнов @ 2004-11-12 5:34 ` Alexey V. Novikov 2004-11-12 16:20 ` Денис Смирнов 0 siblings, 1 reply; 19+ messages in thread From: Alexey V. Novikov @ 2004-11-12 5:34 UTC (permalink / raw) To: community Денис Смирнов пишет: > On Mon, Nov 08, 2004 at 11:22:44PM +0300, Mikhail Ramendik wrote: > MR> Хотелось бы завести скрипт, который по статистике распознаёт кодировку > MR> русского письма, а затем ставит ему правильный charset в header. > MR> Наверняка такое уже делали. не подскажет ли кто, есть ли оно где-то? > MR> Если вдруг в Сизифе - устроит, выну, только скажите что именно :) > > Если я тебе дам хороший модуль распозавания кодировки, ты сможешь написать > что-нибудь, что будет парсить MIME и применять этот модуль? > Денис, там делов-то отсилу на пару кило перловки.:) perl-MIME-tools в зубы и "вперед и вверх", как говорил мой бывший научный руководитель. Другое дело, что особой потребности в этом я не вижу. -- WBR, Alexey V. Novikov ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Comm] Автораспознавание кодировки? 2004-11-12 5:34 ` Alexey V. Novikov @ 2004-11-12 16:20 ` Денис Смирнов 2004-11-12 22:33 ` Andrey Orlov 0 siblings, 1 reply; 19+ messages in thread From: Денис Смирнов @ 2004-11-12 16:20 UTC (permalink / raw) To: community On Fri, Nov 12, 2004 at 08:34:15AM +0300, Alexey V. Novikov wrote: AVN> Денис, там делов-то отсилу на пару кило перловки.:) perl-MIME-tools в AVN> зубы и "вперед и вверх", как говорил мой бывший научный руководитель. У меня нервов до конца разобраться с perl-MIME-tools, увы, не хватило. К сожалению свой старый код автоопределялки кодировки (коий я ещё под OS/2 emx писал) я потерял, но новый, более интересный, почти готовый, всё валяется в TODO. Просто определить кодировку элементарно. С надёжностью не менее 0.1% ошибок на тексте по крайней мере длиной в одну строку. Проблемы выползли у меня лишь на надёжном определении строчек типа subject'ов из одного слова. То есть определять-то я их, конечно, мог. Но для полной стабильности требовалось использовать статистику по триплетам, а это уже, извините, даже если не учитывать case (что я и делал) требовало оперативку мегабайтами, да и чтобы работало совсем-совсем быстро. AVN> Другое дело, что особой потребности в этом я не вижу. Это полезная маленькая рюшечка, за которую пользователи могут сказать большое спасибо. Да и самому читать письма идиотов, пользующихся вебмылами, которые выставляют кривой charset приходится. Так как бывает что идиоты они только в этом, то нервы себе мотать не хочется. -- С уважением, Денис http://freesource.info ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Comm] Автораспознавание кодировки? 2004-11-12 16:20 ` Денис Смирнов @ 2004-11-12 22:33 ` Andrey Orlov 2004-11-13 15:12 ` Денис Смирнов 0 siblings, 1 reply; 19+ messages in thread From: Andrey Orlov @ 2004-11-12 22:33 UTC (permalink / raw) To: community On Friday 12 November 2004 19:20, Денис Смирнов wrote: > subject'ов из одного слова. То есть определять-то я их, конечно, мог. Но > для полной стабильности требовалось использовать статистику по триплетам, > а это уже, извините, даже если не учитывать case (что я и делал) требовало > оперативку мегабайтами, да и чтобы работало совсем-совсем быстро. Странно. На совсем не быстром и не оптимальном питоне это не было столь требовательно к ресурсам, см. ранее упомянутый RequestDecoder. -- WthBstRgrds -- Андрей Орлов -- --- http: www.neural.ru, mail: cray@neural.ru, jid: cray@altlinux.org --- ---------------------------------------- ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Comm] Автораспознавание кодировки? 2004-11-12 22:33 ` Andrey Orlov @ 2004-11-13 15:12 ` Денис Смирнов 2004-11-15 10:01 ` Anton V. Boyarshinov 0 siblings, 2 replies; 19+ messages in thread From: Денис Смирнов @ 2004-11-13 15:12 UTC (permalink / raw) To: community On Sat, Nov 13, 2004 at 01:33:48AM +0300, Andrey Orlov wrote: >> subject'ов из одного слова. То есть определять-то я их, конечно, мог. Но >> для полной стабильности требовалось использовать статистику по триплетам, >> а это уже, извините, даже если не учитывать case (что я и делал) требовало >> оперативку мегабайтами, да и чтобы работало совсем-совсем быстро. AO> Странно. На совсем не быстром и не оптимальном питоне это не было столь требовательно к ресурсам, AO> см. ранее упомянутый RequestDecoder. Гхм. Он хранит полную статистику для всех триплетов? При использовании пар всё понятно, простейший тупой код на C, написаный мной за два дня, меня на 386-й не напрягал, хотя обрабатывал всю почту при просмотре (Preview хук в FleetStreet/2 был). А вот с триплетами мне тогда памяти жалко было. -- С уважением, Денис http://freesource.info ^ permalink raw reply [flat|nested] 19+ messages in thread
[parent not found: <200411132340.04703.cray@neural.ru>]
* Re: [Comm] Автораспознавание кодировки? @ 2004-11-13 21:04 ` Денис Смирнов 2004-11-13 23:35 ` Andrey Orlov 0 siblings, 1 reply; 19+ messages in thread From: Денис Смирнов @ 2004-11-13 21:04 UTC (permalink / raw) To: community On Sat, Nov 13, 2004 at 11:40:04PM +0300, Andrey Orlov wrote: AO> Зачем хранить для всех? Достаточно хранить только для тех, которые значимы для задачи AO> выбора - а это существенно меньше, в том-то и пафос. Дык я совсем-совсем тупым алгоритмом это делал -- считал статистику, а потом перемножал её на эталонную статистику для разных кодировок. Считал суммы и делал выводы :) А алгоритма для поиска более важных для принятия решения данных я не знаю. AO> Можно даже до тетрад дойти - правда, AO> в этом случае уже более правильно будет набирать статистику слогов: это языковой "кирпичик" AO> близкого размера и с не очень большим разнообразием, кажется что-то порядка ~5000 (для русского языка), AO> впрочем, точно не помню Ну это уж гораздо сложнее логика получается. -- С уважением, Денис http://freesource.info ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Comm] Автораспознавание кодировки? 2004-11-13 21:04 ` Денис Смирнов @ 2004-11-13 23:35 ` Andrey Orlov 0 siblings, 0 replies; 19+ messages in thread From: Andrey Orlov @ 2004-11-13 23:35 UTC (permalink / raw) To: community On Sunday 14 November 2004 00:04, Денис Смирнов wrote: > AO> Зачем хранить для всех? Достаточно хранить только для тех, которые значимы для задачи > AO> выбора - а это существенно меньше, в том-то и пафос. > > Дык я совсем-совсем тупым алгоритмом это делал -- считал статистику, а > потом перемножал её на эталонную статистику для разных кодировок. Считал > суммы и делал выводы :) > > А алгоритма для поиска более важных для принятия решения данных я не знаю. Значимых. Не важных. Не вдаваясь в математические подробности, просто укажу один упрощенный практически допустимый случай - оценка значимости по выборочной вероятности. Т.е. если вы просто выкините все триграммы, вероятность появления которых близка к нулю - вы очень сильно сократите таблицу. Я обращаю внимание, что это упрощенная оценка (не строгая), применимая, однако, в данном частном случае. Более качественные, в общем случае, результаты дает т.н. "Inverse Documents Frequency" (IDF, см. google), а более математически строгими являеются оценки на основе теоремы Байеса (см. там же). Хотя, разумеется, во всех трех случаях вывод начинается примерно из одного и того же места, просто делаются более или менее строгие / общие допущения. Если хочется совсем "кашмарной теории", то можете обратить внимание на LSA / LSI (см. там же) или Кохоненовский "bluring" (ищите по слову WEBSOM). Хотя, конечно, LSA & WEBSOM для определения кодировки - это уже overkill ;) > Ну это уж гораздо сложнее логика получается. Логика абсолютно та же самая, выбор наиболее близкой (в среднеквадратичном смысле) теоретической гистограммы признаков генеральной совокупности к выборочной гистограмме признаков. Просто множество признаков другое. Если алгоритм удачно факторизован, то имеет место семейство алгоритмов, различающихся лишь словарем признаков. -- WthBstRgrds -- Андрей Орлов -- --- http: www.neural.ru, mail: cray@neural.ru, jid: cray@altlinux.org --- ---------------------------------------- ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Comm] Автораспознавание кодировки? 2004-11-13 15:12 ` Денис Смирнов @ 2004-11-15 10:01 ` Anton V. Boyarshinov 2004-11-16 18:02 ` Денис Смирнов 1 sibling, 1 reply; 19+ messages in thread From: Anton V. Boyarshinov @ 2004-11-15 10:01 UTC (permalink / raw) To: community > Гхм. Он хранит полную статистику для всех триплетов? А зачем всех-то? Надо только наиболее распространённые. Антон -- mailto:boyarsh@mail.ru mailto:boyarsh@ru.echo.fr 13:00:00 up 107 days, 12:31, 9 users, load average: 0.05, 0.05, 0.04 ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Comm] Автораспознавание кодировки? 2004-11-15 10:01 ` Anton V. Boyarshinov @ 2004-11-16 18:02 ` Денис Смирнов 2004-11-16 19:53 ` Andrey Orlov 0 siblings, 1 reply; 19+ messages in thread From: Денис Смирнов @ 2004-11-16 18:02 UTC (permalink / raw) To: community On Mon, Nov 15, 2004 at 01:01:03PM +0300, Anton V. Boyarshinov wrote: >> Гхм. Он хранит полную статистику для всех триплетов? AVB> А зачем всех-то? Надо только наиболее распространённые. До этого я сам недодумался. Есть правда одна фишка -- а если попалось короткое слово из не наиболее распространённых триграмм? Может и не повезти. На длинных последовательностях и пар символов обычно выше крыши. -- С уважением, Денис http://freesource.info ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Comm] Автораспознавание кодировки? 2004-11-16 18:02 ` Денис Смирнов @ 2004-11-16 19:53 ` Andrey Orlov 2004-11-16 20:15 ` Денис Смирнов 0 siblings, 1 reply; 19+ messages in thread From: Andrey Orlov @ 2004-11-16 19:53 UTC (permalink / raw) To: Денис Смирнов, community On Tuesday 16 November 2004 21:02, Денис Смирнов wrote: > AVB> А зачем всех-то? Надо только наиболее распространённые. > До этого я сам недодумался. > Есть правда одна фишка -- а если попалось короткое слово из не наиболее > распространённых триграмм? Может и не повезти. Вопрос только о вероятности такого невезенья ;), сделать покрытие на 99.9 не так сложно. Собственно, структура языка такова, что буквенно-слоговое кодирование - это гарантированное покрытие на 100%. А слогов не так уж много. -- WthBstRgrds -- Андрей Орлов -- --- http: www.neural.ru, mail: cray@neural.ru, jid: cray@altlinux.org --- ---------------------------------------- ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Comm] Автораспознавание кодировки? 2004-11-16 19:53 ` Andrey Orlov @ 2004-11-16 20:15 ` Денис Смирнов 2004-11-16 21:34 ` Andrey Orlov 0 siblings, 1 reply; 19+ messages in thread From: Денис Смирнов @ 2004-11-16 20:15 UTC (permalink / raw) To: community On Tue, Nov 16, 2004 at 10:53:36PM +0300, Andrey Orlov wrote: AO> Вопрос только о вероятности такого невезенья ;), сделать покрытие на 99.9 не так сложно. Собственно, AO> структура языка такова, что буквенно-слоговое кодирование - это гарантированное покрытие на 100%. AO> А слогов не так уж много. Дык точно больше 99.9 у меня уже была парами символов :) Со слогами это мысль. -- С уважением, Денис http://freesource.info ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Comm] Автораспознавание кодировки? 2004-11-16 20:15 ` Денис Смирнов @ 2004-11-16 21:34 ` Andrey Orlov 2004-11-17 18:45 ` dm 0 siblings, 1 reply; 19+ messages in thread From: Andrey Orlov @ 2004-11-16 21:34 UTC (permalink / raw) To: Денис Смирнов, community On Tuesday 16 November 2004 23:15, Денис Смирнов wrote: > On Tue, Nov 16, 2004 at 10:53:36PM +0300, Andrey Orlov wrote: > > AO> Вопрос только о вероятности такого невезенья ;), сделать покрытие на 99.9 не так сложно. Собственно, > AO> структура языка такова, что буквенно-слоговое кодирование - это гарантированное покрытие на 100%. > AO> А слогов не так уж много. > > Дык точно больше 99.9 у меня уже была парами символов :) Тогда включите их в выборку признаков? Увеличте вес? > Со слогами это мысль. Еще какая ;). Найдете удачное решение составления словаря слогов - обязательно дайте посмотреть, очень интересно ;) -- WthBstRgrds -- Андрей Орлов -- --- http: www.neural.ru, mail: cray@neural.ru, jid: cray@altlinux.org --- ---------------------------------------- ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Comm] Автораспознавание кодировки? 2004-11-16 21:34 ` Andrey Orlov @ 2004-11-17 18:45 ` dm 2004-11-18 0:08 ` Andrey Orlov 0 siblings, 1 reply; 19+ messages in thread From: dm @ 2004-11-17 18:45 UTC (permalink / raw) To: community Здравствуйте, Andrey Orlov! Среда 17 Ноябрь 2004 00:34, Вы писали: > > Со слогами это мысль. > > Еще какая ;). Найдете удачное решение составления словаря слогов - > обязательно дайте посмотреть, очень интересно ;) Найдите книжку по "кубикам Зайцева" --- это такое пособие для обучения детей чтению. Там язык делится не по слогам, а по _складам_, каковые и изображаются на кубиках. Алгоритм выделения складов в слове намного проще, а результат должен получиться такой же. -- ------------------------------------- dm <dead-md at yandex point ru> ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Comm] Автораспознавание кодировки? 2004-11-17 18:45 ` dm @ 2004-11-18 0:08 ` Andrey Orlov 0 siblings, 0 replies; 19+ messages in thread From: Andrey Orlov @ 2004-11-18 0:08 UTC (permalink / raw) To: community On Wednesday 17 November 2004 21:45, dm wrote: > Найдите книжку по "кубикам Зайцева" --- это такое пособие для обучения > детей чтению. Там язык делится не по слогам, а по _складам_, каковые и > изображаются на кубиках. Алгоритм выделения складов в слове намного > проще, а результат должен получиться такой же. Я пробежался глазами по гуглу, кажется это все-таки не то. Слишком эвристично, а самое неприятное - оптимизировано все-таки под решение другой задачи: нет гарантии что такая разбивка будет "наилучшей". Тем не менее, спасибо - добавил к себе в коллекцию. -- WthBstRgrds -- Андрей Орлов -- --- http: www.neural.ru, mail: cray@neural.ru, jid: cray@altlinux.org --- ---------------------------------------- ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Comm] Автораспознавание кодировки? 2004-11-08 20:22 [Comm] Автораспознавание кодировки? Mikhail Ramendik 2004-11-08 20:30 ` Alexey Rusakov 2004-11-09 20:04 ` Денис Смирнов @ 2004-11-12 22:30 ` Andrey Orlov 2004-11-13 15:16 ` Денис Смирнов 2 siblings, 1 reply; 19+ messages in thread From: Andrey Orlov @ 2004-11-12 22:30 UTC (permalink / raw) To: community On Monday 08 November 2004 23:22, Mikhail Ramendik wrote: > Хотелось бы завести скрипт, который по статистике распознаёт кодировку > русского письма, а затем ставит ему правильный charset в header. Посмотрите пакет RequestDecoder, это питоновский продукт к Zope который по статистике перекодировал текст в запросах в правильную кодировку. Основан на анализе ~триграмм. Как показала практика - если текст больше десяти симворлов, он не ошибается. Даже в случае двойной неверной перекодировки. Использовался одно время на реальном сервере. Пусть слово Zope вас не пугает, сам декодер полностью отчуждаем и там даже одельная тулза с командной строкой есть. -- WthBstRgrds -- Андрей Орлов -- --- http: www.neural.ru, mail: cray@neural.ru, jid: cray@altlinux.org --- ---------------------------------------- ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Comm] Автораспознавание кодировки? 2004-11-12 22:30 ` Andrey Orlov @ 2004-11-13 15:16 ` Денис Смирнов 0 siblings, 0 replies; 19+ messages in thread From: Денис Смирнов @ 2004-11-13 15:16 UTC (permalink / raw) To: community On Sat, Nov 13, 2004 at 01:30:56AM +0300, Andrey Orlov wrote: AO> Посмотрите пакет RequestDecoder, это питоновский продукт к Zope который по статистике перекодировал текст в запросах AO> в правильную кодировку. Основан на анализе ~триграмм. Как показала практика - если текст больше десяти симворлов, AO> он не ошибается. Даже в случае двойной неверной перекодировки. Использовался одно время на реальном сервере. AO> Пусть слово Zope вас не пугает, сам декодер полностью отчуждаем и там даже одельная тулза с командной строкой есть. О! Спасибо большое, обязательно посмотрю. Хотя 10 мало :) Без двойных перекодировки у меня и по парам символов нормально обрабатывал. Кстати я понял, почему на пайтоне он не жручий к памяти получился. В C для этого, если не морочить себе голову, я просто использовал массивы. Которые получались очень разряжёными массивами. А потом по такому массиву ещё и fullscan делать приходилось, со всеми соответствующими последствиями. А на реальном тексте это нафиг не надо. -- С уважением, Денис http://freesource.info ^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2004-11-18 0:08 UTC | newest] Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2004-11-08 20:22 [Comm] Автораспознавание кодировки? Mikhail Ramendik 2004-11-08 20:30 ` Alexey Rusakov 2004-11-08 23:46 ` Mikhail Ramendik 2004-11-09 20:04 ` Денис Смирнов 2004-11-12 5:34 ` Alexey V. Novikov 2004-11-12 16:20 ` Денис Смирнов 2004-11-12 22:33 ` Andrey Orlov 2004-11-13 15:12 ` Денис Смирнов 2004-11-13 21:04 ` Денис Смирнов 2004-11-13 23:35 ` Andrey Orlov 2004-11-15 10:01 ` Anton V. Boyarshinov 2004-11-16 18:02 ` Денис Смирнов 2004-11-16 19:53 ` Andrey Orlov 2004-11-16 20:15 ` Денис Смирнов 2004-11-16 21:34 ` Andrey Orlov 2004-11-17 18:45 ` dm 2004-11-18 0:08 ` Andrey Orlov 2004-11-12 22:30 ` Andrey Orlov 2004-11-13 15:16 ` Денис Смирнов
ALT Linux Community general discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 community community/ http://lore.altlinux.org/community \ mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com public-inbox-index community Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.community AGPL code for this site: git clone https://public-inbox.org/public-inbox.git