in Գիտություն, Ծրագրավորում, Կյանքի Օպտիմալացում, ՏՏ

վրացական այբուբենը

վրացական այբուբենը

Իմաստը

Խնդիրը նրանում է, որ որքան էլ Վրաստանում փողոցներում ու տարբեր մենյուներում վրացերենին զուգահեռ հանդիպում են անգլերեն գրառումներ , այնուամենայնիվ դա շատ քիչ է , հաճախ անգլերենը բացակայում է։ Օրինակ ես տեսա երկու տարբեր ռեստորանների մենյուներ, որտեղ գրված էր միայն վրացերեն։ Նաև տարբեր տեղեր կարելի է հանդիպել խանութների և այլ օբյեկտների անվանումներ, որոնք միայն վրացերեն են։

Նույնիկս մի խոսակցության մեջ մի ծեր մարդ հայնտում էր կարծիք, թե պետք է այլ լեզուներով գրառումները հեռացնել։ Ճիշտն ասած չհասկացա ինչու։ Ինչևէ։

Իմանալով տառերը կարելի է նաև առանց լեզուն հասկանալու կողմնորոշվել։ Եթե մենյուի մեջ վրացերեն գրված է խաչապուրի, ապա պետք չի լեզուն իմանալ , միայն տառերը բավական են ․․․

Գաղափարը
Ես մտածում էի, որ 5 օրը պիտի որ հերիքի այբուբենը սովորելու համար։ Իրականում ահագին հեշտ է, պետք է միայն ուշադիր լինել խանութների գրվածքներին ու գովազդին։ Նաև ժամանակ առ ժամանակ նայել նոր հայտնաբերված տառերի հնչողությանը։

Օպտիմալացում
Ինչպե՞ս հեշտ սովորել։ Վերցնել այբուբենը, հերթով սովորել տառերը այբենական կարգով։ Բայց այս տարբերակը ինձ համար երբեք հարմար չի եղել։ Ինձ հիշելու համար պետք են ասոցիացիաներ։ Ու ես հիշում եմ պարող մարդուկների այլագիրը, այն, որ ամեն լեզվում կան հաճախակի և պակաս հաճախ օգտագործվող տառեր։ Ու պարզ է, որ ավելի հաճախ հանդիպող տառերը ցուցանակներին էլ ավելի հաճախ կհանդիպեն, նաև ավելի հաճախ հանդիպողները ավելի արագ կհիշվեն։

Իրականացում
Մնում է մի տեղից ճարել վրացերեն տեքստեր, գրել ծրագիր, տեքստերը մշակել ծրագրով , հաշվել որ տառը քանի անգամ է հանդիպում և հաշվել հարաբերությունը  տառերի ընհանուր քանակին։

Կոդը
Արագի մեջ գրված կոդ php լեզվով։ Ավելի լավ կլիներ մեկ այլ լեզվով գրել, որպիսի հնարավոր լինի  տեքստերի ավելի մեծ կորպուս մշակել, սակայն քանի որ նպատակը գիտական չէ, այլ միայն պրակտիկ ու մեծ գիտական ճշգրտություն չի պահանջվում մշակել եմ ընդամենը 20 ՄԲ պատահականորեն ընտրված տեքստ։ Կոդը կդնեմ վերջում, միայն հետաքրքրվածների համար։

Տեքստերի կորպուս
Վրացական վիքիպեդիա և վրացերեն բառարան

Արդյունքը
Վրացական տառերը դասավորված ըստ կիրառության հաճախականության։ Քառակուսի փակագծերի մեջ գրվածը կիրառման հարաբերական հաճախականությունն է։

