Търсене по шаблон
Възможности за употреба на корпуса
Търсенето по шаблон се извършва в Българския Браун корпус. Търсенето по шаблон може да се осъществява със заявка, която съдържа последователност от символи (низове), или с регулярни изрази.
Търсене с низове
При търсенето с последователности от символи (низове) резултатът е точно съвпадение на заявката. Например низът чета открива контексти (и изречения), в които се среща чета. Низът Бяла река открива контекстите, в които се среща заявката. Може да бъде избрана опция (важи и за търсене по регулярни изрази) за различаване или неразличаване на главни букви, при неразличаване заявката бяла река ще съответства на резултатите Бяла река и бяла река.
Търсене с регулярни изрази
Регулярните изрази са символни низове (поредици от символи), които дефинират шаблон, определящ множество от низове (даден регулярен език). Регулярните изрази са средство за обработка на текст: могат да служат за извличане на информация от текста по зададен шаблон, за проверка на текстова информация, както и за промяна или изтриване на последователности от символи в текста. Например чрез регулярния израз закон в даден текст ще бъде намерена последователността от символи закон, които може да са отделна дума или част от друга дума: закон, закона, законът, закони, законите, законен, законна, законност, беззаконие и т.н.; чрез регулярния израз закон\w* ще бъдат намерени всички последователности от символи, които включват редицата от символи закон и един или повече символи, които я следват: закона, законът, закони, законите, законен, законна, законност, беззаконие,1, беззаконен и т.н.
Регулярните изрази използват специален синтаксис за описанието на шаблоните. Синтаксисът е еднакъв на всички платформи (с малки изключения). Регулярните изрази, които се използват за търсене в Българския Браун корпус, имат синтаксис и семантика като тези, използвани в Perl.
Синтаксисът на регулярните изрази има два компонента – символи (литерали) и специални символи (метасимволи). Литералите са константи, които задават точно определен подниз. Значението на литералите в регулярния израз е обичайното им значение, т. е. графичната стойност на символа. Такива са буквите от азбуката и цифрите. Най-простият тип регулярни изрази се състои от единичен символ. Например регулярният израз: a обозначава множеството, което съдържа редицата „a” и нищо друго. При търсене в текст с този регулярен израз ще бъдат намерени всички срещания на „а”. Метасимволите описват символни класове или задават специални правила в шаблона, тоест тяхното значение не съвпада с графичната стойност на самия символ. Специалните символи биват:
Символът . означава произволен символ. Например регулярният израз л.к ще съвпадне с всяка последователност от три символа, първият от които е л, а третият – к: лак, лек, лик, лук, лък, люк, ллл, лекар, лакът, полека; регулярният израз .ия открива поредиците бия, мия, пия, сия, рия, тия, забия, сияя и т.н.
Символът ? означава нула или едно срещане на предходния израз (символ или означена група от символи). Регулярният израз бяла? намира както бял, така и бяла; регулярният изра 10? намира както 1, така и 10.
Символът * (звезда на Клини) означава нула или повече срещания на предходния израз (символ или означена група от символи).
Регулярният израз бе* намира както б, така и бе, бее; беее и т.н.; регулярният израз 10* намира както 1, така и 10, 100, 1000, 10000 и т.н.
Символът + означава едно или повече срещания на предходния израз (символ или означена група от символи). Регулярният израз бе+ намира както бе, така и бее; беее и т.н.; регулярният израз 10+ намира както 10, така и 100, 1000, 10000 и т.н.
Специалният символ {n} означава n пъти срещания на предходния израз (символ или означена група от символи). Регулярният израз е{2} ще съвпадне с поредицата ее и по този начин могат да се маркират всички думи, в които тя се среща: пеене, пее, сее, зее, посеех и т.н.; регулярният израз 1{3} ще съвпадне с поредицата 111: 111, 1110, 01110 и т.н.
Специалният символ {n,} означава най-малко n пъти срещания на предходния израз (символ или означена група от символи). Регулярният израз н{1,} ще намери всички думи, в които н се среща поне един път: кон, конна и т.н.; регулярният израз 1{2,} ще намери всички низове, в които 1 се среща поне два пъти: 11, 111, 1113 и т.н.
Специалният символ {n,m} означава поне n и най-много m срещания на предходния израз (символ или означена група от символи). Например регулярният израз т{1,2} ще съвпадне с т и тт и ще ги маркира във всички думи, които ги съдържат: мост, кост, костта и т.н.; регулярният израз 1{2,3} ще намери всички низове, в които 1 се среща два или три пъти: 11, 111, 1113 и т.н.
Специалният символ | (логическо или) означава или единия, или другия от изразите (символ или означена група от символи), които разделя, но не и двата. Регулярният израз на|над съвпада с на или над и маркира всички думи, които ги съдържат: на, над, напиша, надпиша и т.н.; регулярният израз си|и намира последователностите от символи, които съдържат или си, или и: си, намеси, и, мия и т.н.
Ъгловите скоби [] се използват за съответствие с точно един символ от редицата в скобите. Регулярният израз котк[аи] намира последователностите от символи котка или котки; регулярният израз [123] намира 1, 2 или 3. Регулярният израз червен[аои]?я?т?[аое]? намира формите на прилагателното червен.
Кръглите скоби () се използват за групиране на символите в скобите, като по този начин определят областта на действие на другите специални символи. Например регуляеният израз котк(а|и) намира думите котка, котки, котката и т.н., в които се срещат последователностите от символи котка или котки. Регулярният израз (съм|си|е|сме|сте|са) чел\w? намира формите за минало неопределено време на глагола чета.
Може да се използва съкратено записване за класове от символи (като азбуките и цифрите):
Символът ^ означава ограничение за начало на низ (в случая съвпада с изречение). Регулярният израз ^На намира всяко начало на изречение, което започва с На, например; На 20 май; Началото и т.н.
Символът $ означава ограничение за край на низ (в случая съвпада с изречение).. Регулярният израз \?$ намира всеки край на
изречение, който завършва с въпросителен знак.
Метасимволът \ пред специален символ означава, че специалният символ се използва като обикновен; например регулярният израз \[ намира отварящата скоба, \? намира въпросителен знак и т.н.
Метасимволът [^] на първа позиция в ъглови скоби намира точно един символ, различен от оградените в скобите. Регулярният израз [^с]ки съвпада с всички низове, завършващи на ки, освен последователността ски, регулярният израз.