Home

Awesome

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.