Package: uniparser-eastern-armenian
Eastern Armenian morphological analyzerThis is a rule-based morphological analyzer for Modern Eastern Armenian (hye). It is based on a formalized description of literary Eastern Armenian morphology, which also includes a number of dialectal elements, and usesuniparser-morphfor parsing. It performs full morphological analysis of Eastern Armenian words (lemmatization, POS tagging, grammatical tagging, glossing).How to usePython packageThe analyzer is available as a Python package. If you want to analyze Eastern Armenian texts in Python, install the module:pip3 install uniparser-eastern-armenianImport the module and create an instance ofEasternArmenianAnalyzerclass. After that, you can either parse tokens or lists of tokens withanalyze_words(), or parse a frequency list withanalyze_wordlist(). Here is a simple example:fromuniparser_eastern_armenianimportEasternArmenianAnalyzera=EasternArmenianAnalyzer()analyses=a.analyze_words('Ձևաբանություն')# The parser is initialized before first use, so expect# some delay here (usually several seconds)# You will get a list of Wordform objects# The analysis attributes are stored in its properties# as string values, e.g.:foranainanalyses:print(ana.wf,ana.lemma,ana.gramm,ana.gloss)# You can also pass lists (even nested lists) and specify# output format ('xml' or 'json')# If you pass a list, you will get a list of analyses# with the same structureanalyses=a.analyze_words([['և'],['Ես','սիրում','եմ','քեզ',':']],format='xml')analyses=a.analyze_words(['Ձևաբանություն',[['և'],['Ես','սիրում','եմ','քեզ',':']]],format='json')Refer to theuniparser-morph documentationfor the full list of options.DisambiguationApart from the analyzer, this repository contains a small set ofConstraint Grammarrules that can be used for partial disambiguation of analyzed Armenian texts. If you want to use them, setdisambiguation=Truewhen callinganalyze_words:analyses=a.analyze_words(['Ես','սիրում','եմ','քեզ'],disambiguate=True)In order for this to work, you have to install thecg3executable separately. On Ubuntu/Debian, you can useapt-get:sudo apt-get install cg3On Windows, download the binary and add the path to thePATHenvironment variable. Seethe documentationfor other options.Note that each time you callanalyze_words()withdisambiguate=True, the CG grammar is loaded and compiled from scratch, which makes the analysis even slower. If you are analyzing a large text, it would make sense to pass the entire text contents in a single function call rather than do it sentence-by-sentence, for optimal performance.Word listsAlternatively, you can use a preprocessed word list. Thewordlistsdirectory contains a list of words from a 100-million-wordEastern Armenian National Corpus(wordlist.csv), list of analyzed tokens (wordlist_analyzed.txt; each line contains all possible analyses for one word in an XML format), and list of tokens the parser could not analyze (wordlist_unanalyzed.txt). The recall of the analyzer on literary texts is about 93%, i.e. 93% of the tokens receive at least one analysis.Description formatThe description is carried out in theuniparser-morphformat and involves a description of the inflection (paradigms.txt), a grammatical dictionary (hye_lexemes_XXX.txt files), and a short list of analyses that should be avoided (bad_analyses.txt). The dictionary contains descriptions of individual lexemes, each of which is accompanied by information about its stem, its part-of-speech tag and some other grammatical/borrowing information, its inflectional type (paradigm), its English translation and (in some cases) its stem gloss. See more about the formatin the uniparser-morph documentation.