|
Модераторы: ginnie, korob2001 |
|
burakov |
|
|||
Опытный Профиль Группа: Участник Сообщений: 554 Регистрация: 28.7.2006 Репутация: нет Всего: нет |
Добрый день, задумал
написать программку транслитерации, которая бы переводила текст набранный латиницей в русский. готовые варианты типа translit.ru меня не устроили (ну во первых потому, что данная программка будет модулем более большой моей программки, а во вторых не устраивает качество перевода из латиницы в русский). Смысл в следующем есть имена файлов (mp3 композиции), которые набраны латиницей - их нужно перевести в русский , но стандарт латиницы не соблюдается (так практически не используется знак апострофа для обозначения твердого и мягкого знаков - ну и наверное много всяких других неточностей) поэтому приходится создавать свои правила перевода из латиницы в русский , но и эти собственные правила не всегда приводят к желаемому результату, и поэтому есть задумка сравнения фрагментов имени файла (слов) с каким нибудь словарем ... ВОПРОС как подключить словарь (есть ли модули словарные какие то? или где вообще набор слов этих взять в текстовом виде, чтобы можно было хотя бы из текстового файла прочитать их и по сравнивать с имеющимся именем файла и его фрагментами) посоветуйте ??? с какого бока тут подойти, с чего начать??? Спасибо. |
|||
|
||||
ginnie |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 6 Всего: 49 |
burakov, можно посмотреть в сторону Text::Aspell. Найти русский словарь для aspell труда не составит.
-------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
DEER |
|
|||
Опытный Профиль Группа: Участник Сообщений: 749 Регистрация: 12.4.2005 Где: г. Рязань Репутация: нет Всего: 13 |
Lingua::RU::PhTranslit
Lingua::Translit вобще модулей всяких вроде много... -------------------- |
|||
|
||||
burakov |
|
|||
Опытный Профиль Группа: Участник Сообщений: 554 Регистрация: 28.7.2006 Репутация: нет Всего: нет |
Добрый день,
что то понял, что то нет, но решил идти по следующему пути. Скачал словарь словоформ сгенерированный из словаря ispell - размер 10Мбт. и дальше пытаюсь изобрести каким образом привести "неверные" с точки зрения меня и словаря переводы из транслита в русские ... делаю следующее...
но таким образом я нашел те фрагменты слова которые в словаре есть (собственно раз нашел те которые есть, значит теоретически нашел и те фрагменты имени файла, которых в словаре нет - пока в коде этого не отражено ). дальше тупик... идея такая, нужно еще раз по словарю "те фрагменты, которых нет" и найти в словаре похожие слова (причем хорошо бы задать степень похожести - т.е. различие в один, два, три символа и т.д. Т.е. определить заранее глубину поиска ПОНИМАЮ, что загрузил всех тут своими мыслями ВЫШЕ КРЫШИ, но вопрос - я вообще в том направлении думаю или изобретаю велосипед? кроме того, такой вот метод перебора (когда словарь 10Мбт) работает ОЧЕНЬ ДОЛГО. на одно имя файла в том примере что привел я (а это просто печать найденных в словаре фрагментов имени файла - собственно маленькая часть задачи) уходит эдак секунд по 30. А если файлов 2000 штук ??!! на ночь что ли комп оставлять??? Спасибо. |
|||
|
||||
ginnie |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 6 Всего: 49 |
burakov, почему Вы не хотите использовать готовые решения? В Text::Aspell уже все сделано для Вас:
suggest() возвращает варианты в порядке убывания похожести. Если очень хочется делать свой вариант, то похожесть слов можно оценивать по расстоянию левенштейна. -------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
burakov |
|
|||
Опытный Профиль Группа: Участник Сообщений: 554 Регистрация: 28.7.2006 Репутация: нет Всего: нет |
Дело в том, что я не смог найти Text::Aspell для Windows
ну то есть, чтобы все это дело в ppd находилось ну и кроме того непонятно (по аналогии c Lingua-Ispell-0.07 кроме Text::Aspell еще чего то нужно устанавливать?) Lingua::Ispell.pm - a module encapsulating access to the Ispell program. ginnie, не могли бы Вы подробнее объяснить чего откуда качать и как подключать... у меня сейчас в наличии есть словарь от ispell (файлы lang.aff, lang.dict) Будет ли он работать под Text::Aspell? и есть ли версия Text::Aspell под windows? Конечно хотелось бы воспользоваться готовым решением (тем более что про расстояние левенштейна я ничегошеньки не знаю) Спасибо. |
|||
|
||||
ginnie |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 6 Всего: 49 |
burakov, по поводу установки Text::Aspell под Windows смотрите в http://cpansearch.perl.org/src/HANK/Text-Aspell-0.09/README специальный подраздел. Я сам этого не делал, поэтому практических советов по установке дать не могу.
-------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
mercenariess |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 8.9.2012 Репутация: нет Всего: нет |
Здравствузте уважаемые пользователи форума. У меня к вам есть вопрос. Сначало расскажу о своей проблеме. Я живу в Германии и у меня клавиатура немецкая и к ней я уже привык, но хотелось бы писать на моей клавиатуре по-русски. Т.е. чтобы текст при печатании в каком-либо документе или на сайте преобразовывался автоматически сразу в русский. На пример я если буду писать в чате например: Privet, kak dela? , текст печатался бы сразу же так: Привет, как дела? А то я устал транслировать текст на сайте www.translit.ru, а потом все копировать и вводить в то место, где я общаюсь.Заранее всем спасибо!
|
|||
|
||||
Правила форума "Perl: Системное программирование" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Системное программирование | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |