class RawModelData: def __init__(self, tagging_order, emission_order): self.stat = Statistics() # Statistics about trainig # Címkék ngram modellje self.tag_ngram_model = NGramModel(tagging_order + 1) # Eredeti szóalakok és a megelőző cimkék modellje self.std_emission_ngram_model = NGramModel(emission_order + 1) # Speciális tokenek és a megelőző cimkék modellje self.spec_emission_ngram_model = NGramModel(2) self.eos_tag = None # Lemma suffix gyakorisági táblázat (HashLemmaTree volt.) self.lemma_suffix_tree = HashSuffixTree(100) # Lemma gyakorisági táblázat self.lemma_freq_tree = HashSuffixTree(5) # Lemma gyakorisági táblázat self.lemma_unigram_model = LemmaUnigramModel() # Szóalakok suffix gyakorisági táblázata kis- és nagybetűérzékenyen. self.lower_suffix_tree = None # HashSuffixTree(0) self.upper_suffix_tree = None # HashSuffixTree(0) self.lemma_lambdas = list() # LogLinearBiCombiner a guesserből és az unigram modellből származó adatok kombinálásához. from purepos.model.combiner import default_combiner self.combiner = default_combiner() def compile(self) -> CompiledModelData: c = CompiledModelData() c.unigram_lemma_model = self.lemma_unigram_model c.tag_transition_model = self.tag_ngram_model.create_probability_model( ) c.standard_emission_model = self.std_emission_ngram_model.create_probability_model( ) c.spec_tokens_emission_model = self.spec_emission_ngram_model.create_probability_model( ) c.apriori_tag_probs = self.tag_ngram_model.word_apriori_probs() theta = HashSuffixTree.calculate_theta(c.apriori_tag_probs) c.lower_case_suffix_guesser = self.lower_suffix_tree.create_guesser( theta) c.upper_case_suffix_guesser = self.upper_suffix_tree.create_guesser( theta) c.lemma_guesser = self.lemma_suffix_tree.create_guesser(theta) c.suffix_lemma_model = self.lemma_freq_tree.create_guesser(theta) c.combiner = self.combiner return c
def __init__(self, tagging_order, emission_order): self.stat = Statistics() # Statistics about trainig # Címkék ngram modellje self.tag_ngram_model = NGramModel(tagging_order + 1) # Eredeti szóalakok és a megelőző cimkék modellje self.std_emission_ngram_model = NGramModel(emission_order + 1) # Speciális tokenek és a megelőző cimkék modellje self.spec_emission_ngram_model = NGramModel(2) self.eos_tag = None # Lemma suffix gyakorisági táblázat (HashLemmaTree volt.) self.lemma_suffix_tree = HashSuffixTree(100) # Lemma gyakorisági táblázat self.lemma_freq_tree = HashSuffixTree(5) # Lemma gyakorisági táblázat self.lemma_unigram_model = LemmaUnigramModel() # Szóalakok suffix gyakorisági táblázata kis- és nagybetűérzékenyen. self.lower_suffix_tree = None # HashSuffixTree(0) self.upper_suffix_tree = None # HashSuffixTree(0) self.lemma_lambdas = list() # LogLinearBiCombiner a guesserből és az unigram modellből származó adatok kombinálásához. from purepos.model.combiner import default_combiner self.combiner = default_combiner()
class RawModelData: def __init__(self, tagging_order, emission_order): self.stat = Statistics() # Statistics about trainig # Címkék ngram modellje self.tag_ngram_model = NGramModel(tagging_order + 1) # Eredeti szóalakok és a megelőző cimkék modellje self.std_emission_ngram_model = NGramModel(emission_order + 1) # Speciális tokenek és a megelőző cimkék modellje self.spec_emission_ngram_model = NGramModel(2) self.eos_tag = None # Lemma suffix gyakorisági táblázat (HashLemmaTree volt.) self.lemma_suffix_tree = HashSuffixTree(100) # Lemma gyakorisági táblázat self.lemma_freq_tree = HashSuffixTree(5) # Lemma gyakorisági táblázat self.lemma_unigram_model = LemmaUnigramModel() # Szóalakok suffix gyakorisági táblázata kis- és nagybetűérzékenyen. self.lower_suffix_tree = None # HashSuffixTree(0) self.upper_suffix_tree = None # HashSuffixTree(0) self.lemma_lambdas = list() # LogLinearBiCombiner a guesserből és az unigram modellből származó adatok kombinálásához. from purepos.model.combiner import default_combiner self.combiner = default_combiner() def compile(self) -> CompiledModelData: c = CompiledModelData() c.unigram_lemma_model = self.lemma_unigram_model c.tag_transition_model = self.tag_ngram_model.create_probability_model() c.standard_emission_model = self.std_emission_ngram_model.create_probability_model() c.spec_tokens_emission_model = self.spec_emission_ngram_model.create_probability_model() c.apriori_tag_probs = self.tag_ngram_model.word_apriori_probs() theta = HashSuffixTree.calculate_theta(c.apriori_tag_probs) c.lower_case_suffix_guesser = self.lower_suffix_tree.create_guesser(theta) c.upper_case_suffix_guesser = self.upper_suffix_tree.create_guesser(theta) c.lemma_guesser = self.lemma_suffix_tree.create_guesser(theta) c.suffix_lemma_model = self.lemma_freq_tree.create_guesser(theta) c.combiner = self.combiner return c