pub struct MorphAnalyzer {
pub fst: Map<Vec<u8>>,
pub word_parses: Vec<Vec<Parse>>,
pub tags: Vec<SmallVec<[Grammem; 8]>>,
pub lemmas: Vec<SmallString<[u8; 16]>>,
pub paradigms: Vec<Vanga>,
pub lemmas_rows: Vec<Vec<u32>>,
}
Expand description
Морфологический анализатор, образованный из словаря.
Fields§
§fst: Map<Vec<u8>>
§word_parses: Vec<Vec<Parse>>
§lemmas: Vec<SmallString<[u8; 16]>>
§paradigms: Vec<Vanga>
§lemmas_rows: Vec<Vec<u32>>
Implementations§
Source§impl MorphAnalyzer
impl MorphAnalyzer
Source§impl MorphAnalyzer
impl MorphAnalyzer
Source§impl MorphAnalyzer
impl MorphAnalyzer
Sourcepub fn from_dictionary(dictionary: Dictionary, fst: PathBuf) -> MopsResult<Self>
pub fn from_dictionary(dictionary: Dictionary, fst: PathBuf) -> MopsResult<Self>
Создание анализатора из словаря.
Sourcepub fn parse_word(&self, word: &str) -> Result<ParsedWords, ParseErr>
pub fn parse_word(&self, word: &str) -> Result<ParsedWords, ParseErr>
Парсинг слова.
Sourcepub fn normalized_word(&self, word: &str) -> Result<NormalizedWords, ParseErr>
pub fn normalized_word(&self, word: &str) -> Result<NormalizedWords, ParseErr>
Нормализация слова.
Source§impl MorphAnalyzer
Основная функциональность связана с разбиением слова по морфемам,
определением парадигм и поиском всех возможных тэгов и нормальных форм.
impl MorphAnalyzer
Основная функциональность связана с разбиением слова по морфемам, определением парадигм и поиском всех возможных тэгов и нормальных форм.
Sourcepub fn create<P: AsRef<Path>>(
dict_path: P,
out_dir: P,
lang: Language,
) -> MopsResult<Dictionary>
pub fn create<P: AsRef<Path>>( dict_path: P, out_dir: P, lang: Language, ) -> MopsResult<Dictionary>
Первичное создание словаря.
dict_path
- путь до словаря OpenCorpora
out_dir
- место, где будет храниться fst и бинарная часть словаря для будущего открытия
language
- язык, по дефолту и пока единственный, Русский.
Sourcepub fn create_with_reader<P: AsRef<Path>>(
dict_path: P,
out_dir: P,
lang: Language,
) -> MopsResult<Dictionary>
pub fn create_with_reader<P: AsRef<Path>>( dict_path: P, out_dir: P, lang: Language, ) -> MopsResult<Dictionary>
Первичное создание словаря по переданному пути с чтением из буфера.
Чтение из буфера несколько медленнее, чем из строки, но занимает сильно меньше памяти.
dict_path
- путь до словаря OpenCorpora
out_dir
- место, где будет храниться fst и бинарная часть словаря для будущего открытия
language
- язык, по дефолту и пока единственный, Русский.
Sourcepub fn init<P: AsRef<Path>>(dictionary: Dictionary, dir: P) -> MopsResult<Self>
pub fn init<P: AsRef<Path>>(dictionary: Dictionary, dir: P) -> MopsResult<Self>
Инициализация из словаря.
Отличается от словаря отсутствием мета-информации и тем, что поднимает в оперативную память fst-словарь.
Sourcepub fn open<P: AsRef<Path>>(path: P) -> MopsResult<Self>
pub fn open<P: AsRef<Path>>(path: P) -> MopsResult<Self>
Открытие словаря из dict.json
файла и инициализация MorphAnalyzer
-а.
Sourcepub fn open_from_reader<P: AsRef<Path>>(path: P) -> MopsResult<Self>
pub fn open_from_reader<P: AsRef<Path>>(path: P) -> MopsResult<Self>
Открытие словаря из dict.json
файла, используя Reader для файла,
и инициализация MorphAnalyzer
-а.
WARN! ОЧЕНЬ долгий процесс чтения. Рекомендуется использование только при очень ограниченной оперативной памяти.
Sourcepub fn parse(&self, word: &str) -> MopsResult<ParsedWords>
pub fn parse(&self, word: &str) -> MopsResult<ParsedWords>
Парсинг слова. Получение всех возможных результатов.
Все варианты парсинга возвращаются в отсортированном порядке, гарантируя единообразие выдачи между запусками.
Sourcepub fn normalize(&self, word: &str) -> MopsResult<NormalizedWords>
pub fn normalize(&self, word: &str) -> MopsResult<NormalizedWords>
Нормализация слова. Получение всех возможных результатов.
Все варианты нормализации возвращаются в отсортированном порядке, гарантируя единообразие выдачи между запусками.
Sourcepub fn parse_get(
&self,
word: &str,
index: usize,
) -> MopsResult<Option<ParsedWord>>
pub fn parse_get( &self, word: &str, index: usize, ) -> MopsResult<Option<ParsedWord>>
Парсинг слова и взятие нужного по индексу набора граммем.
Sourcepub fn parse_grammemes(
&self,
word: &str,
grammemes: Vec<Grammem>,
) -> MopsResult<Option<ParsedWord>>
pub fn parse_grammemes( &self, word: &str, grammemes: Vec<Grammem>, ) -> MopsResult<Option<ParsedWord>>
Парсинг слова и взятие нужного слова в зависимости от нужного набора граммем.
Sourcepub fn normalize_get(
&self,
word: &str,
index: usize,
) -> MopsResult<Option<NormalizedWord>>
pub fn normalize_get( &self, word: &str, index: usize, ) -> MopsResult<Option<NormalizedWord>>
Нормализация слова и взятие по индексу формы слова с ее граммемами.
Sourcepub fn normalize_grammemes(
&self,
word: &str,
grammemes: Vec<Grammem>,
) -> MopsResult<Option<NormalizedWord>>
pub fn normalize_grammemes( &self, word: &str, grammemes: Vec<Grammem>, ) -> MopsResult<Option<NormalizedWord>>
Нормализация слова и взятие нужного слова в зависимости от нужного набора граммем.
Sourcepub fn inflect_inizio(&self, word: &str) -> MopsResult<Option<InflectWords>>
pub fn inflect_inizio(&self, word: &str) -> MopsResult<Option<InflectWords>>
Приведение к начальной форме слова. Начальная форма может отличаться от нормализованной.
Sourcepub fn inflect_forms(
&self,
word: &str,
grammemes: Vec<Grammem>,
) -> MopsResult<Option<InflectWords>>
pub fn inflect_forms( &self, word: &str, grammemes: Vec<Grammem>, ) -> MopsResult<Option<InflectWords>>
Приведение слова к нужной форме слова с указанными граммемами.
Sourcepub fn inflect_parsed(
&self,
parse: ParsedWord,
grammemes: Vec<Grammem>,
) -> MopsResult<Option<InflectWords>>
pub fn inflect_parsed( &self, parse: ParsedWord, grammemes: Vec<Grammem>, ) -> MopsResult<Option<InflectWords>>
Приведение разобранного слова к нужной форме слова с указанными граммемами.
Sourcepub fn declension(&self, word: &str) -> MopsResult<Vec<InflectWords>>
pub fn declension(&self, word: &str) -> MopsResult<Vec<InflectWords>>
Полное склонение/спряжение слова по всем формам.
WARN: Не быстрая функция. Если есть необходимый набор слов,
который нужно будет искать во всех формах в тексте, лучше сделать вызов declension()
ко всем словам в начале работы приложения.
Sourcepub fn declension_get(
&self,
word: &str,
index: usize,
) -> MopsResult<Option<InflectWords>>
pub fn declension_get( &self, word: &str, index: usize, ) -> MopsResult<Option<InflectWords>>
Полное склонение/спряжение слова и взятие нужного по индексу результата.
WARN: Не быстрая функция. Если есть необходимый набор слов,
который нужно будет искать во всех формах в тексте, лучше сделать вызов declension_get()
ко всем словам в начале работы приложения.
Sourcepub fn declension_parsed(
&self,
parse: &ParsedWord,
) -> MopsResult<Option<InflectWords>>
pub fn declension_parsed( &self, parse: &ParsedWord, ) -> MopsResult<Option<InflectWords>>
Полное склонение/спряжение разобранного слова.
WARN: Не быстрая функция. Если есть необходимый набор слов,
который нужно будет искать во всех формах в тексте, лучше сделать вызов declension_parsed()
ко всем словам в начале работы приложения.
Trait Implementations§
Source§impl Allocative for MorphAnalyzer
impl Allocative for MorphAnalyzer
Auto Trait Implementations§
impl Freeze for MorphAnalyzer
impl RefUnwindSafe for MorphAnalyzer
impl Send for MorphAnalyzer
impl Sync for MorphAnalyzer
impl Unpin for MorphAnalyzer
impl UnwindSafe for MorphAnalyzer
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more