Skip to content

Armtreebank/Tokenizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tokenization

The low-level tokenization of the Eastern Armenian UD treebank follows the tokenization of the Հայերենի ծառադարան - Eastern Armenian Treebank:

  • In general, tokens are delimited by whitespace.
  • Punctuation (recognized by the corresponding Unicode property) that is conventionally written adjacent to the preceding or following word is separated during tokenization. Some special cases worth mentioning:
    • An abbreviation marked by a period, as in թ. “year”, becomes two tokens, թ and . .
    • A compound containing a hyphen becomes three tokens (two words and the hyphen), as in անգլո-ամերիկյան “anglo-american”, պատմա-բանասիրական “historical-philological”. In these cases, the first token is a special form of adjective that never occurs independently. Compounds without a hyphen are not split, thus ռազմածովային “navy” is one token but հասարակական-քաղաքական “civic-social” would be three tokens. Another common case of splitting-on-hyphen are reduplicative or echo words as in մեծ-մեծ “very big”, շուն-մուն “dog or something”.
    • Inflectional bound morphemes and hypens after phrases or sentences used as names in quotation marks or after abbreviations marked by a period, as in «Երկիր Նաիրի»-ից “from “Yerkir Nairi” or 1937 թ.-ին “in year 1937” are split and are considered as separate tokens: { « , Երկիր , Նաիրի , » , - , ից } and { 1937 , թ , . , - , ին} . The word before the hypen is the head and the bound morpheme is linked with a dep. Tokenizing and segmenting this way seems easier for parsing.
    • The words that contain “infixed” punctuation (question, exclamation, emphasis and Armenian abbreviation marks), as in ինչո՞ւ “why?”, are considered multi-word tokens and become two tokens, ինչու and ՞ . EXCEPTION is the apostrophe, as in Ժաննա դ՚Արկ “Joan of Arc”, which is split and belongs to the preceding part, { Ժաննա , դ՚ , Արկ }.
    • Numerical expressions (including dates) are treated as single words as long as they do not contain spaces, for example, 355,089.40 , 01.01.1970 , 01/01/1970 , 11:00 , 11.00 , 1937-1938 , 10-15 . Decimal numbers are also kept as one token, e.g. 2.1 , 2,1 , 0.5-1.5 .
    • Numerical expressions with hyphen and Armenian endings (e.g. 1-ին “1st”, 3-ով “3.Ins”) as well as adjectives and other non-numerals which contain digits (e.g. 1000-ական “by 1000”, 1950-ականներին “in 1950s”, 20-ամյակ “20th anniversary”, 1700-ամյա “1700-year-old”, ՆԱՏՕ-ական “belonging-to-NATO, ՏՈՒ-154Մ “TU-154M”) are treated as single tokens.
    • Generally, every punctuation character constitutes a token of its own. Thus »,— will become three tokens.
    • Exceptions are conventional multi-character punctuation marks: ... , .... , and emojis and smileys: :) , ^_^ , ։Ճ etc. Conventional non-armenian multi-character punctuation marks and terms are tokenized as single tokens: ?! .
  • Special symbols before and after numerical expressions, as in $250 , 4,81% , +32°С , are tokenised separately (so, the tokens are { $ , 250 } , { 4,81 , % } , { + , 32 , °С }).
  • Email addresses, URLs, and tweet-style names are treated as single tokens: [email protected] , https://github.com , @gov_am .

Multi-word tokens

See above, the “infixed” punctuation.

Pronouns and adverbs

  • Indefinite pronouns and adverbs like ինչ-որ, փոքր-ինչ, դույզն-ինչ, ինչ-ինչ “something, somewhat”, etc. are splitted as compounds containing a hyphen and become three tokens (two words and the hyphen).

Verb forms, analytical grammatical forms, negation

  • the forms of necessitative mood, analytical causative, complex tenses, complex comparatives, etc. are splitted according to the orthographic principle: { պիտի , վազեն } “they must run”, { գրել , տվեց } “made write”, { վազում , եմ } “I run”, { ավելի , լուրջ } “more serious”.
  • մի and ոչ used as negation markers with verbs, adjectives, pronouns and other words are tokenized according to the orthographic rules: { մի , գրիր } “don't write”, { ոչ , պաշտոնական } “unofficial”, { ոչ , մի , կերպ } “in no way”.

