| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Системное программирование > транслит латиница в русский |
| Автор: burakov 30.11.2009, 11:57 |
| Добрый день, задумал написать программку транслитерации, которая бы переводила текст набранный латиницей в русский. готовые варианты типа translit.ru меня не устроили (ну во первых потому, что данная программка будет модулем более большой моей программки, а во вторых не устраивает качество перевода из латиницы в русский). Смысл в следующем есть имена файлов (mp3 композиции), которые набраны латиницей - их нужно перевести в русский , но стандарт латиницы не соблюдается (так практически не используется знак апострофа для обозначения твердого и мягкого знаков - ну и наверное много всяких других неточностей) поэтому приходится создавать свои правила перевода из латиницы в русский , но и эти собственные правила не всегда приводят к желаемому результату, и поэтому есть задумка сравнения фрагментов имени файла (слов) с каким нибудь словарем ... ВОПРОС как подключить словарь (есть ли модули словарные какие то? или где вообще набор слов этих взять в текстовом виде, чтобы можно было хотя бы из текстового файла прочитать их и по сравнивать с имеющимся именем файла и его фрагментами) посоветуйте ??? с какого бока тут подойти, с чего начать??? Спасибо. |
| Автор: ginnie 30.11.2009, 13:41 |
| burakov, можно посмотреть в сторону Text::Aspell. Найти русский словарь для aspell труда не составит. |
| Автор: DEER 30.11.2009, 15:19 |
| Lingua::RU::PhTranslit Lingua::Translit вобще модулей всяких вроде много... |
| Автор: burakov 2.12.2009, 12:10 | ||
| Добрый день, что то понял, что то нет, но решил идти по следующему пути. Скачал словарь словоформ сгенерированный из словаря ispell - размер 10Мбт. и дальше пытаюсь изобрести каким образом привести "неверные" с точки зрения меня и словаря переводы из транслита в русские ... делаю следующее...
но таким образом я нашел те фрагменты слова которые в словаре есть (собственно раз нашел те которые есть, значит теоретически нашел и те фрагменты имени файла, которых в словаре нет - пока в коде этого не отражено дальше тупик... идея такая, нужно еще раз по словарю "те фрагменты, которых нет" и найти в словаре похожие слова (причем хорошо бы задать степень похожести - т.е. различие в один, два, три символа и т.д. Т.е. определить заранее глубину поиска ПОНИМАЮ, что загрузил всех тут своими мыслями ВЫШЕ КРЫШИ, но вопрос - я вообще в том направлении думаю или изобретаю велосипед? кроме того, такой вот метод перебора (когда словарь 10Мбт) работает ОЧЕНЬ ДОЛГО. на одно имя файла в том примере что привел я (а это просто печать найденных в словаре фрагментов имени файла - собственно маленькая часть задачи) уходит эдак секунд по 30. А если файлов 2000 штук ??!! на ночь что ли комп оставлять??? Спасибо. |
| Автор: ginnie 2.12.2009, 12:36 | ||
burakov, почему Вы не хотите использовать готовые решения? В Text::Aspell уже все сделано для Вас:
suggest() возвращает варианты в порядке убывания похожести. Если очень хочется делать свой вариант, то похожесть слов можно оценивать по расстоянию левенштейна. |
| Автор: burakov 2.12.2009, 13:52 |
| Дело в том, что я не смог найти 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 2.12.2009, 14:04 |
| burakov, по поводу установки Text::Aspell под Windows смотрите в http://cpansearch.perl.org/src/HANK/Text-Aspell-0.09/README специальный подраздел. Я сам этого не делал, поэтому практических советов по установке дать не могу. |
| Автор: mercenariess 8.9.2012, 23:51 |
| Здравствузте уважаемые пользователи форума. У меня к вам есть вопрос. Сначало расскажу о своей проблеме. Я живу в Германии и у меня клавиатура немецкая и к ней я уже привык, но хотелось бы писать на моей клавиатуре по-русски. Т.е. чтобы текст при печатании в каком-либо документе или на сайте преобразовывался автоматически сразу в русский. На пример я если буду писать в чате например: Privet, kak dela? , текст печатался бы сразу же так: Привет, как дела? А то я устал транслировать текст на сайте www.translit.ru, а потом все копировать и вводить в то место, где я общаюсь.Заранее всем спасибо! |