Автор Тема: конвертиране шльокавица -> нещо разбираемо  (Прочетена 16637 пъти)

vstoykov

  • Напреднали
  • *****
  • Публикации: 1286
  • Distribution: Ubuntu
  • Window Manager: Fluxbox
    • Профил
    • WWW
Не е достатъчно да се направи съответствие на латинските букви с кирилски.

Пример:
Towa e primeren tekst na 6lyokavitsa.
qbalka, yabalka
Yordan Yordanov.
English text

За да се преведе качествено горния пример трябва да има дефинирани следните съответствия:

lyo - льо
yo - йо
ya, q - я
ts, c - ц

Идея: да се ползва програма за проверка на правописа за да се отсяват английските думи  (тях не искаме да ги конвертираме на кирилица).
Измислянето на алгоритъм за корекция на грешки преди конвертирането също ще е от полза. След конвертирането пак може да се коригират грешки - алгоритъм за тази цел се измисля по-лесно (може да се ползва aspell).
Даже може и да се създаде речник с най-често ползваните думи на шльокавица с техните аналози от българския език.

Всички програми за конвертиране на латиница към кирилица, които съм видял до момента не са достатъчно интелигентни.

Сетих се: вече имаме речник с много думи от българския език - може лесно да се напише скрипт, който да ги конвертира във всичките им варианти на шльокавица - по този начин ще бъде създаден речник със съответствията на думите на шльокавица с думите на кирилица, който ще се ползва при превеждането на шльокавицата.
Активен

sebastianz55

  • Напреднали
  • *****
  • Публикации: 1136
    • Профил
    • WWW
Извинявай, но не успях да разбера какво ти е предложението.
И защо ни трябва да конвертираме кирлицата в шлокавица?
Активен

С уважения:
Sebastianz55
------------------
http://www.fsa-bg.org
                              
Open Fest Initiative  http://openfest.org
                                              
Моля ви, уважавайте процесорното време на другите - пишете на кирилица и използвайте търсачката на форума!

vstoykov

  • Напреднали
  • *****
  • Публикации: 1286
  • Distribution: Ubuntu
  • Window Manager: Fluxbox
    • Профил
    • WWW
Цитат (sebastianz55 @ Март 20 2005,01:11)
Извинявай, но не успях да разбера какво ти е предложението.
И защо ни трябва да конвертираме кирлицата в шлокавица?

Целта ми е обратната - да се конвертира шльокавица в кирилица  '<img'>

Обаче проблема е, че конвертирането на думите от шльокавица към кирилица е много трудна задача - многократно по-трудна в сравнение  конвертирането от кирилица към шльокавица. Затова правим следното:

Взимаме речника с българските думи и конвертираме всяка дума по всички възможни "правила" на щльокавицата с цел да получим подобен речник:

publikaciq -> публикация
publikaciya -> публикация
konvertirane -> конвертиране
konwertirane -> конвертиране
dalvina -> дължина
dyljina -> дължина
dalzhina -> дължина

После може да се напише скрипт, който отделя думите от даден текст на шльокавица и ги замества една по една използвайки този речник.

Този скрипт ще работи ужасно бавно. Ако някой е запознат по-добре с българския език, моля да  предложи по-ефективен начин за конвертиране на шльокавица към кирилица.
Активен

tzappa

  • Напреднали
  • *****
  • Публикации: 34
    • Профил
    • WWW
Правил съм такова нещо, но се оказа, че има много изключения. Сещам се за едно момиче, което се казва Майа, а не Мая, ама я = ya; y = й; a = a...
и както казах - има много такива.

Иначе ти желая успех!
Активен

http://3na100.com - сподели колата си

vstoykov

  • Напреднали
  • *****
  • Публикации: 1286
  • Distribution: Ubuntu
  • Window Manager: Fluxbox
    • Профил
    • WWW
Не мога да се справя със задачата да напиша скрипт, който от даннитев пакета bgoffice-4.0.tar.gz да създава списък с всички думи във всичките им форми  '<img'>
Активен

sebastianz55

  • Напреднали
  • *****
  • Публикации: 1136
    • Профил
    • WWW
Да ти призная смятам, че тази идея няма хляб в нея поради:
1. Културните българи пишат на кирилица.
2. Има кирилизатори за тези, които нямат поддържка на кирилица на компютрите си
3. Всички съвременни софтуери като чатове, инстант месенджъри и т.т има чудесна поддръжка на кирилица.
4. Това върши достатъчно добра работа - http://momche.net/res/translate/

Не виждам смисъла от преводач, който превежда от едни език на същия език, заради мързела _най-често_ на дадени хора.
Активен

С уважения:
Sebastianz55
------------------
http://www.fsa-bg.org
                              
Open Fest Initiative  http://openfest.org
                                              
