2023-09-11 20:31:54 +03:00
|
|
|
// Module: Natural language model declarations.
|
|
|
|
|
2023-09-14 16:53:38 +03:00
|
|
|
|
|
|
|
// ====== Morphology ========
|
2023-09-19 17:55:17 +03:00
|
|
|
export enum Grammeme {
|
2023-09-14 16:53:38 +03:00
|
|
|
// Части речи
|
|
|
|
NOUN = 'NOUN',
|
|
|
|
ADJF = 'ADJF',
|
|
|
|
ADJS = 'ADJS',
|
|
|
|
COMP = 'COMP',
|
|
|
|
VERB = 'VERB',
|
|
|
|
INFN = 'INFN',
|
|
|
|
PRTF = 'PRTF',
|
|
|
|
PRTS = 'PRTS',
|
|
|
|
GRND = 'GRND',
|
|
|
|
NUMR = 'NUMR',
|
|
|
|
ADVB = 'ADVB',
|
|
|
|
NPRO = 'NPRO',
|
|
|
|
PRED = 'PRED',
|
|
|
|
PREP = 'PREP',
|
|
|
|
CONJ = 'CONJ',
|
|
|
|
PRCL = 'PRCL',
|
|
|
|
INTJ = 'INTJ',
|
|
|
|
PNCT = 'PNCT',
|
|
|
|
|
|
|
|
// Одушевленность
|
|
|
|
anim = 'anim',
|
|
|
|
inan = 'inan',
|
|
|
|
|
|
|
|
// Род
|
|
|
|
masc = 'masc',
|
|
|
|
femn = 'femn',
|
|
|
|
neut = 'neut',
|
|
|
|
|
|
|
|
// Число
|
|
|
|
sing = 'sing',
|
|
|
|
plur = 'plur',
|
|
|
|
|
|
|
|
// Падеж (основные)
|
|
|
|
nomn = 'nomn',
|
|
|
|
gent = 'gent',
|
|
|
|
datv = 'datv',
|
|
|
|
accs = 'accs',
|
|
|
|
ablt = 'ablt',
|
|
|
|
loct = 'loct',
|
|
|
|
|
|
|
|
// Совершенный / несовершенный вид
|
|
|
|
perf = 'perf',
|
|
|
|
impf = 'impf',
|
|
|
|
|
|
|
|
// Переходность
|
|
|
|
tran = 'tran',
|
|
|
|
intr = 'intr',
|
|
|
|
|
|
|
|
// Время
|
|
|
|
pres = 'pres',
|
|
|
|
past = 'past',
|
|
|
|
futr = 'futr',
|
|
|
|
|
|
|
|
// Лицо
|
|
|
|
per1 = '1per',
|
|
|
|
per2 = '2per',
|
|
|
|
per3 = '3per',
|
|
|
|
|
|
|
|
// Наклонение
|
|
|
|
indc = 'indc',
|
|
|
|
impr = 'impr',
|
|
|
|
|
|
|
|
// Включение говорящего в действие
|
|
|
|
incl = 'incl',
|
|
|
|
excl = 'excl',
|
|
|
|
|
|
|
|
// Залог
|
|
|
|
actv = 'actv',
|
|
|
|
pssv = 'pssv',
|
|
|
|
|
|
|
|
// Стиль речи
|
|
|
|
Infr = 'Infr', // Неформальный
|
|
|
|
Slng = 'Slng', // Жаргон
|
|
|
|
Arch = 'Arch', // Устаревший
|
|
|
|
Litr = 'Litr', // Литературный
|
|
|
|
|
|
|
|
// Аббревиатура
|
|
|
|
Abbr = 'Abbr'
|
|
|
|
}
|
|
|
|
|
|
|
|
export const PartOfSpeech = [
|
2023-09-19 17:55:17 +03:00
|
|
|
Grammeme.NOUN, Grammeme.ADJF, Grammeme.ADJS, Grammeme.COMP,
|
|
|
|
Grammeme.VERB, Grammeme.INFN, Grammeme.PRTF, Grammeme.PRTS,
|
|
|
|
Grammeme.GRND, Grammeme.ADVB, Grammeme.NPRO, Grammeme.PRED,
|
|
|
|
Grammeme.PREP, Grammeme.CONJ, Grammeme.PRCL, Grammeme.INTJ,
|
|
|
|
Grammeme.PNCT
|
|
|
|
];
|
2023-09-14 16:53:38 +03:00
|
|
|
|
|
|
|
export const Gender = [
|
2023-09-19 17:55:17 +03:00
|
|
|
Grammeme.masc, Grammeme.femn, Grammeme.neut
|
|
|
|
];
|
2023-09-14 16:53:38 +03:00
|
|
|
|
|
|
|
export const Case = [
|
2023-09-19 17:55:17 +03:00
|
|
|
Grammeme.nomn, Grammeme.gent, Grammeme.datv,
|
|
|
|
Grammeme.accs, Grammeme.ablt, Grammeme.loct
|
|
|
|
];
|
|
|
|
|
|
|
|
// ====== Reference resolution =====
|
|
|
|
export interface IRefsText {
|
|
|
|
text: string
|
|
|
|
}
|
|
|
|
|
|
|
|
export enum ReferenceType {
|
|
|
|
ENTITY = 'entity',
|
|
|
|
SYNTACTIC = 'syntax'
|
|
|
|
}
|
|
|
|
export interface IEntityReference {
|
|
|
|
entity: string
|
|
|
|
form: string
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface ISyntacticReference {
|
|
|
|
offset: number
|
|
|
|
nominal: string
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface ITextPosition {
|
|
|
|
start: number
|
|
|
|
finish: number
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface IResolvedReference {
|
|
|
|
type: ReferenceType
|
|
|
|
data: IEntityReference | ISyntacticReference
|
|
|
|
pos_input: ITextPosition
|
|
|
|
pos_output: ITextPosition
|
|
|
|
}
|
|
|
|
|
|
|
|
export interface IReferenceData {
|
|
|
|
input: string
|
|
|
|
output: string
|
|
|
|
refs: IResolvedReference[]
|
|
|
|
}
|