Python + транслитерация строк
От: Mamut Швеция http://dmitriid.com
Дата: 16.04.09 14:17
Оценка:
Как всегда, хочется странного

Нужно мочь перевсти «Привет, меня зовут Мамут» в «privet_menya_zovut_mamut» (в идеале, как в ICU, но PyICU такого пока не предоставляет )

Если нет легких путей, то, может, есть сложные? Интересует транслиетрация не только с русского
avalon 1.0b rev 146


dmitriid.comGitHubLinkedIn
Боюсь
От: Mamut Швеция http://dmitriid.com
Дата: 16.04.09 18:50
Оценка:
M> Как всегда, хочется странного

Боюсь, единственный быстрый способ — это использовать Jython и вызывать ICU из Явы
avalon 1.0b rev 146


dmitriid.comGitHubLinkedIn
Re: Боюсь
От: antiPooH  
Дата: 17.04.09 03:27
Оценка: 1 (1)
Здравствуйте, Mamut, Вы писали:

M>> Как всегда, хочется странного


M>Боюсь, единственный быстрый способ — это использовать Jython и вызывать ICU из Явы

Для русского есть в pytils, впрочем это настолько просто делается что лень только таблицы забивать
Re[2]: Боюсь
От: Mamut Швеция http://dmitriid.com
Дата: 20.04.09 13:48
Оценка:
PH> M>Боюсь, единственный быстрый способ — это использовать Jython и вызывать ICU из Явы
PH> Для русского есть в pytils, впрочем это настолько просто делается что лень только таблицы забивать

Ну как сказать просто http://userguide.icu-project.org/transforms/general
avalon 1.0b rev 146


dmitriid.comGitHubLinkedIn
Re: Python + транслитерация строк
От: ettcat США  
Дата: 25.06.09 15:11
Оценка: 18 (1)
Здравствуйте, Mamut, Вы писали:

M>Как всегда, хочется странного


M>Нужно мочь перевсти «Привет, меня зовут Мамут» в «privet_menya_zovut_mamut» (в идеале, как в ICU, но PyICU такого пока не предоставляет )


M>Если нет легких путей, то, может, есть сложные? Интересует транслиетрация не только с русского


Если интересно — решал задачу от HFlabs насчет транслитерации. Как раз на питоне На входе дается словарь <русское_слово>-<трaнслит>. Нужно вывести правила транслитерации автоматом. Ну и в довесок транслитератор по заданным правилам построить. У меня точность получилась 99.8% где-то. По 10К слов правила строятся примерно за 20s,сама транслитерация менее чем за секунду, т.к. там конечный автомат.
В общем, если интересно — обращайся. Может что путнее можно из этого сделать.

Конечно, с транслитом китайский-русский он не справится. А вот французский-русский интересно было бы попробовать

PS Хотя HFLabs решением не заинтересовались.
Re[2]: Python + транслитерация строк
От: Mamut Швеция http://dmitriid.com
Дата: 25.06.09 15:20
Оценка:
Здравствуйте, ettcat, Вы писали:

e> M>Как всегда, хочется странного


e> M>Если нет легких путей, то, может, есть сложные? Интересует транслиетрация не только с русского


e> Если интересно — решал задачу от HFlabs насчет транслитерации. Как раз на питоне На входе дается словарь <русское_слово>-<трaнслит>. Нужно вывести правила транслитерации автоматом. Ну и в довесок транслитератор по заданным правилам построить. У меня точность получилась 99.8% где-то. По 10К слов правила строятся примерно за 20s,сама транслитерация менее чем за секунду, т.к. там конечный автомат.

e> В общем, если интересно — обращайся. Может что путнее можно из этого сделать.

e> Конечно, с транслитом китайский-русский он не справится. А вот французский-русский интересно было бы попробовать


e> PS Хотя HFLabs решением не заинтересовались.


Я помимо прочего буквально вчер анаткнулся вот на это: http://www.tablix.org/~avian/blog/archives/2009/01/unicode_transliteration_in_python/

Самое обидное, что пока не нужно
avalon 1.0rc1 rev 239, zlib 1.2.3


dmitriid.comGitHubLinkedIn
Re[3]: Боюсь
От: HiSH Россия http://m0riarty.ya.ru
Дата: 29.06.09 07:12
Оценка: 21 (2)
Здравствуйте, Mamut, Вы писали:

PH>> M>Боюсь, единственный быстрый способ — это использовать Jython и вызывать ICU из Явы

PH>> Для русского есть в pytils, впрочем это настолько просто делается что лень только таблицы забивать

M>Ну как сказать просто http://userguide.icu-project.org/transforms/general


Для русского можно поступить совсем просто

In [15]: s = u'Привет, меня зовут Мамут'

In [16]: "".join([chr(ord(x) % 128) for x in s.encode('koi8-r')]).replace(" ", "_").lower()
Out[16]: 'priwet,_menq_zowut_mamut'
Re[4]: Боюсь
От: quodum  
Дата: 29.06.09 10:07
Оценка:
Здравствуйте, HiSH, Вы писали:

HSH>
HSH>In [15]: s = u'Привет, меня зовут Мамут'

HSH>In [16]: "".join([chr(ord(x) % 128) for x in s.encode('koi8-r')]).replace(" ", "_").lower()
HSH>Out[16]: 'priwet,_menq_zowut_mamut'
HSH>


Прикольно!

Правда, не всегда читаемо:
In : u"рекламный щит: подъём на вышку ценою всего в одну шишку"
Out:  "reklamnyj_]it:_pod_#m_na_wy[ku_ceno@_wsego_w_odnu_[i[ku"
Re[5]: Боюсь
От: quodum  
Дата: 29.06.09 10:09
Оценка: :)
Здравствуйте, quodum, Вы писали:

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


Q>Правда, не всегда читаемо:


Ещё есть замечательное слово ']#lo^x'
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.