Моля ви, уважавайте процесорното време на другите - пишете на кирилица и използвайте търсачката на форума!

vstoykov

  • Напреднали
  • *****
  • Публикации: 1286
  • Distribution: Ubuntu
  • Window Manager: Fluxbox
    • Профил
    • WWW
Цитат (sebastianz55 @ Март 20 2005,22:30)
Да ти призная смятам, че тази идея няма хляб в нея поради:
1. Културните българи пишат на кирилица.
2. Има кирилизатори за тези, които нямат поддържка на кирилица на компютрите си
3. Всички съвременни софтуери като чатове, инстант месенджъри и т.т има чудесна поддръжка на кирилица.
4. Това върши достатъчно добра работа - http://momche.net/res/translate/

Не виждам смисъла от преводач, който превежда от едни език на същия език, заради мързела _най-често_ на дадени хора.

Въпреки, че няма технически проблеми да се пише на кирилица, съществуват много текстове на шльокавица и една нищожна част от тях може да ми се прииска да прочета. Тогава би било добре да имам програма, която да го конвертира в приемлив за четене формат.

Конвертора, който посочваш конвертира от кирилица на шльокавица - това е лесно. До момента не съм видял достатъчно интелигентна програма, която да конвертира от шльокавица на кирилица.
Активен

sebastianz55

  • Напреднали
  • *****
  • Публикации: 1136
    • Профил
    • WWW
Да беше започнал значи с целта на идеята си - превод на съществуващи документи на шльокавица.

Обаче това е нож с две остриета:
- от една страна - ще се преведа документите - това добре.
- от друга - ще се окуражи създаването на още документи след като вече има такъв преводач => ако се стимулира то  няма да се създаде предпоставка и стимул за писане на кирилица. А не мисля, че това е целта на всички надписи, банери, сайтове и т.н.- по тази тема.
Един вид може да стане - Пишете на шльокавица - може да се преведе, за който пък чак толкоз си иска кирилицата.
Активен

С уважения:
Sebastianz55
------------------
http://www.fsa-bg.org
                              
Open Fest Initiative  http://openfest.org
                                              
Моля ви, уважавайте процесорното време на другите - пишете на кирилица и използвайте търсачката на форума!

vstoykov

  • Напреднали
  • *****
  • Публикации: 1286
  • Distribution: Ubuntu
  • Window Manager: Fluxbox
    • Профил
    • WWW
Цитат (sebastianz55 @ Март 20 2005,23:59)
Да беше започнал значи с целта на идеята си - превод на съществуващи документи на шльокавица.

Обаче това е нож с две остриета:
- от една страна - ще се преведа документите - това добре.
- от друга - ще се окуражи създаването на още документи след като вече има такъв преводач => ако се стимулира то  няма да се създаде предпоставка и стимул за писане на кирилица. А не мисля, че това е целта на всички надписи, банери, сайтове и т.н.- по тази тема.
Един вид може да стане - Пишете на шльокавица - може да се преведе, за който пък чак толкоз си иска кирилицата.

Тогава ще държим преводача в тайна и ще го разпространяваме само сред "наши хора"   '<img'>

Не смятам, че преводачът ще повлияе сериозно на навиците на хората да сменят любимата си азбука. И освен това преводачът няма да е идеален (но ще бъде значително по-добър от преводачите създадени до момента).
Активен

ColdFusion

  • Напреднали
  • *****
  • Публикации: 28
    • Профил
Защо не я конвертираш буква по буква (или комбинации от букви като zh) и после пуснеш програма за откриване на грешки с нормален български речник. Няма да е перфектно, но поне ще отхвърлиш повечето проблеми. Ти се опитваш да направиш обратното, което не ми се вижда много адекватно.

ColdFusion
Активен

vstoykov

  • Напреднали
  • *****
  • Публикации: 1286
  • Distribution: Ubuntu
  • Window Manager: Fluxbox
    • Профил
    • WWW
Цитат (ColdFusion @ Март 21 2005,01:28)
Защо не я конвертираш буква по буква (или комбинации от букви като zh) и после пуснеш програма за откриване на грешки с нормален български речник. Няма да е перфектно, но поне ще отхвърлиш повечето проблеми. Ти се опитваш да направиш обратното, което не ми се вижда много адекватно.

ColdFusion

Проблемът е, че не знам какви точно букви/комбинации от букви се ползват вместо буквите от кирилицата във всеки отделен случай. Как една програма от типа, който предлагаш ще преведе следните думи:

Syrvyr (Сървър)
Sarvar (Сървър)
Gylyb  (Гълъб)
Tamnina (Тъмнина)
Tymnina (Тъмнина)
Syobshtenie (Съобщение)
Saob6tenie (Съобщение)

