Documentation ¶
Index ¶
- Constants
- Variables
- type Attr
- type Category
- type CategoryList
- type Dictionary
- type Grammeme
- type Grammemes
- type Lemma
- type LemmaList
- type Lemmata
- type Link
- type LinkList
- type LinkType
- type LinkTypes
- type Links
- type Loader
- func (loader Loader) DataPath() string
- func (loader Loader) DownloadUpdate() (updated bool, err error)
- func (loader Loader) IsDownloadExists() bool
- func (loader Loader) IsUnpackedExists() bool
- func (loader Loader) IsUpdateRequired() (bool, error)
- func (loader *Loader) LoadIndex() (mainIndex *index.Index, err error)
- func (loader *Loader) ParseUpdate(fromFile string, toFile string) (err error)
- func (loader *Loader) SaveIndex(mainIndex *index.Index, toFile string) (err error)
- func (loader *Loader) SetDataPath(dataPath string)
- func (loader Loader) UnpackUpdate() (err error)
- func (loader Loader) Update(forceRecompile bool) (err error)
- type Parser
- func (parser *Parser) ProcessCharData(data xml.CharData) error
- func (parser *Parser) ProcessComment(_ xml.Comment) error
- func (parser *Parser) ProcessDirective(_ xml.Directive) error
- func (parser *Parser) ProcessEndElement(element xml.EndElement) error
- func (parser *Parser) ProcessProcInst(_ xml.ProcInst) error
- func (parser *Parser) ProcessStartElement(element xml.StartElement) error
- func (parser *Parser) SetMaxLemmas(maxLemmas int)
- type Restriction
- type RestrictionItem
- type Restrictions
- type WordForm
- type WordFormList
Constants ¶
const ( DomainName = "opencorpora" RemoteURL = "http://opencorpora.org/files/export/dict/dict.opcorpora.xml.bz2" LocalSourceFilename = "dict.xml.bz2" LocalUnpackedFilename = "dict.xml" LocalCompiledFilename = "opencorpora.dat" )
Variables ¶
var ErrControlledStop = fmt.Errorf("%w: controlled stop", Error)
ErrControlledStop raised when limit to parse items set.
var Error = errors.New("opencorpora")
Functions ¶
This section is empty.
Types ¶
type Attr ¶
type CategoryList ¶
type CategoryList []*Category
CategoryList provides a category list.
func (CategoryList) GrammemeNames ¶
func (c CategoryList) GrammemeNames() []dag.TagName
GrammemeNames возвращает список имён граммем, заданных в списке категорий.
func (CategoryList) String ¶
func (c CategoryList) String() string
type Dictionary ¶
type Dictionary struct { // VersionAttr contains dictionary version. VersionAttr float64 `xml:"version,attr"` // RevisionAttr provides revision number. RevisionAttr int `xml:"revision,attr"` // Grammemes provides grammar categories definitions. Grammemes *Grammemes `xml:"grammemes"` // Restrictions provides categories application restrictions. Restrictions *Restrictions `xml:"restrictions"` // Lemmata provides main dictionary lemma set. Lemmata *Lemmata `xml:"lemmata"` // Linktypes provides lemma link types. Linktypes *LinkTypes `xml:"link_types"` // Links provides lemma links. Links *Links `xml:"links"` }
Dictionary represents OpenCorpora dictionary utf-8 XML root. Source file available by link http://opencorpora.org/?page=downloads, file format described by http://opencorpora.org/?page=export. Latest packed dictionary available in BZip2 at http://opencorpora.org/files/export/dict/dict.opcorpora.xml.bz2 or as Zip at http://opencorpora.org/files/export/dict/dict.opcorpora.xml.zip.
type Grammeme ¶
type Grammeme struct { // ParentAttr provides parent category TagName. ParentAttr dag.TagName `xml:"parent,attr"` // Наименование категории. Аббревиатура от латинского или англоязычного наименования. Всегда 4 символа Name dag.TagName `xml:"name"` // Кириллическая аббревиатура наименования. Alias string `xml:"alias"` // Полное наименование на русском языке Description string `xml:"description"` }
Grammeme provides grammar category definition structure as provided by OpenCorpora
type Grammemes ¶
type Grammemes struct {
Grammeme []*Grammeme `xml:"grammeme"`
}
Grammemes provides a list of known grammar categories&
type Lemma ¶
type Lemma struct { // Уникальный идентификатор слова IdAttr int `xml:"id,attr"` // Номер ревизии RevAttr int `xml:"rev,attr"` // Базовая форма L WordForm `xml:"l"` // Другие формы этой-же части речи F WordFormList `xml:"f"` }
Lemma provides grouping of word base form and its variations tagged by grammar categories.
type Lemmata ¶
type Lemmata struct {
Items LemmaList `xml:"lemma"`
}
Lemmata provides OpenCorpora lemma corpus.
type Link ¶
type Link struct { IdAttr uint32 `xml:"id,attr"` FromAttr uint32 `xml:"from,attr"` ToAttr uint32 `xml:"to,attr"` TypeAttr uint32 `xml:"type,attr"` }
Link defined lemma's link data structure. Provides possibilities to switch from one form to another one's.
type LinkType ¶
type LinkType struct {
IDAttr int `xml:"id,attr"`
}
LinkType определяет тип связей между частями речи. Задаёт возможный тип преобразования из одной части речи в другую. Используется в определении связи между леммами Link.
type LinkTypes ¶
type LinkTypes struct {
Type []*LinkType `xml:"type"`
}
LinkTypes provides possible link types list.
type Links ¶
type Links struct {
Items LinkList `xml:"link"`
}
Links provides a list of known links.
type Loader ¶
Loader provides OpenCorpora dictionary parsing utilities.
func (Loader) DownloadUpdate ¶
func (Loader) IsDownloadExists ¶
IsDownloadExists returns true if downloaded file exists at expected path.
func (Loader) IsUnpackedExists ¶
IsUnpackedExists returns true if downloaded and unpacked file exists at expected path.
func (Loader) IsUpdateRequired ¶
func (*Loader) ParseUpdate ¶
func (*Loader) SetDataPath ¶
func (Loader) UnpackUpdate ¶
type Parser ¶
func (*Parser) ProcessEndElement ¶
func (parser *Parser) ProcessEndElement(element xml.EndElement) error
func (*Parser) ProcessStartElement ¶
func (parser *Parser) ProcessStartElement(element xml.StartElement) error
func (*Parser) SetMaxLemmas ¶
type Restriction ¶
type Restriction struct { // Тип аттрибута задаёт тип ограничения совместного использования категорий // - obligatory: обязательная категория left для категории right // - maybe: возможная категория left для категории right // - forbidden: запретная категория left для категории right TypeAttr string `xml:"type,attr"` // Тип настройки ограничения: // - 0: ручная настройка // - 1: автоматическая настройка AutoAttr int `xml:"auto,attr"` // Категория, с которой должна, может или не может использоваться категория Right Left *RestrictionItem `xml:"left"` // Категория, которая должна, может или не может использоваться с категорией Left Right *RestrictionItem `xml:"right"` }
Требование использования граммем описывают соотношения между грамматическими категориями, например, необходимость указания категории падежа для существительных или возможность использования общего рода для существительных же.
type RestrictionItem ¶
type RestrictionItem struct {
TypeAttr string `xml:"type,attr"`
}
Грамматическая категория как составная часть ограничения. Может принимать значения: - lemma: слово не может принимать данную категорию при выполнении каких-либо условий (см. Требование использования) - form: слово не может принимать данную форму категории при выполнении каких-либо условий (см. Требование использования)
type Restrictions ¶
type Restrictions struct { // Список ограничений Restr []*Restriction `xml:"restr"` }
Restrictions Список ограничений задаёт все известные ограничения и требования совместного использования категорий.
type WordForm ¶
type WordForm struct { Form string `xml:"t,attr"` G CategoryList `xml:"grammemes"` }
WordForm provides word form and categories list.
func (WordForm) GetTagsFromSet ¶
GetTagsFromSet takes TagName's list from word form.