Sentence splitting

Each sentence contains only one root. Splitting is usually performed after an end-of-sentence full stop or after a dot, ellipsis or colon when these punctuation marks separate unrelated subparts of a sentence. Items in a list may sometimes be rendered as separate sentences.

Տեքստի հատույթավորում և բառանիշավորում

Հանգամանալից տե՛ս Տեքստի մեքենական հատույթավորումը արևելահայերենի շարահայուսական ծառերի UD_ARMENIAN–ArmTDP բանկում | «Բանբեր Երևանի համալսարանի. Բանասիրություն», 2019 № 3 (30), էջ 52-65

Բնական լեզվով տեքստերի մեքենական վերլուծության համակարգերը ենթադրում են, որ տեքստն ի սկզբանե մասնատված է նախադասությունների, բառերի, կետադրական նշանների, թվանշանների, տառաթվանշանային արտահայտությունների և այլն, այսինքն՝ այն արդեն իսկ հատույթավորված է։ Հատույթավորումը, այսպիսով, տեքստի մշակման առաջին, նախնական փուլն է։

Տեքստի հատույթավորումն ապահովվում է գրանշանային վերլուծության միջոցով, որը հիմնվում է տվյալ լեզվի ուղղագրական առանձնահատկությունները ներառող մանրամասն ու հստակ կանոնների վրա։ Ենթադրվում է, որ կանոնների մանրամասնումը կարող է ապահովել ստանդարտ (արդեն իսկ կետադրված) տեքստերի հնարավոր բոլոր իրական դեպքերի ճշգրիտ հատույթավորումը։

Գրանշանային ամենապարզ վերլուծությունը տեքստի տրոհումն է գրանշանների ընդհատական շարքերի՝ որոշ ընդհատումների վերագրելով լեզվական արժեք։ Վերջիններս գրավոր խոսքում կա՛մ նշանակվում են բացատով, կա՛մ հատուկ՝ կետադրական նշաններով և ցույց են տալիս ընդհատման տարբեր աստիճաններ։ Տեքստի անդամատման կառուցվածքային այս մակարդակում բացահայտվող նվազագույն միավորները (հատույթները), որոնք խմբավորվում են վերջավոր դասերում, մեքենական համակարգերում անվանվում են բառանիշեր (token)։ Վիճելի կամ ոչ միանշանակ դեպքերում (մասնավորեցնող կանոններ) այսպիսի համակարգերը միշտ կանգնում են խնդրի առջև՝ հաջորդականությունը գնահատել մե՞կ, թե մի քանի բառանիշ։

«Հայերենի ծառադարանի»-ի գրանշանային վերլուծության մոդուլը՝ «ՀայՆիշ»-ը, հենվում է հետևյալ կանոնների վրա.

  • Բացատները միշտ բաժանում են բառանիշներ, ինչը ենթադրում է, որ չեն կարող լինել բացատներ պարունակող բառանիշներ։
  • Կետադրությունը նույնպես ենթակա է բառանիշավորման։
    • Համառոտագրություններում կրճատման նշան հանդիսացող կետը չի համարվում բառանիշի մաս և մասնատվում է որպես անջատ բառանիշ, օր.՝ ֆր. բառանիշավորվում է որպես { ֆր } և { . } ։
    • «Ոչ գծային» կետադրական նշաններ (պարույկ, շեշտ, բացականչական նշան, պատիվ ՞ ՜ ՛ ՟ ) պարունակող հաջորդականությունները մասնատվում են որպես բազմաբառ բառանիշներ (multiword tokens), այսպես՝ ինչո՞ւ բառաձևում կունենաք երկու բառանիշ { ինչու } և { ՞ }։ ԲԱՑԱՌՈՒԹՅՈՒՆ է կազմում ապաթարցը ( ՚ ), որը կցվում են նախորդող հաջորդականությանը որպես մեկ բառանիշ, օր.՝ Ժաննա դ՚Արկ-ը հատույթավորվելու է որպես երեք բառանիշ՝ { Ժաննա } { դ՚ } { Արկ }։
    • Միմյանց հաջորդող կետադրական նշանները՝ »,— առանձնացվում են որպես երեք անջատ բառանիշներ { » } { , } { — }։ Միևնույն ժամանակ, կախման կետերը { ... } և բազմակետերը { .... } ներկայացվում են որպես մեկ կետադրական նշան, հետևաբար՝ մեկ բառանիշ, ոչ թե երեք կամ չորս առանձին կետերից բաղկացած արտահայտություն։ Բացառություն են կազմում մի քանի նշաններից բաղկացած emoji և smiley { :) }, { ։Ճ } և նման տիպի հաջորդականությունները, որոնք դիտարկվում են որպես մեկ բառանիշ։ Այլալեզու բազմանիշ կետադրական նշանները { ?! } դիտարկվում են որպես մեկ բառանիշ։
    • Չակերտներում վերցված արտահայտություններին միության գծիկով հաջորդող երկրորդական ձևույթները (թեքույթ) առանձացվում են որպես անջատ բառանիշ, օր.՝ «Երկիր Նայիրի»-ից դեպքում կունենաք վեց առանձին բառանիշ { « } { Երկիր } { Նայիրի } { » } { - } { ից }, կամ՝ 1950 թ.-ին դեպքում՝ հինգ բառանիշ { 1950 } { թ } { . } { - } { ին }։
    • Թվանշա-տառային արտահայտությունները, որոնցում թվանշանին հաջորդում է միության գծիկ (ենթամնա) ու հայերեն տառեր, դիտարկվում են որպես մեկ միասնական բառանիշ, լինեն դրանք թվականներ, ածականներ կամ այլ տիպի արտահայտություններ, օր.՝ { 1-ին }, { 2-րդ }, { 4-ը }, { 1000-ական }, { 1950-ականներին }, { 20-ամյակ }, { 1700-ամյա }, { ՏՈՒ-154Մ } ։ Նույն կերպ են բառանիշավորվում հապավումներին միության գծիկով հաջորդող վերջածանցները կամ թեքույթները՝ { ՀՀԿ-ականներից }։
    • Թվանշանները { 265,459.00 }, նաև այնպիսիք, որոնք պարունակում են ստորակետ կամ միջակետ՝ որպես ամբողջի և մասի բաժանարար { 2,15 }, { 2.15 }, կոտորակները { 2/3 }, մաթեմատիկական կամ քիմիական բանաձևերը, էլ. փոստի { [email protected] }, կայքէջերի հասցեները { https://github.com }, թվիթների տիպի անունները { @gov_am } դիտարկվում են որպես մեկ ամբողջական բառանիշ։ Այսպիսի արտահայտությունների կառուցվածքի վերլուծությունն իմաստ չունի, կարևոր է միայն այս բառանիշների դասը։
    • Ժամանակ ցույց տվող թվանշանային արտահայտությունները՝ ժ. 20:55 կամ ժ. 20.55 մնում են որպես մեկ միասնական բառանիշ՝ { 20:55 }, { 20.55 }։ Նույն կերպ են վերլուծվում նաև ամիս-ամսաթվեր, տարեթվեր ցույց տվող թվանշանային արտահայտությունները { 24.04.1965 }, {24/04/1965 }։
    • Թվանշաններին նախորդող կամ հաջորդող հատուկ նշանները (ներառյալ՝ + կամ -), չափման միավորները, եզրույթներ արտահայտող նշանները (կմ, $, % և այլն) առանձնացվում են որպես անջատ բառանիշներ, եթե անգամ դրանց միջև բացատ չկա, օր.՝ { € } {200 }, {18,25 } { % } , { + } { 35 } { °С } , { 135 } { կմ/ժ }։
  • Վերոնշյալ կանոններով չնախատեսվող բոլոր դեպքերը (գծիկով կամ անջատ գրվող վերլուծական բառերը, մասնավորապես՝ հարադրությունները, հարադրական բարդությունները) բառանիշավորվում են ուղղագրական կանոններին համաձայն և վերլուծվում են որպես «բազմաբառ արտահայտություններ» (MWE, multiword expressinons)։

Նախադասությունների սահմանազատում

  • Նախադասության սահմանն անցնում է նախադասության ավարտը նշող կետադրական տերմինալ նշանից (վերջակետ { ։ }, կախման կետեր { ... }, բազմակետ { .... }) հետո՝ հաջորդող մեծատառից կամ պարբերության ավարտից առաջ։ Ընդ որում, բոլոր այն հաջորդականությունները, որոնք սկսվում են մեծատառով և չեն ավարտվում որպես տերմինալ գնահատված նշաններից ոչ մեկով (վերնագիր, կոչ, պարբերականի, ստեղծագործության անվանում, թվարկումներ և այլն), նույնպես գնահատվում են որպես առանձին նախադասություն. դրանց սահմանը նույնպես անցնում է հաջորդող մեծատառից կամ պարբերության ավարտից առաջ։
  • Հեղինակային խոսքը, լինի նախադաս, միջադաս, թե հետադաս, չի առանձնացվում ուրիշի ուղղակի, մեջբերվող խոսքից։ Հեղինակային ու մեջբերվող խոսքը վերլուծության հաջորդ փուլերում ծանոթագրվում են շարահյուսական հատուկ տիպի կապի միջոցով (parataxis), որն էլ ապահովում է տեքստի իմաստային ավարտունությունը (| — նշում է նախադասության սահմանը, || — նշում է այդպիսի հատվածների ենթադրյալ սահմանները)։
    • Օր.՝ — Ի՞նչը՝ ո՞նց թե...| Տնաշեն, ամբողջ աշխարհն է խոսում. Տանուտերանց Գևորգը երկու օր է մեռած, տղերքից ոչ մեկը չկա, որ հորը թաղի։| Շորերը հագցրել, պառկեցրել են դագաղում ու սպասում են...|| Գառնիկի աչքերը սառել էին Վարանցովի բերանին։| — Մարդ աստծո,— շշնջաց,— բարլուսախառն միանգամից էդքան վատ բան բերանդ ո՞նց զորեց ասել։|| Կամ՝ «Վրաս ցեխ ու ճիմ լցրու»,— իր վրա գոռում է։|| Ինքը շշկլած կանգնել է ու չգիտի ի՞նչ անի, ո՞նց վարվի։| Հետո լեզուն բացվեց. «Ախր, այ Գևորգ,— ասաց,— հագինդ նախագահի նվիրած կոստյումն է»։ || «Տո, նախագահի մերն էլ, քո մերն էլ,— համբերությունը հատած գոռաց,— դու ցեխը լցրու, ցեխը...»։||
  • Չակերտներում մեջբերվող ուղղակի խոսքը նախադասությունների սահմանազատվում է ըստ հիմնական կանոնի՝ տերմինալ նշան՝ հաջորդող մեծատառից կամ պարբերության ավարտից առաջ։ Ընդ որում, հնարավոր են դեպքեր, երբ բացող չակերտը մի նախադասության մեջ է, իսկ փակողը՝ հաջորդում։ Այսպիսի սահմանազատումը թույլ է տալիս պահպանել շարահյուսորեն ավարտուն կառույցները։
    • Օր.՝ Վեպի մասին «Հայ վեպի պատմություն» գրքի հանձնարարականում գրված է, որ «վեպը արվեստի ինտելեկտուալացման ամենաբարձր աստիճանն է։| Վեպը էպիկական ստեղծագործություն է, որի մեջ պատումը կենտրոնացված է առանձին անհատի ճակատագրի վրա, նրա բնավորության և ինքնագիտակցության ձևավորման և զարգացման վրա»։|
  • Եթե չակերտներում մեջբերվում է անվանում (գեղարվեստական կամ գիտական երկերի վերնագրեր, թերթերի անուններ և այլն), որում առկա են տերմինալ նշաններ, ապա անվանման ներսում սահմաններ չեն դրվում։
    • Օր.՝ Խաչատուր Աբովյանի «Վերք Հայաստանի։ Ողբ հայրենասեր»-ի վեպը հրատարակվել է 1858 թ.։|

Usage

#import Tokenizer
from tokenizer import Tokenizer

#write some text
text = 'Ես սիրում եմ python:'

#tokenization
T = Tokenizer(text)
T.segmentation().tokenization()

#print result
print(T)

About

Tokenization module of ArmTreeBank

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages