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.