1 [0.143]
2 [0.1191]
3 [0.091]
4 [0.068]
5 [0.0628]
6 [0.0526]
7 [0.0499]
8 [0.047]
9 [0.0419]
10 [0.0416]
11 [0.0365]
12 [0.0306]
13 [0.0275]
14 [0.024]
15 [0.0224]
16 [0.0184]
17 [0.0164]
18 [0.0146]
19 [0.0141]
20 [0.012]
21 [0.0092]
22 [0.0088]
23 [0.0088]
24 [0.0085]
25 [0.0082]
26 [0.0061]
27 [0.0044]
28 [0.004]
29 [0.0035]
30 [0.0021]
31 [0.0014]
32 [0.0012]
33 [0.0006]

Այլ լեզուների համար

իրականում կարելի է անել նաև յուրահատուկ այբուբեններ ունեցող այլ լեզուների համար, միայն թե պետք է ծրագրային կոդում փոխել լեզվի այբուբենը պարունակող մասիվը և օգտագործել այլ տեքստերի կորպուս, քաշելով ֆայլերը ասենք վիքիպեդիայի տվյալ լեզվով գրված բաժնից։ Մի ազատ ժամանակ նույնը կանեմ հայերենի համար, ու կարելի կլինի այն տալ տուրիստներին կամ մեր լեզվով հետքարքրված մարդկանց, որպիսի ավելի հեշտ ու արագ սովորեն։

PHP կոդը

<?php
ini_set('display_errors',1);
error_reporting(E_ALL);

$dir = “gregorianTexts/*”;
$CountChars[” “]=1;

//այլ լեզուների համար $AlphabetChars մասիվը լցնել համապատասխան լեզվի այբուբենի տառերով
$AlphabetChars = array(“ა”=>0,
“ბ”=>0,
“გ”=>0,
“დ”=>0,
“ე”=>0,
“ვ”=>0,
“ზ”=>0,
“თ”=>0,
“ი”=>0,
“კ”=>0,
“ლ”=>0,
“მ”=>0,
“ნ”=>0,
“ო”=>0,
“პ”=>0,
“ჟ”=>0,
“რ”=>0,
“ს”=>0,
“ტ”=>0,
“უ”=>0,
“ფ”=>0,
“ქ”=>0,
“ღ”=>0,
“ყ”=>0,
“შ”=>0,
“ჩ”=>0,
“ც”=>0,
“ძ”=>0,
“წ”=>0,
“ჭ”=>0,
“ხ”=>0,
“ჯ”=>0,
“ჰ”=>0);

$StopChars=array(” “,”·”,”,”,”.”,”1″,”2″,”3″,”4″,”5″,”6″,”7″,”8″,”9″,”0″,”)”,”(“,”)”,”[“,”-“,” “,”a”,”t”,”n”,”o”,”.”,”i”,”I”,”]”,”r”,”s”,”\t”,”\n”,”.”,”;”,”l”,”„”,”“”,”.”);
foreach(glob($dir) as $file)
{
//դիրեկտորիայի բոլոր ֆայլերի համար
$fileHandle = fopen($file, “r”);

while (!feof($fileHandle))
{ // ֆայլի բոլոր տողերի համար

$line = fgets($fileHandle);
$currArray = mb_str_split($line);

foreach($currArray as $char)
{

if(!in_array($char,$StopChars))
{
if(array_key_exists($char,$AlphabetChars))
{
$CountChars[$char]++;
}
}

}
}

fclose($fileHandle);
}
function mb_str_split( $string ) {
return preg_split(‘/(?<!^)(?!$)/u’, $string );
}

arsort($CountChars);

$sum=0;
foreach($CountChars as $key=>$value)
{
$sum += $value;
}

echo “<table>”;
$j=1;
foreach($CountChars as $key=>$value)
{
$perc = round($value/$sum,4);
echo “<tr><td>”.$j.”</td><td>”.$key.”</td><td>[$perc]</td><tr>”;
$j++;
}
echo “</table>”;
//միայն թագքլոուդ սարքելու համար
/*
foreach ($CountChars as $key=>$value) {
for($h=0;$h<=$value;$h=$h+10)
echo $key.” “;
}

?>

Դբա Լավը 😉