fixed performance bug for representations
No more creating millions of namedtuple classes. Works about 15x faster
This commit is contained in:
parent
3be4118dc0
commit
c0939fbbd4
18
wani.py
18
wani.py
|
@ -261,9 +261,7 @@ class WordFormMsdCR(WordFormAnyCR):
|
||||||
|
|
||||||
def _render(self):
|
def _render(self):
|
||||||
msd = self.word_renderer.get_lemma_msd(self.lemma, self.msd)
|
msd = self.word_renderer.get_lemma_msd(self.lemma, self.msd)
|
||||||
WordLemma = namedtuple('WordLemmaOnly', 'msd most_frequent_text lemma text')
|
self.words.append(WordMsdOnly(msd))
|
||||||
backup_word = WordLemma(msd=msd, most_frequent_text=lambda *x: None, lemma=None, text=None)
|
|
||||||
self.words.append(backup_word)
|
|
||||||
|
|
||||||
return super()._render()
|
return super()._render()
|
||||||
|
|
||||||
|
@ -832,12 +830,16 @@ def get_msd(comp):
|
||||||
logging.error(d, file=sys.stderr)
|
logging.error(d, file=sys.stderr)
|
||||||
raise NotImplementedError("MSD?")
|
raise NotImplementedError("MSD?")
|
||||||
|
|
||||||
def lemma_only_word(msd):
|
|
||||||
if msd is None:
|
class WordMsdOnly:
|
||||||
|
def __init__(self, msd):
|
||||||
|
self.msd = msd
|
||||||
|
self.lemma = None
|
||||||
|
self.text = None
|
||||||
|
|
||||||
|
def most_frequent_text(self, _):
|
||||||
return None
|
return None
|
||||||
else:
|
|
||||||
WordLemma = namedtuple('WordLemmaOnly', 'msd most_frequent_text lemma text')
|
|
||||||
return WordLemma(msd=msd, most_frequent_text=lambda *x: None, lemma=None, text=None)
|
|
||||||
|
|
||||||
class Word:
|
class Word:
|
||||||
def __init__(self, xml, do_msd_translate):
|
def __init__(self, xml, do_msd_translate):
|
||||||
|
|
Loading…
Reference in New Issue
Block a user