Ако се генерира речник с думите от всички възможни диалекти на шльокавицата (и този речник се ползва при превода) тези думи ще се преведат правилно.
Активен

ivak

  • Напреднали
  • *****
  • Публикации: 156
    • Профил
За мен лично задачата няма особена ценност като конкретна цел превод от шльокавица на кирилица. Просто отказвам да чета такива текстове и дори Babelfish да започне да ги превежда, пак ще ги игнорирам.

От друга страна, обаче, проблемът е интересен от алгоритмична гледна точка. Генерирането на всеобхватен речник на шльокавицата е causa perduta поради две причини. Първо, това е подход с прилагане на груба сила, лишен е от елегантност и не е оптимален от гледна точка на бързодействието. И второ, опасявам се че подобен речник няма да бъде еднозначен, т.е. транскрибирани по различен начин *различни* думи могат да дадат еднакъв краен резултат.

Като алтернатива бих предложил да се изследват не целите думи, а формата, в която са премахнати всички гласни букви. Ще се възползвам от един от твоите примери: "syrvyr" и "sarvar" - и двете думи се трансформират до една и съща форма, "srvr".

За съжаление проблемът оттук нататък става значително по-сложен. Не може да се ползва прост алгоритъм за сравнение, тъй като потребителите на шльокавица не са най-известни със своя правопис. Тук на помощ може да ни дойде мултивариантният статистически анализ. Ако си представим всяка дума като вектор в n-мерното пространство, където последователните букви задават съответните координати (примерно, като се ползва ascii индексът им), две думи могат да бъдат изследвани за сходство като бъде сравнен ъгълът, сключван от техните вектори.

Друг възможен подход е ползването на невронна мрежа. В този случай обаче ще бъде необходим *сериозен* труд за обучаване на самата мрежа.

Какъвто и подход да се избере, проблемът представлява чисто академичен интерес. От него би излязла чудесна бакалавърска теза по информатика. Но инак просто не си струва да се влагат такива големи усилия, за да се поощрява мързелът на определени личности.
Активен

Cлoжнитe пpoблeми имaт пpocти и лecни зa paзбиpaнe гpeшни oтгoвopи.

ColdFusion

  • Напреднали
  • *****
  • Публикации: 28
    • Профил
Цитат (vstoykov @ Март 21 2005,20:34)
Проблемът е, че не знам какви точно букви/комбинации от букви се ползват вместо буквите от кирилицата във всеки отделен случай. Как една програма от типа, който предлагаш ще преведе следните думи:

Syrvyr (Сървър)
Sarvar (Сървър)
Gylyb  (Гълъб)
Tamnina (Тъмнина)
Tymnina (Тъмнина)
Syobshtenie (Съобщение)
Saob6tenie (Съобщение)

Ако се генерира речник с думите от всички възможни диалекти на шльокавицата (и този речник се ползва при превода) тези думи ще се преведат правилно.

Не е нужно да е перфектен превода на етапа на самото конвертиране:
Syrvyr (Сървър) - Сървър
Sarvar (Сървър) - Сарвар
Gylyb  (Гълъб) - Гълъб
Tamnina (Тъмнина) - Тамнина
Tymnina (Тъмнина) - Тъмнина
Syobshtenie (Съобщение) - Съобщение
Saob6tenie (Съобщение) - Саобштение

Думете в черно съвсем лесно ще бъдат открити от програмата за корегиране на грешки с българският речник.
Аз ти предложих след като бъдат конвертирани от шльокавицата да се корегират за евентуалните грешки.

ColdFusion
Активен

CaBA

  • Напреднали
  • *****
  • Публикации: 303
    • Профил
    • WWW
Проблемът е изключително интересен от алгоритмична гледна точка, въпреки изказаните съмнения дали е практично да се решава. Предлаганият от ivak алгоритъм за сравнение на близост обаче не е най-подходящият в случая - по уместно ми се струва разстоянието по Левенщайн ( Levenshtein Distance - http://www.merriampark.com/ld.htm ).

Вместо да се генерира речник с всички възможни диалекти на шльокавицата, по-добро решение ми се струва построяването на формална граматика и реализирането й като автомат на Марков (това е автомат, в който преходите са вероятностни). Решаването на задачата е чудесно и за магистърска защита, така че ако тук има бъдещ магистър по информатика/компютърна лингвистика, да запретва ръкави :)
Активен

10 години ябълкова диета стигат, стигат!

ivak

  • Напреднали
  • *****
  • Публикации: 156
    • Профил
Цитат (CaBA @ Март 22 2005,17:16)
...по уместно ми се струва разстоянието по Левенщайн...

Много омаен алгоритъм; досега не бях чувал за него. Изглежда напълно подходящ за целта.
Активен

Cлoжнитe пpoблeми имaт пpocти и лecни зa paзбиpaнe гpeшни oтгoвopи.