mirror of https://github.com/explosion/spaCy.git
642 lines
14 KiB
Python
642 lines
14 KiB
Python
|
# coding: utf8
|
|||
|
from __future__ import unicode_literals
|
|||
|
|
|||
|
from ...symbols import LEMMA, PRON_LEMMA
|
|||
|
|
|||
|
_subordinating_conjunctions = [
|
|||
|
"кога",
|
|||
|
"штом",
|
|||
|
"штотуку",
|
|||
|
"тукушто",
|
|||
|
"откако",
|
|||
|
"откога",
|
|||
|
"пред да ",
|
|||
|
"дури",
|
|||
|
"додека",
|
|||
|
"затоа што",
|
|||
|
"зашто",
|
|||
|
"бидејќи",
|
|||
|
"поради тоа што",
|
|||
|
"дека",
|
|||
|
"оти",
|
|||
|
"така што",
|
|||
|
"да",
|
|||
|
"за да",
|
|||
|
"ако",
|
|||
|
"без да",
|
|||
|
"ли",
|
|||
|
"иако",
|
|||
|
"макар што",
|
|||
|
"и покрај тоа што",
|
|||
|
"и да",
|
|||
|
"така како што",
|
|||
|
"како да",
|
|||
|
"како божем",
|
|||
|
"што",
|
|||
|
"кој",
|
|||
|
"којшто",
|
|||
|
"чиј",
|
|||
|
"чијшто",
|
|||
|
"дали",
|
|||
|
"каков што",
|
|||
|
"колкав што",
|
|||
|
"каде што",
|
|||
|
"како што",
|
|||
|
"колку што",
|
|||
|
"како",
|
|||
|
]
|
|||
|
|
|||
|
_part = [
|
|||
|
"де",
|
|||
|
"бе",
|
|||
|
"ма",
|
|||
|
"барем",
|
|||
|
"пак",
|
|||
|
"меѓутоа",
|
|||
|
"просто",
|
|||
|
"да",
|
|||
|
"не",
|
|||
|
"ниту",
|
|||
|
"зар",
|
|||
|
"ли",
|
|||
|
"дали",
|
|||
|
"единствено",
|
|||
|
"само",
|
|||
|
"точно",
|
|||
|
"токму",
|
|||
|
"скоро",
|
|||
|
"речиси",
|
|||
|
"рамно",
|
|||
|
"нека",
|
|||
|
"ќе",
|
|||
|
"уште",
|
|||
|
"притоа",
|
|||
|
"исто така",
|
|||
|
"би",
|
|||
|
]
|
|||
|
_modal_verbs = [
|
|||
|
"може",
|
|||
|
"мора",
|
|||
|
"треба",
|
|||
|
]
|
|||
|
|
|||
|
sum_aux = [
|
|||
|
"сум",
|
|||
|
"си",
|
|||
|
"е",
|
|||
|
"сме",
|
|||
|
"сте",
|
|||
|
"се",
|
|||
|
]
|
|||
|
|
|||
|
MORPH_RULES = {
|
|||
|
"SUM": {word: {"POS": "AUX"} for word in sum_aux},
|
|||
|
"IMA": {
|
|||
|
"има": {"POS": "VERB"},
|
|||
|
"имала": {"POS": "VERB"},
|
|||
|
"имало": {"POS": "VERB"},
|
|||
|
"имал": {"POS": "VERB"},
|
|||
|
"имале": {"POS": "VERB"},
|
|||
|
"имав": {"POS": "VERB"},
|
|||
|
"имавте": {"POS": "VERB"},
|
|||
|
"имаа": {"POS": "VERB"},
|
|||
|
"имаше": {"POS": "VERB"},
|
|||
|
"имам": {"POS": "AUX"},
|
|||
|
"имаш": {"POS": "AUX"},
|
|||
|
"имаме": {"POS": "AUX"},
|
|||
|
"имате": {"POS": "AUX"},
|
|||
|
"имаат": {"POS": "AUX"},
|
|||
|
"имавме": {"POS": "AUX"},
|
|||
|
},
|
|||
|
"MD": {word: {"POS": "VERB"} for word in _modal_verbs},
|
|||
|
"NN": {
|
|||
|
"нешто": {"POS": "PRON"},
|
|||
|
"некој": {"POS": "PRON"},
|
|||
|
"некоја": {"POS": "PRON"},
|
|||
|
"некое": {"POS": "PRON"},
|
|||
|
"некои": {"POS": "PRON"},
|
|||
|
"ништо": {"POS": "PRON"},
|
|||
|
},
|
|||
|
"PRP": {
|
|||
|
"јас": {
|
|||
|
LEMMA: PRON_LEMMA,
|
|||
|
"POS": "PRON",
|
|||
|
"PronType": "Prs",
|
|||
|
"Person": "One",
|
|||
|
"Number": "Sing",
|
|||
|
"Case": "Nom",
|
|||
|
},
|
|||
|
"мене": {
|
|||
|
LEMMA: PRON_LEMMA,
|
|||
|
"POS": "PRON",
|
|||
|
"PronType": "Prs",
|
|||
|
"Person": "One",
|
|||
|
"Number": "Sing",
|
|||
|
"Case": "Acc",
|
|||
|
},
|
|||
|
"ме": {
|
|||
|
LEMMA: PRON_LEMMA,
|
|||
|
"POS": "PRON",
|
|||
|
"PronType": "Prs",
|
|||
|
"Person": "One",
|
|||
|
"Number": "Sing",
|
|||
|
"Case": "Acc",
|
|||
|
},
|
|||
|
"ми": {
|
|||
|
LEMMA: PRON_LEMMA,
|
|||
|
"POS": "PRON",
|
|||
|
"PronType": "Prs",
|
|||
|
"Person": "One",
|
|||
|
"Number": "Sing",
|
|||
|
"Case": "Dat",
|
|||
|
},
|
|||
|
"ти": {LEMMA: PRON_LEMMA, "POS": "PRON", "PronType": "Prs", "Person": "Two", "Number": "Sing", "Case": "Nom"},
|
|||
|
"тебе": {
|
|||
|
LEMMA: PRON_LEMMA,
|
|||
|
"POS": "PRON",
|
|||
|
"PronType": "Prs",
|
|||
|
"Person": "Two",
|
|||
|
"Number": "Sing",
|
|||
|
"Case": "Acc",
|
|||
|
},
|
|||
|
"те": {
|
|||
|
LEMMA: PRON_LEMMA,
|
|||
|
"POS": "PRON",
|
|||
|
"PronType": "Prs",
|
|||
|
"Person": "Two",
|
|||
|
"Number": "Sing",
|
|||
|
"Case": "Acc",
|
|||
|
},
|
|||
|
"тој": {
|
|||
|
LEMMA: PRON_LEMMA,
|
|||
|
"POS": "PRON",
|
|||
|
"PronType": "Prs",
|
|||
|
"Person": "Three",
|
|||
|
"Number": "Sing",
|
|||
|
"Gender": "Masc",
|
|||
|
"Case": "Nom",
|
|||
|
},
|
|||
|
"него": {
|
|||
|
LEMMA: PRON_LEMMA,
|
|||
|
"POS": "PRON",
|
|||
|
"PronType": "Prs",
|
|||
|
"Person": "Three",
|
|||
|
"Number": "Sing",
|
|||
|
"Gender": "Masc",
|
|||
|
"Case": "Acc",
|
|||
|
},
|
|||
|
"го": {
|
|||
|
LEMMA: PRON_LEMMA,
|
|||
|
"POS": "PRON",
|
|||
|
"PronType": "Prs",
|
|||
|
"Person": "Three",
|
|||
|
"Number": "Sing",
|
|||
|
"Gender": "Masc",
|
|||
|
"Case": "Acc",
|
|||
|
},
|
|||
|
"нему": {
|
|||
|
LEMMA: PRON_LEMMA,
|
|||
|
"POS": "PRON",
|
|||
|
"PronType": "Prs",
|
|||
|
"Person": "Three",
|
|||
|
"Number": "Sing",
|
|||
|
"Gender": "Masc",
|
|||
|
"Case": "Dat",
|
|||
|
},
|
|||
|
"му": {
|
|||
|
LEMMA: PRON_LEMMA,
|
|||
|
"POS": "PRON",
|
|||
|
"PronType": "Prs",
|
|||
|
"Person": "Three",
|
|||
|
"Number": "Sing",
|
|||
|
"Gender": "Masc",
|
|||
|
"Case": "Dat",
|
|||
|
},
|
|||
|
"таа": {
|
|||
|
LEMMA: PRON_LEMMA,
|
|||
|
"POS": "PRON",
|
|||
|
"PronType": "Prs",
|
|||
|
"Person": "Three",
|
|||
|
"Number": "Sing",
|
|||
|
"Gender": "Fem",
|
|||
|
"Case": "Nom",
|
|||
|
},
|
|||
|
"неа": {
|
|||
|
LEMMA: PRON_LEMMA,
|
|||
|
"POS": "PRON",
|
|||
|
"PronType": "Prs",
|
|||
|
"Person": "Three",
|
|||
|
"Number": "Sing",
|
|||
|
"Gender": "Fem",
|
|||
|
"Case": "Acc",
|
|||
|
},
|
|||
|
"ја": {
|
|||
|
LEMMA: PRON_LEMMA,
|
|||
|
"POS": "PRON",
|
|||
|
"PronType": "Prs",
|
|||
|
"Person": "Three",
|
|||
|
"Number": "Sing",
|
|||
|
"Gender": "Fem",
|
|||
|
"Case": "Acc",
|
|||
|
},
|
|||
|
"нејзе": {
|
|||
|
LEMMA: PRON_LEMMA,
|
|||
|
"POS": "PRON",
|
|||
|
"PronType": "Prs",
|
|||
|
"Person": "Three",
|
|||
|
"Number": "Sing",
|
|||
|
"Gender": "Fem",
|
|||
|
"Case": "Dat",
|
|||
|
},
|
|||
|
"ѝ": {
|
|||
|
LEMMA: PRON_LEMMA,
|
|||
|
"POS": "PRON",
|
|||
|
"PronType": "Prs",
|
|||
|
"Person": "Three",
|
|||
|
"Number": "Sing",
|
|||
|
"Gender": "Fem",
|
|||
|
"Case": "Dat",
|
|||
|
},
|
|||
|
"тоа": {
|
|||
|
LEMMA: PRON_LEMMA,
|
|||
|
"POS": "PRON",
|
|||
|
"PronType": "Prs",
|
|||
|
"Person": "Three",
|
|||
|
"Number": "Sing",
|
|||
|
"Gender": "Neut",
|
|||
|
},
|
|||
|
"ние": {
|
|||
|
LEMMA: PRON_LEMMA,
|
|||
|
"POS": "PRON",
|
|||
|
"PronType": "Prs",
|
|||
|
"Person": "One",
|
|||
|
"Number": "Plur",
|
|||
|
"Case": "Nom",
|
|||
|
},
|
|||
|
"нас": {
|
|||
|
LEMMA: PRON_LEMMA,
|
|||
|
"POS": "PRON",
|
|||
|
"PronType": "Prs",
|
|||
|
"Person": "One",
|
|||
|
"Number": "Plur",
|
|||
|
"Case": "Acc",
|
|||
|
},
|
|||
|
"нѐ": {
|
|||
|
LEMMA: PRON_LEMMA,
|
|||
|
"POS": "PRON",
|
|||
|
"PronType": "Prs",
|
|||
|
"Person": "One",
|
|||
|
"Number": "Plur",
|
|||
|
"Case": "Acc",
|
|||
|
},
|
|||
|
"нам": {
|
|||
|
LEMMA: PRON_LEMMA,
|
|||
|
"POS": "PRON",
|
|||
|
"PronType": "Prs",
|
|||
|
"Person": "One",
|
|||
|
"Number": "Plur",
|
|||
|
"Case": "Dat",
|
|||
|
},
|
|||
|
"ни": {
|
|||
|
LEMMA: PRON_LEMMA,
|
|||
|
"POS": "PRON",
|
|||
|
"PronType": "Prs",
|
|||
|
"Person": "One",
|
|||
|
"Number": "Plur",
|
|||
|
"Case": "Dat",
|
|||
|
},
|
|||
|
"вие": {
|
|||
|
LEMMA: PRON_LEMMA,
|
|||
|
"POS": "PRON",
|
|||
|
"PronType": "Prs",
|
|||
|
"Person": "Two",
|
|||
|
"Number": "Plur",
|
|||
|
"Case": "Nom",
|
|||
|
},
|
|||
|
"вас": {
|
|||
|
LEMMA: PRON_LEMMA,
|
|||
|
"POS": "PRON",
|
|||
|
"PronType": "Prs",
|
|||
|
"Person": "Two",
|
|||
|
"Number": "Plur",
|
|||
|
"Case": "Acc",
|
|||
|
},
|
|||
|
"ве": {
|
|||
|
LEMMA: PRON_LEMMA,
|
|||
|
"POS": "PRON",
|
|||
|
"PronType": "Prs",
|
|||
|
"Person": "Two",
|
|||
|
"Number": "Plur",
|
|||
|
"Case": "Acc",
|
|||
|
},
|
|||
|
"вам": {
|
|||
|
LEMMA: PRON_LEMMA,
|
|||
|
"POS": "PRON",
|
|||
|
"PronType": "Prs",
|
|||
|
"Person": "Two",
|
|||
|
"Number": "Plur",
|
|||
|
"Case": "Dat",
|
|||
|
},
|
|||
|
"ви": {
|
|||
|
LEMMA: PRON_LEMMA,
|
|||
|
"POS": "PRON",
|
|||
|
"PronType": "Prs",
|
|||
|
"Person": "Two",
|
|||
|
"Number": "Plur",
|
|||
|
"Case": "Dat",
|
|||
|
},
|
|||
|
"тие": {
|
|||
|
LEMMA: PRON_LEMMA,
|
|||
|
"POS": "PRON",
|
|||
|
"PronType": "Prs",
|
|||
|
"Person": "Three",
|
|||
|
"Number": "Plur",
|
|||
|
"Case": "Nom",
|
|||
|
},
|
|||
|
"нив": {
|
|||
|
LEMMA: PRON_LEMMA,
|
|||
|
"POS": "PRON",
|
|||
|
"PronType": "Prs",
|
|||
|
"Person": "Three",
|
|||
|
"Number": "Plur",
|
|||
|
"Case": "Acc",
|
|||
|
},
|
|||
|
"ги": {
|
|||
|
LEMMA: PRON_LEMMA,
|
|||
|
"POS": "PRON",
|
|||
|
"PronType": "Prs",
|
|||
|
"Person": "Three",
|
|||
|
"Number": "Plur",
|
|||
|
"Case": "Acc",
|
|||
|
},
|
|||
|
"ним": {
|
|||
|
LEMMA: PRON_LEMMA,
|
|||
|
"POS": "PRON",
|
|||
|
"PronType": "Prs",
|
|||
|
"Person": "Three",
|
|||
|
"Number": "Plur",
|
|||
|
"Case": "Dat",
|
|||
|
},
|
|||
|
"им": {
|
|||
|
LEMMA: PRON_LEMMA,
|
|||
|
"POS": "PRON",
|
|||
|
"PronType": "Prs",
|
|||
|
"Person": "Three",
|
|||
|
"Number": "Plur",
|
|||
|
"Case": "Dat",
|
|||
|
},
|
|||
|
|
|||
|
},
|
|||
|
|
|||
|
"VB": {
|
|||
|
word: {"POS": "AUX"}
|
|||
|
for word in ["сум", "има"]
|
|||
|
},
|
|||
|
"VBT": {
|
|||
|
"бев ": {
|
|||
|
LEMMA: "сум",
|
|||
|
"POS": "AUX",
|
|||
|
"VerbForm": "Fin",
|
|||
|
"Tense": "Past",
|
|||
|
"Person": "one"
|
|||
|
},
|
|||
|
|
|||
|
"имав": {
|
|||
|
LEMMA: "има",
|
|||
|
"POS": "AUX",
|
|||
|
"VerbForm": "Fin",
|
|||
|
"Tense": "Past",
|
|||
|
"Person": "one"
|
|||
|
|
|||
|
},
|
|||
|
|
|||
|
},
|
|||
|
"VBM": {
|
|||
|
"беше ": {
|
|||
|
LEMMA: "сум",
|
|||
|
"POS": "AUX",
|
|||
|
"VerbForm": "Fin",
|
|||
|
"Tense": "Past",
|
|||
|
"Person": "two"
|
|||
|
},
|
|||
|
"имаше": {
|
|||
|
LEMMA: "има",
|
|||
|
"POS": "AUX",
|
|||
|
"VerbForm": "Fin",
|
|||
|
"Tense": "Past",
|
|||
|
"Person": "two"
|
|||
|
|
|||
|
},
|
|||
|
|
|||
|
},
|
|||
|
"VBK": {
|
|||
|
"било ": {
|
|||
|
LEMMA: "сум",
|
|||
|
"POS": "AUX",
|
|||
|
"VerbForm": "Fin",
|
|||
|
"Tense": "Past",
|
|||
|
"Gender": "Neut",
|
|||
|
"Person": "three",
|
|||
|
},
|
|||
|
"била ": {
|
|||
|
LEMMA: "сум",
|
|||
|
"POS": "AUX",
|
|||
|
"VerbForm": "Fin",
|
|||
|
"Tense": "Past",
|
|||
|
"Gender": "Fem",
|
|||
|
"Person": "three",
|
|||
|
|
|||
|
},
|
|||
|
"бил ": {
|
|||
|
LEMMA: "сум",
|
|||
|
"POS": "AUX",
|
|||
|
"VerbForm": "Fin",
|
|||
|
"Tense": "Past",
|
|||
|
"Gender": "Masc",
|
|||
|
"Person": "three",
|
|||
|
|
|||
|
},
|
|||
|
"беше ": {
|
|||
|
LEMMA: "сум",
|
|||
|
"POS": "AUX",
|
|||
|
"VerbForm": "Fin",
|
|||
|
"Tense": "Past",
|
|||
|
"Person": "three",
|
|||
|
"Person": "three",
|
|||
|
},
|
|||
|
"имаше": {
|
|||
|
LEMMA: "има",
|
|||
|
"POS": "AUX",
|
|||
|
"VerbForm": "Fin",
|
|||
|
"Tense": "Past",
|
|||
|
"Person": "three",
|
|||
|
},
|
|||
|
|
|||
|
},
|
|||
|
"VBTT": {
|
|||
|
"бевме ": {
|
|||
|
LEMMA: "сум",
|
|||
|
"POS": "AUX",
|
|||
|
"VerbForm": "Fin",
|
|||
|
"Tense": "Past",
|
|||
|
|
|||
|
},
|
|||
|
"имавме": {
|
|||
|
LEMMA: "има",
|
|||
|
"POS": "AUX",
|
|||
|
"VerbForm": "Fin",
|
|||
|
"Tense": "Past",
|
|||
|
|
|||
|
},
|
|||
|
|
|||
|
},
|
|||
|
"VBMM": {
|
|||
|
"бевте ": {
|
|||
|
LEMMA: "сум",
|
|||
|
"POS": "AUX",
|
|||
|
"VerbForm": "Fin",
|
|||
|
"Tense": "Past",
|
|||
|
|
|||
|
},
|
|||
|
"имавте": {
|
|||
|
LEMMA: "има",
|
|||
|
"POS": "AUX",
|
|||
|
"VerbForm": "Fin",
|
|||
|
"Tense": "Past",
|
|||
|
|
|||
|
},
|
|||
|
|
|||
|
},
|
|||
|
"VBKK": {
|
|||
|
"биле ": {
|
|||
|
LEMMA: "сум",
|
|||
|
"POS": "AUX",
|
|||
|
"VerbForm": "Fin",
|
|||
|
"Tense": "Past",
|
|||
|
"Gender": "Plur",
|
|||
|
|
|||
|
},
|
|||
|
"беа ": {
|
|||
|
LEMMA: "сум",
|
|||
|
"POS": "AUX",
|
|||
|
"VerbForm": "Fin",
|
|||
|
"Tense": "Past",
|
|||
|
|
|||
|
},
|
|||
|
"имаа": {
|
|||
|
LEMMA: "има",
|
|||
|
"POS": "AUX",
|
|||
|
"VerbForm": "Fin",
|
|||
|
"Tense": "Past",
|
|||
|
|
|||
|
},
|
|||
|
|
|||
|
},
|
|||
|
"VBP": {
|
|||
|
"сум ": {
|
|||
|
LEMMA: "сум",
|
|||
|
"POS": "AUX",
|
|||
|
"VerbForm": "Fin",
|
|||
|
"Tense": "Pres",
|
|||
|
|
|||
|
},
|
|||
|
"имам": {
|
|||
|
LEMMA: "има",
|
|||
|
"POS": "AUX",
|
|||
|
"VerbForm": "Fin",
|
|||
|
"Tense": "Pres",
|
|||
|
|
|||
|
},
|
|||
|
|
|||
|
},
|
|||
|
"VBV": {
|
|||
|
"си ": {
|
|||
|
LEMMA: "сум",
|
|||
|
"POS": "AUX",
|
|||
|
"VerbForm": "Fin",
|
|||
|
"Tense": "Pres",
|
|||
|
|
|||
|
},
|
|||
|
"имаш": {
|
|||
|
LEMMA: "има",
|
|||
|
"POS": "AUX",
|
|||
|
"VerbForm": "Fin",
|
|||
|
"Tense": "Pres",
|
|||
|
|
|||
|
},
|
|||
|
|
|||
|
},
|
|||
|
"VBZ": {
|
|||
|
"е ": {
|
|||
|
LEMMA: "сум",
|
|||
|
"POS": "AUX",
|
|||
|
"VerbForm": "Fin",
|
|||
|
"Tense": "Pres",
|
|||
|
|
|||
|
},
|
|||
|
"има": {
|
|||
|
LEMMA: "има",
|
|||
|
"POS": "AUX",
|
|||
|
"VerbForm": "Fin",
|
|||
|
"Tense": "Pres",
|
|||
|
|
|||
|
},
|
|||
|
|
|||
|
},
|
|||
|
"VBPP": {
|
|||
|
"сме": {
|
|||
|
LEMMA: "сум",
|
|||
|
"POS": "AUX",
|
|||
|
"VerbForm": "Fin",
|
|||
|
"Tense": "Pres",
|
|||
|
"Number": "Plur",
|
|||
|
},
|
|||
|
"имаме": {
|
|||
|
LEMMA: "има",
|
|||
|
"POS": "AUX",
|
|||
|
"VerbForm": "Fin",
|
|||
|
"Tense": "Pres",
|
|||
|
"Number": "Plur",
|
|||
|
},
|
|||
|
},
|
|||
|
"VBVV": {
|
|||
|
"сте": {
|
|||
|
LEMMA: "сум",
|
|||
|
"POS": "AUX",
|
|||
|
"VerbForm": "Fin",
|
|||
|
"Tense": "Pres",
|
|||
|
"Number": "Plur",
|
|||
|
},
|
|||
|
"имате": {
|
|||
|
LEMMA: "има",
|
|||
|
"POS": "AUX",
|
|||
|
"VerbForm": "Fin",
|
|||
|
"Tense": "Pres",
|
|||
|
"Number": "Plur",
|
|||
|
},
|
|||
|
|
|||
|
},
|
|||
|
"VBZZ": {
|
|||
|
"се": {
|
|||
|
LEMMA: "сум",
|
|||
|
"POS": "AUX",
|
|||
|
"VerbForm": "Fin",
|
|||
|
"Tense": "Pres",
|
|||
|
"Number": "Plur",
|
|||
|
},
|
|||
|
"имаат": {
|
|||
|
LEMMA: "има",
|
|||
|
"POS": "AUX",
|
|||
|
"VerbForm": "Fin",
|
|||
|
"Tense": "Past",
|
|||
|
"Number": "Plur",
|
|||
|
},
|
|||
|
|
|||
|
},
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
for tag, rules in MORPH_RULES.items():
|
|||
|
for key, attrs in dict(rules).items():
|
|||
|
rules[key.title()] = attrs
|