mystem

package module
v0.0.0-...-d2c6010 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 5, 2016 License: MIT Imports: 3 Imported by: 0

README

go-mystem Build Status GoDoc Go Report Card Coverage Status

CGo bindings to Yandex.Mystem - russian morphology analyzer.

Install

$ wget https://github.com/yandex/tomita-parser/releases/download/v1.0/libmystem_c_binding.so.linux_x64.zip
$ unzip libmystem_c_binding.so.linux_x64.zip
$ sudo cp libmystem_c_binding.so /usr/lib/
$ sudo ln -s /usr/lib/libmystem_c_binding.so /usr/lib/libmystem_c_binding.so.1
$ go get -u github.com/dveselov/mystem

Usage

package main

import (
    "fmt"
)

import "github.com/dveselov/mystem"

func main() {
    analyses := mystem.NewAnalyses("маша")
    defer analyses.Close()
    fmt.Println(fmt.Sprintf("Analyze of '%s':", "маша"))
    for i := 0; i < analyses.Count(); i++ {
        lemma := analyses.GetLemma(i)
        grammemes := lemma.StemGram()
        fmt.Println(fmt.Sprintf("%d. %s - %v", i+1, lemma.Text(), grammemes))
    }
}

Output'll looks like this:

Analyze of 'маша':
1. маша - [136 155 191 201]
2. махать - [137 196 206]

License

Source code of go-mystem is licensed under MIT license, but Yandex.Mystem have their own EULA (allows commercial use), that you must accept.

Documentation

Index

Constants

View Source
const (
	Dictionary  = 0        // слово из словаря
	Bastard     = 1        // не словарное
	Sob         = 2        // из "быстрого словаря"
	Prefixoid   = 4        // словарное + стандартный префикс (авто- мото- кино- фото-) всегда в компании с Bastard или Sob
	Foundling   = 8        // непонятный набор букв, но проходящий в алфавит
	BadRequest  = 16       // доп. флаг.: "плохая лемма" при наличии "хорошей" альтернативы ("махать" по форме "маша")
	FromEnglish = 65536    // переведено с английского
	ToEnglish   = 131072   // переведено на английский
	Untranslit  = 262144   // "переведено" с транслита
	Overrode    = 1048576  // текст леммы был перезаписан
	Fix         = 16777216 // слово из фикс-листа
)

Lemma quality

