[Dict] БГ Офис модул за проверка на правопис
Sah War
ve4ernik at gmail.com
Fri Apr 10 08:49:17 EEST 2015
@Михаил Балабанов:
Не съм тръгнал да критикувам съществено ползвания от „БГ Офис“ набор от
правила за формообразуване — в повечето случаи върши перфектна работа. Но
като лингвист ще ми позволите да не се съглася, че който и да е човешки
език може да бъде формализиран на 100% от даден алгоритъм — естествените
езици не са с напълно формална граматика (освен ако не са изкуствени езици,
но те по определение не са естествени).
„Правилата в изходната база на bgoffice не са предназначени само за някакви
> най-често използвани парадигми. Базират се на сериозна лингвистична
> публикация и са писани с идеята да обхващат коректно _всички_ случаи на
> формообразуване“
>
Е, явно не обхващат всички случаи, щом IDI е добавил немалко допълнителни
парадигми в IDI Spellchecker. И вероятно има поне още няколко десетки
случая, които още не са добавени и към IDI Spellchecker.
Прекалено оптимистичният поглед към въпроса с формалното описание и с
parse-ването на текст на естествен език, който е характерен за хората с
познания по математика, програмиране, логика и математическа и компютърна
лингвистика, не се споделя от повечето от останалите учени (предимно
лингвисти и психолози), а и от повечето философи. Програмистите като
виждат, че даден език за програмиране си има точно определен синтаксис и
набор от ключови думи, и си мислят, че и естествените езици могат да бъдат
приравнени до нивото на формализация на езиците за програмиране — за
съжаление, това е по-скоро пожелателно мислене. Самите езици за
програмиране за измислени като много осакатени и формализирани подмножества
на логически формализирани особености на естествените езици (и дори това е
прекалено голямо обобщение...).
Плюс това повечето примери за успешни формални алгоритми за синтактичен
анализ и проверка на правописа се основават на английския език, който
поради голямата си обработеност (все пак най-много и от най-дълго време
именно по него има разработки в тази посока) има малко роботско опростена
граматика в голямата си част (например -ed и изключенията под формата на
неправилните глаголи). Това не се отнася за повечето от останалите
естествени езици (което обаче не означава, че *повечето* (но не и цялата!)
от граматиката им не може да бъде описана от алгоритми). Пък и самите
компютри са писани предимно за ASCII, което и до днес си личи в това, че
повечето езици за програмиране ползват английския език за ключовите си думи
и че например типовете файлове (файловите разширения) са с латински букви,
както и това, че командните редове и виртуалните терминали работят
най-добре с ASCII (макар че от няколко години насам ползват Уникод по
подразбиране). До появата на Уникод компютрите бяха (а и в обозримото
бъдеще ще продължат да бъдат) изключително англопоцентрични.
Many people would wish that natural languages such as English could be
> analyzed as precisely, that we could write computer programs to tell which
> English sentences are grammatically correct. Despite recent advances in
> natural language processing, many of which have been spurred by formal
> grammars and other theoretical tools, today’s commercial products for
> grammar and style fall well short of that ideal. The main problem is that *there
> is no common agreement on what are grammatically correct (English)
> sentences*; nor has anyone yet been able to offer a grammar precise
> enough to propose as definitive. *And style is a matter of taste!*
>
(Източник: http://www.cs.ucr.edu/~jiang/cs215/tao-new.pdf)
Това е само за формообразувателната и донякъде и граматичната страна на
въпроса. При семантиката и прагматиката въобще не може да се говори, че
някога може да се формализират. Самите речници са опростени списъци с
най-често използваните смисли на думите, няма как да обхванат всички случаи
(защото контекстът е цар, както се казва).
Разбира се, това няма да спре опитите за формализиране на езиците чрез
книжовната форма на дадения език, но е просто важно да се спомене от
теоретическа гледна точка.
Но иначе за целите на „БГ Офис“ (които са основно в областта на проверката
на правописа и само донякъде и на граматиката), мнението ви е напълно
валидно, г-н Балабанов.
Поздрави,
Sah War (sahwar)
На 10 април 2015 г., 2:02, Mikhail Balabanov <mishob at abv.bg> написа:
> Привет,
>
> > >Иначе се присъединявам към препоръката изходните данни на проекта да
> останат във формат „основни форми + правила за формообразуване“ и да не се
> превръщат в „плосък“ списък от разгърнати словоформи. Така обемът на
> данните е много по-обозрим от човек, по-лесно се допълва базата и се
> отстраняват грешки, а списъкът със словоформи така или иначе може да се
> генерира по всяко време в какъвто искаме формат.
>
> > По принцип е така, но словоформите на думите в българския език
> не са винаги по най-често използвания модел на словообразуване на
> словоформите, поради което автоматичното генериране на словоформи просто
> няма как да е перфектно точно и винаги ще има грешки, макар и дребни...
>
>
> Напротив, целта е именно перфектно точно генериране и то е съвсем
> постижимо, както показват многобройните работещи по този начин програми за
> всякакви езици, включително български. Просто трябва да се внимава при
> вкарване на всяка нова дума тя да се класифицира правилно и при нужда да се
> допълват/коригират правилата.
>
> Правилата в изходната база на bgoffice не са предназначени само за някакви
> най-често използвани парадигми. Базират се на сериозна лингвистична
> публикация и са писани с идеята да обхващат коректно _всички_ случаи на
> формообразуване (затова и са толкова много, над 200). [1] Не се предполага
> да оставят място за никакви грешки, дребни или едри. Предполага се ако
> открием грешка/пропуск, просто да я поправим. Механизмът вече е реализиран
> (и както изглежда – клониран и надстроен за различни цели от още няколко
> автори, включително мен), работи добре и нÑ
> �ма никакъв смисъл да се отказваме от него, особено ако искаме да държим
> основната база с разумен размер. [2] Българският глагол има около 60 форми,
> без да броим сложните. Това значи, че вместо една дума в основна форма ще
> пазим шейсет словоформи, които обикновено са по-дълги от основната форма.
> Освен това ако думата е въведена с грешка в основата, грешката ще трябва да
> се търси и поправя във всички форми. [3]
>
> Накрая, описанието с основи и правила позволява самият модул за проверка
> на правописа с подходящ алгоритъм да извършва разгръщането „наум“ при
> търсене на дума, без изобщо да му е необходима памет за цялата база в
> разгърнат вид.
>
> Поздрави,
> Михаил Балабанов
>
> [1] Моя позната известно време работи във фирмата, която прави един от
> комерсиалните български модули за проверка – мисля, че беше Кирила. Тяхната
> система също работи с правила за формообразуване и доколкото си спомням, тя
> говореше за стотици. Може би са им били необходими допълнителни данни за
> граматичните признаци, за да правят и граматична проверка.
>
> [2] Всъщност такава база на две нива би могла да се оптимизира още
> повече, като се вкарат регулярни изрази в словника,
> например един елемент от типа „(в|до|за|из|на|над|о|под|пре|раз)писвам“
> вместо десетина отделни.
>
> [3] Стандартната правописна проверка в Word 2007 явно също е базирана на
> правила, защото съдържа дефект, който се повтаря при всички думи с наставка
> „-ник“ – пленник, пътешественик, магьосник и т.н. Това също означава, че
> може да се поправи за всички тези думи с пипване на едно единствено правило.
>
>
> _______________________________________________
> Dict mailing list
> Dict at ludost.net
> http://lists.ludost.net/cgi-bin/mailman/listinfo/dict
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ludost.net/pipermail/dict/attachments/20150410/e232aa15/attachment-0001.html>
More information about the Dict
mailing list