class Zenlish::Lang::Lemmatizer
Attributes
trie[R]
@return [Trie:Trie] Trie
(aka prefix tree) with all word forms from dictionary.
Public Class Methods
new(aLexicon)
click to toggle source
# File lib/zenlish/lang/lemmatizer.rb, line 11 def initialize(aLexicon) @trie = Trie::Trie.new initialize_trie(aLexicon) end
Public Instance Methods
lemmatize(aWordForm, _hints = nil)
click to toggle source
# File lib/zenlish/lang/lemmatizer.rb, line 16 def lemmatize(aWordForm, _hints = nil) node = trie.search(aWordForm) node&.value end
Private Instance Methods
initialize_trie(aLexicon)
click to toggle source
# File lib/zenlish/lang/lemmatizer.rb, line 23 def initialize_trie(aLexicon) aLexicon.entries.each do |ent| citation_form = ent.lemma ent.lexemes.each do |lxm| if lxm.wclass.kind_of?(Zenlish::WClasses::WordClass) if lxm.wclass.invariable? trie.add(citation_form, lxm) else w_forms = lxm.all_inflections w_forms.each { |form| trie.add(form, lxm) } end end end end end