Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
 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()
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
 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()