
Անգլերեն. a թե an — կանոնը կախված է հնչյունից, ոչ թե առաջին տառից
Red Blob Games բլոգի կարճ գրառումը վերլուծում է տեքստի գեներացման մեջ աննշան թվացող խնդիր. ինչպես ընտրել a-ի և an-ի միջև։ Որոշիչը ոչ թե առաջին տառն է, այլ արտասանվող բառի առաջին հնչյունը։
Ծրագրավորման Red Blob Games բլոգը կարճ գրառում է հրապարակել մի խնդրի մասին, որն աննշան է թվում, քանի դեռ չես փորձել ավտոմատացնել այն. ինչպես ընտրել a-ն ու an-ը գեներացված տեքստում։
Կանոնը հնչյունի մասին է, ոչ թե գրության
Ակնհայտ մոտեցումը ստուգելն է՝ արդյոք առաջին տառը ձայնավոր է, սակայն այդ դեպքում ստացվում է an unicorn։ Իրական կանոնը վերաբերում է արտասանվող բառին. unicorn-ը սկսվում է ձայնավոր տառով, բայց բաղաձայն հնչյունով՝ cmudict-ում Y, միջազգային հնչյունաբանական այբուբենում /j/, ուստի ստանում է a։ Հակառակ դեպքը hour-ն է. բառը սկսվում է բաղաձայն տառով, բայց ձայնավոր հնչյունով (cmudict AW, IPA /aʊ/), դրա համար էլ գրվում է an hour։
Այսպիսով՝ կանոնի ճիշտ իրականացման համար պետք է ոչ թե տողի ստուգում, այլ արտասանության բառարան. հենց այստեղից սկսվեց նախագիծը։
Մեկ օր 32 455 բառի հետ
Հեղինակը ներբեռնեց cmudict-ը և համեմատեց առաջին հնչյունի կանոնը առաջին տառի միամիտ կանոնի հետ։ Առաջին իսկ փորձը հազարավոր անհամապատասխանություններ տվեց, ուստի ցանկը միտումնավոր կրճատվեց. հատուկ անուններ (3 133), առանձին տառեր (26), երկրորդական արտասանություններ (9 114, այդ թվում herb բառի ամերիկյան և բրիտանական տարբերակները), կետադրություն՝ ստացական ձևեր և կրճատումներ (8 574), հապավումներ-սկզբնատառեր (10) և ձեռքով հանված երկու բառ։ Եվս 81 852 գրառում մի կողմ դրվեց։
Մնաց 32 455 բառ, որոնցից, հեղինակի զարմանքով, բացառություն պահանջեց միայն 129-ը։ Դրանք հեշտ է ճանաչել ցանկից. eu և ew սկզբնատառերով բառերը (eucalyptus, ewe), heir ընտանիքը, honor և honest խմբի մեծ մասը, hour, once և one, ինչպես նաև u-ով երկար շարքը՝ unicorn, uniform, unique, union, university, urine, useful, usual, uranium, utensil, uterus, utility, utopia և նույնիսկ yttrium։
Նախագծի էջին ուղեկցում են d3-ով արված երկու վիզուալիզացիա. մեկը ցույց է տալիս՝ արդյոք բառի առաջին երկու տառերը բավարար են որոշման համար, մյուսը՝ քանի տառ պետք է դիտարկել։ Առաջին հարցի պատասխանը միանշանակ է՝ ոչ, և գրաֆիկը լցված է կարմիր ճյուղերով, որտեղ արտասանությունը տատանվում է ձայնավորի ու բաղաձայնի միջև։
Ձեռքով գրված կանոններ որոշման ծառի փոխարեն
Հեղինակը հույս ուներ բացառությունները հասցնել նվազագույն որոշման ծառի և ենթադրում էր, որ խնդիրը կապված է DFA-ի մինիմիզացիայի հետ, բայց չհաջողվեց, և կանոնները գրեց ձեռքով. eu-ն ու ew-ը համարվում են բաղաձայն հնչյուններ, heir, homage, hones և hono՝ ձայնավոր հնչյուններ, herb-ի ու նրա ածանցյալների առանձին դեպքերով։
Գրառումը պարունակում է նաև անկեղծ նշում այն մասին, թե ինչպես է գրվել կոդը։ Լեզվական մոդել չի օգտագործվել, թեև, ըստ հեղինակի, արժեր օգտագործել. մեկ հարցին պատասխանելու համար գրված մեկանգամյա կոդը պարտադիր չէ լինի մաքուր կամ սպասարկելի՝ բավական է, որ ճիշտ լինի։ Ըստ նրա՝ մոդելը կարող էր մշակել cmudict-ը և կառուցել d3.js գծապատկերները՝ ավելի շատ ժամանակ թողնելով trie-ի ավելի լավ ալգորիթմի համար։
SiTech — AI-ով հզորացված վեբ մշակում
Ստեղծում ենք արագ ու ժամանակակից կայքեր և AI-ը ներդնում իրական բիզնես գործընթացներում։ Ունե՞ք նախագիծ կամ հարց։ Ուրախ կլինենք օգնել։