def __init__(self): self.tokenizer = Tokenizer() self.tokenizer.load() self.lexicon = Word2Lemmas() self.language_resources = LanguageResources() self.postagger = rupostagger.RuPosTagger() self.chunker = ruchunker.Chunker() self.word2tags = ruword2tags.RuWord2Tags() self.flexer = ruword2tags.RuFlexer() self.syntan = None self.gg_dictionaries = GenerativeGrammarDictionaries() self.known_words = set() #self.lemmatizer = Mystem() self.lemmatizer = rulemma.Lemmatizer() self.word_embeddings = None
tokenizer.load() samples = load_samples(input_paths, tokenizer) logging.info('Loading dictionaries...') thesaurus = Thesaurus() thesaurus.load(os.path.join(data_folder, 'dict/links.csv')) # , corpus) lexicon = Word2Lemmas() lexicon.load(os.path.join(data_folder, 'dict/word2lemma.dat')) grdict = ruword2tags.RuWord2Tags() grdict.load() flexer = ruword2tags.RuFlexer() flexer.load() # Аугментация: генерируем негативных сэмплы через выбор вариантов словоформ, отличающихся # от использованных в валидном ответе. logging.info('Generating negative samples...') all_keys = set(sample.get_key() for sample in samples) neg_samples = [] for sample in samples: if sample.label == 1: answer_words = tokenizer.tokenize(sample.answer) answer_len = len(answer_words) if answer_len == 1: # Аугментация для однословного ответа. # Формы единственного слова, кроме упомянутой в ответе for lemma, part_of_speech in lexicon.get_lemmas(