View Source
const (
	Invalid          = 0
	Before           = 126
	Postposition     = 127          // POSTP
	First            = Postposition // same as Postposition
	Adjective        = 128          // A      // Nomenus
	Adverb           = 129          // ADV
	Composite        = 130          // COM(P)
	Conjunction      = 131          // CONJ
	Interjunction    = 132          // INTJ
	Numeral          = 133          // NUM
	Particle         = 134          // PCL
	Preposition      = 135          // PRE(P)
	Substantive      = 136          // S
	Verb             = 137          // V
	AdjNumeral       = 138          // ANUM
	AdjPronoun       = 139          // APRO
	AdvPronoun       = 140          // ADVPRO
	SubstPronoun     = 141          // SPRO
	Article          = 142          // артикли
	PartOfIdiom      = 143          // части идиом (прежде всего иностр. слов)
	LastPartOfSpeech = PartOfIdiom  // same as PartOfIdiom
	Reserved         = 144          // зарезервировано    // особые пометы
	Abbreviation     = 145          // сокращения
	IrregularStem    = 146          // чередование в корне (или супплетивизм)
	Informal         = 147          // разговорная форма
	Distort          = 148          // искаженная форма
	Contracted       = 149          // стяжённая форма (фр. q' и т.п.)
	Obscene          = 150          // обсц
	Rare             = 151          // редк
	Awkward          = 152          // затр
	Obsolete         = 153          // устар
	SubstAdjective   = 154          // адъект
	FirstName        = 155          // имя
	Surname          = 156          // фам
	Patr             = 157          // отч
	Geo              = 158          // гео
	Proper           = 159          // собств
	Present          = 160          // наст  // Tempus
	Notpast          = 161          // непрош
	Past             = 162          // прош
	Future           = 163          // буд. время (фр., ит.)
	Past2            = 164          // фр. passe simple, ит. passato remoto
	Nominative       = 165          // им    // Casus
	Genitive         = 166          // род
	Dative           = 167          // дат
	Accusative       = 168          // вин
	Instrumental     = 169          // твор
	Ablative         = 170          // пр
	Partitive        = 171          // парт(вин2)
	Locative         = 172          // местн(пр2)
	Vocative         = 173          // звательный
	Singular         = 174          // ед    // Numerus
	Plural           = 175          // мн
	Gerund           = 176          // деепр // Modus
	Infinitive       = 177          // инф
	Participle       = 178          // прич
	Indicative       = 179          // изъяв
	Imperative       = 180          // пов
	Conditional      = 181          // усл. наклонение (фр. =ит.)
	Subjunctive      = 182          // сослаг. накл. (фр. =ит.)
	Short            = 183          // кр    // Gradus
	Full             = 184          // полн
	Superlative      = 185          // прев
	Comparative      = 186          // срав
	Possessive       = 187          // притяж
	Person1          = 188          // 1-л   // Personae
	Person2          = 189          // 2-л
	Person3          = 190          // 3-л
	Feminine         = 191          // жен   // Gender (genus)
	Masculine        = 192          // муж
	Neuter           = 193          // сред
	MasFem           = 194          // мж
	Perfect          = 195          // сов   // Perfectum-imperfectum (Accept)
	Imperfect        = 196          // несов
	Passive          = 197          // страд // Voice (Genus)
	Active           = 198          // действ
	Reflexive        = 199          // возвратные
	Impersonal       = 200          // безличные
	Animated         = 201          // од    // Animated
	Inanimated       = 202          // неод
	Praedic          = 203          // прдк
	Parenth          = 204          // вводн
	Transitive       = 205          // пе     //transitivity
	Intransitive     = 206          // нп
	Definite         = 207          // опред. члены   //definiteness
	Indefinite       = 208          // неопред. члены
	SimConj          = 209          // сочинит. (для союзов)
	SubConj          = 210          // подчинит. (для союзов)
	PronounConj      = 211          // местоимение-союз ("я знаю, _что_ вы сделали прошлым летом")
	CorrelateConj    = 212          // вторая зависимая часть парных союзов - "если ... _то_ ... ", "как ... _так_ и ..."
	AuxVerb          = 213          //вспомогательный глагол в аналитической форме ("_будем_ думать")
)

Lemma grammemes

Variables

This section is empty.

Functions

This section is empty.

Types

type Analyses

type Analyses struct {
	// contains filtered or unexported fields
}

func NewAnalyses

func NewAnalyses(word string) *Analyses

func (*Analyses) Close

func (analyses *Analyses) Close()

func (*Analyses) Count

func (analyses *Analyses) Count() int

func (*Analyses) GetLemma

func (analyses *Analyses) GetLemma(i int) *Lemma

type Form

type Form struct {
	// contains filtered or unexported fields
}

func (*Form) FlexGram

func (form *Form) FlexGram() [][]int

func (*Form) FlexGramNum

func (form *Form) FlexGramNum() int

func (*Form) StemGram

func (form *Form) StemGram() []int

func (*Form) Text

func (form *Form) Text() string

func (*Form) TextLength

func (form *Form) TextLength() C.int

type Forms

type Forms struct {
	// contains filtered or unexported fields
}

func (*Forms) Close

func (forms *Forms) Close()

func (*Forms) Count

func (forms *Forms) Count() int

func (*Forms) Get

func (forms *Forms) Get(id int) *Form

type Lemma

type Lemma struct {
	// contains filtered or unexported fields
}

func (*Lemma) FlexGram

func (lemma *Lemma) FlexGram() [][]int

func (*Lemma) FlexGramNum

func (lemma *Lemma) FlexGramNum() int

func (*Lemma) Form

func (lemma *Lemma) Form() string

func (*Lemma) FormLength

func (lemma *Lemma) FormLength() C.int

func (*Lemma) GenerateForms

func (lemma *Lemma) GenerateForms() *Forms

func (*Lemma) Quality

func (lemma *Lemma) Quality() int

func (*Lemma) StemGram

func (lemma *Lemma) StemGram() []int

func (*Lemma) Text

func (lemma *Lemma) Text() string

func (*Lemma) TextLength

func (lemma *Lemma) TextLength() C.int

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL