Constants
BA3_HANDLERS = {'剑', '刀', '枪'}
BA3_IN_HANDS = {'米', '花', '盐', '糖', '麦', '谷'}
MAP_上 = {"lên", "trên", "thượng"}
MAP_下 = {"xuống", "dưới", "hạ"}
MEASURES = {"宽" => "rộng", "高" => "cao", "长" => "dài", "远" => "xa", "重" => "nặng"}
PRE_NUM_APPROS = {"近" => "gần", "约" => "chừng", "小于" => "ít hơn"}
QUANTI_PRE_APPRO = {"多" => "hơn", "来" => "chừng", "余" => "trên", "几" => "mấy"}
QUANTI_SUF_APPRO = {"宽" => "rộng", "高" => "cao", "长" => "dài", "远" => "xa", "重" => "nặng", "多" => "hơn", "来" => "chừng", "左右" => "khoảng", "前后" => "khoảng", "上下" => "khoảng", "间" => "khoảng", "后间" => "khoảng", "后" => "sau", "之后" => "sau", "时" => "lúc", "之时" => "lúc", "上" => "trên", "之上" => "trên", "下" => "dưới", "之下" => "dưới", "前" => "trước", "之前" => "trước", "里" => "trong", "内" => "trong", "中" => "trong", "后内" => "trong", "后中" => "trong"}
SUFFIXES = {"的日子" => {"thời gian", PosTag::Ntime, true}, "的时候" => {"lúc", PosTag::Postpos, true}, "时" => {"khi", PosTag::Postpos, true}, "们" => {"các", PosTag::Noun, true}, "语" => {"tiếng", PosTag::Nother, true}, "性" => {"tính", PosTag::Ajno, true}, "所" => {"nơi", PosTag::Posit, true}, "界" => {"giới", PosTag::Posit, false}, "化" => {"hoá", PosTag::Verb, false}, "级" => {"cấp", PosTag::Nattr, true}, "型" => {"hình", PosTag::Nattr, true}, "状" => {"dạng", PosTag::Nattr, true}, "色" => {"màu", PosTag::Nattr, true}}
VERB_COMBINE = {"爱", "喜欢", "避免", "忍不住"}
Instance methods
boundary?(node : MtNode)
Sourcecan_combine_adjt?(left : MtNode, right : MtNode | Nil)
Sourcecan_combine_verb_verb?(verb : MtNode, verb_2 : MtNode)
Sourceclean_nquant(nquant : MtNode, prodem : MtNode | Nil)
Sourceclean_个!(node : MtNode) : MtNode
Sourceconcoord_is_prepos?(node : MtNode | Nil)
Sourcedeep_clean_个!(node : MtNode) : Nil
Sourceend_sentence?(node : Nil)
Sourceend_sentence?(node : MtNode)
Sourcefind_verb_after(right : MtNode)
Sourcefind_verb_after_for_prepos(node : MtNode, skip_comma = true) : MtNode | Nil
ameba:disable Metrics/CyclomaticComplexity
Sourcefix_adverb!(node :
MtNode, succ = node.succ) :
Tuple(
MtNode,
MtNode |
Nil)
Sourcefix_grammar!(node : MtNode) : Nil
Sourcefix_space_val!(node : MtNode)
Sourcefix_上下(node : MtNode, vals = node.key == "上" ? MAP_上 : MAP_下) : MtNode
Sourceflip_proper_noun?(proper :
MtNode, noun :
MtNode) :
Bool Sourcefold!(head :
MtNode, tail :
MtNode, tag :
PosTag =
PosTag::Unkn, dic :
Int32 = 9, flip :
Bool = false)
Sourcefold_adj_adv!(node : MtNode, prev = node.prev?)
Sourcefold_adjt_adv_bu!(adjt : MtNode, adv : MtNode, prev : MtNode | Nil)
Sourcefold_adjt_as_noun!(node : MtNode)
Sourcefold_adjt_hao!(node : MtNode) : MtNode
Sourcefold_adjt_junction!(node : MtNode, prev = node.prev?, succ = node.succ?)
Sourcefold_adjt_measure(adjt : MtTerm, succ = adjt.succ?)
Sourcefold_adjt_noun!(adjt : MtNode, noun : MtNode | Nil, ude1 : MtNode | Nil = nil)
Sourcefold_adjt_ude2!(adjt : MtNode, ude2 : MtNode)
Sourcefold_adjts!(adjt : MtNode, prev : MtNode | Nil = nil) : MtNode
ameba:disable Metrics/CyclomaticComplexity
Sourcefold_adv_bu!(node : MtNode, succ = node.succ) : MtNode
Sourcefold_adv_fei!(node : MtNode, succ = node.succ) : MtNode
Sourcefold_adv_mei!(node : MtNode, succ = node.succ) : MtNode
Sourcefold_adverb_base!(node : MtNode, succ = node.succ) : MtNode
ameba:disable Metrics/CyclomaticComplexity
Sourcefold_adverb_node!(adv : MtNode, node = adv.succ, tag = node.tag, dic = 4) : MtNode
Sourcefold_adverb_ude3!(node : MtNode, succ : MtNode) : MtNode
Sourcefold_adverb_verb!(adverb : MtNode, verb : MtNode)
Sourcefold_adverbs!(node : MtNode, succ = node.succ?) : MtNode
Sourcefold_auxils!(node : MtNode, mode = 1) : MtNode
Sourcefold_compare(head : MtNode, tail : MtNode, head_val = head.val)
Sourcefold_compare_bi3!(prepos : MtNode, succ = prepos.succ?, mode = 0)
Sourcefold_compare_bi3_after!(node : MtNode, last : MtNode)
Sourcefold_compare_vyou!(vyou : MtNode, noun : MtNode, tail : MtNode)
ameba:disable Metrics/CyclomaticComplexity
Sourcefold_day?(num : MtNode | Nil) : MtNode | Nil
Sourcefold_head_ude1_noun!(head : MtNode)
Sourcefold_hour!(node :
MtNode, succ :
MtNode, appro :
Int32 = 0)
Sourcefold_left!(right : MtNode, left : MtNode) : MtNode | Nil
Sourcefold_left_verb!(node : MtNode, prev : MtNode | Nil)
Sourcefold_list!(head : MtNode, tail : MtNode | Nil = nil) : Nil
Sourcefold_litstr!(root : MtNode) : MtNode
Sourcefold_minute!(node :
MtNode, succ :
MtNode, appro :
Int32 = 0)
Sourcefold_mixed!(node, prev = node.prev?, succ = node.succ?)
Sourcefold_modifier!(node : MtNode, succ = node.succ?, nega : MtNode | Nil = nil)
Sourcefold_month!(prev :
MtNode, node :
MtNode, appro :
Int32 = 0)
Sourcefold_ndigit!(node : MtNode, prev : MtNode | Nil = nil)
ameba:disable Metrics/CyclomaticComplexity
Sourcefold_ndigit_nhanzi!(node : MtNode, succ : MtNode) : MtNode
Sourcefold_nested!(head : MtNode, tail : MtNode)
Sourcefold_nhanzi!(node : MtNode, prev : MtNode | Nil = nil) : MtNode
Sourcefold_nhanzi_dian!(node : MtNode, succ : MtNode, prev : MtNode | Nil) : MtNode
Sourcefold_noun_adjt!(noun : MtNode, adjt : MtNode)
ameba:disable Metrics/CyclomaticComplexity
Sourcefold_noun_after!(noun : MtNode, succ = noun.succ?) : MtNode
Sourcefold_noun_concoord!(node : MtNode, prev = node.prev?, succ = node.succ?)
Sourcefold_noun_noun!(node : MtNode, succ : MtNode, mode = 0)
ameba:disable Metrics/CyclomaticComplexity
Sourcefold_noun_penum!(head : MtNode, join : MtNode)
Sourcefold_noun_space!(noun : MtNode, space : MtNode) : MtNode
Sourcefold_noun_space!(noun : MtNode) : MtNode
Sourcefold_noun_ude1!(noun : MtNode, ude1 : MtNode, right : MtNode, mode = 0) : MtNode
Sourcefold_noun_verb!(noun : MtNode, verb : MtNode)
ameba:disable Metrics/CyclomaticComplexity
Sourcefold_nouns!(noun :
MtNode, mode :
Int32 = 0) :
MtNode ameba:disable Metrics/CyclomaticComplexity
Sourcefold_nquant_noun!(prev : MtNode, node : MtNode)
Sourcefold_number!(node : MtNode, prev : MtNode | Nil = nil)
Sourcefold_number_hour!(node : MtNode, succ : MtNode) : MtNode
Sourcefold_number_minute!(node : MtNode, succ : MtNode, is_time = false) : MtNode
Sourcefold_once!(node : MtNode) : MtNode
ameba:disable Metrics/CyclomaticComplexity
Sourcefold_onomat!(node : MtNode, succ = node.succ?)
Sourcefold_other_preposes!(node :
MtNode, succ :
MtNode, mode :
Int32)
Sourcefold_postpos!(postpos : MtList, left : MtNode) : MtList | Nil
Sourcefold_pre_ba3!(node : MtNode, succ = node.succ?, mode = 0) : MtNode
Sourcefold_pre_bei!(node : MtNode, succ = node.succ?, mode = 0) : MtNode
Sourcefold_pre_dui!(node : MtNode, succ = node.succ?, mode = 0) : MtNode
Sourcefold_pre_quanti_appro!(node :
MtNode, succ :
MtNode) :
Tuple(
MtNode,
Int32)
Sourcefold_pre_zai!(node : MtNode, succ = node.succ?, mode = 0) : MtNode
Sourcefold_prepos_inner!(prepos : MtNode, succ = prepos.succ?, mode = 0) : MtNode
ameba:disable Metrics/CyclomaticComplexity
Sourcefold_prepos_left(prepos : MtNode, noun : MtNode, ude1 : MtNode, tail : MtNode)
Sourcefold_preposes!(node : MtNode, succ = node.succ?, mode = 0) : MtNode
Sourcefold_prezai_places?(node : MtNode, noun : MtNode, ude1 : MtNode, tail : MtNode) : MtNode | Nil
Sourcefold_pro_dems!(node : MtNode, succ : MtNode) : MtNode
ameba:disable Metrics/CyclomaticComplexity
Sourcefold_pro_ints!(proint : MtNode, succ = node.succ?)
Sourcefold_pro_per!(node : MtNode, succ : Nil) : MtNode
Sourcefold_pro_per!(proper : MtNode, succ : MtNode) : MtNode
ameba:disable Metrics/CyclomaticComplexity
Sourcefold_prodem_nominal!(prodem : MtNode | Nil, nominal : MtNode | Nil)
Sourcefold_proji_nhanzi!(node : MtNode, succ : MtNode)
Sourcefold_proji_right!(node : MtNode)
Sourcefold_pronouns!(pronoun : MtNode, succ = pronoun.succ?) : MtNode
Sourcefold_proper_nominal!(proper : MtNode, nominal : MtNode) : MtNode
ameba:disable Metrics/CyclomaticComplexity
Sourcefold_space!(node : MtNode) : MtNode
Sourcefold_specials!(node : MtNode)
Sourcefold_strings!(node : MtNode) : MtNode
Sourcefold_suf_quanti_appro!(node : MtNode, succ = node.succ?) : MtNode
Sourcefold_suffix!(suff : MtTerm, left : MtNode) : MtList | Nil
Sourcefold_time_appro!(node : MtNode)
Sourcefold_time_prev!(node : MtNode, prev : MtNode) : MtNode
Sourcefold_timeword!(node : MtNode, succ = node.succ?) : MtNode
Sourcefold_ude1!(ude1 : MtNode, prev = ude1.prev?, succ = ude1.succ?) : MtNode
do not return left when fail to prevent infinity loop!
Sourcefold_ude1_left!(ude1 : MtNode, left : MtNode, right : MtNode | Nil) : MtNode
do not return left when fail to prevent infinity loop
Sourcefold_uniqs_by_key!(node : MtNode, succ = node.succ?)
Sourcefold_urlstr!(root : MtNode) : MtNode
Sourcefold_usuo!(usuo : MtNode, succ = usuo.succ?)
Sourcefold_uzhi!(uzhi : MtNode, prev : MtNode = uzhi.prev, succ = uzhi.succ?) : MtNode
Sourcefold_v_shi!(vshi : MtNode, succ = vshi.succ?)
Sourcefold_verb_advbu!(verb : MtNode, adv_bu : MtNode, succ = adv_bu.succ?) : MtNode
Sourcefold_verb_advbu_verb!(verb : MtNode, adv_bu : MtNode, verb_2 : MtNode)
Sourcefold_verb_as_noun!(node : MtNode, mode = 0)
Sourcefold_verb_auxils!(verb : MtNode, auxil : MtNode) : MtNode
Sourcefold_verb_compare(head : MtNode) : MtNode | Nil
Sourcefold_verb_compl!(verb : MtNode, compl : MtNode) : MtNode | Nil
Sourcefold_verb_junction!(junc : MtNode, verb = junc.prev, succ = junc.succ?)
ameba:disable Metrics/CyclomaticComplexity
Sourcefold_verb_nquant!(verb : MtNode, tail : MtNode, has_ule = false)
Sourcefold_verb_object!(verb : MtNode, succ : MtNode | Nil)
ameba:disable Metrics/CyclomaticComplexity
Sourcefold_verb_ude1!(verb : MtNode, ude1 : MtNode, right : MtNode, mode = 0)
Sourcefold_verb_ude1!(node : MtNode, succ = node.succ?)
Sourcefold_verb_ude3!(node : MtNode, succ : MtNode) : MtNode
Sourcefold_verb_ule!(verb : MtNode, node : MtNode, succ = node.succ?)
Sourcefold_verb_uzhe!(prev : MtNode, uzhe : MtNode, succ = uzhe.succ?) : MtNode
Sourcefold_verb_vdirs!(verb : MtNode, vdir : MtNode) : MtNode
ameba:disable Metrics/CyclomaticComplexity
Sourcefold_verb_verb!(verb_1 : MtNode, verb_2 : MtNode) : MtNode
Sourcefold_verbs!(verb : MtNode, prev : MtNode | Nil = nil) : MtNode
ameba:disable Metrics/CyclomaticComplexity
Sourcefold_vmodals!(node : MtNode, succ = node.succ?, nega : MtNode | Nil = nil) : MtNode
ameba:disable Metrics/CyclomaticComplexity
Sourcefold_vyou!(vyou : MtNode, succ : MtNode)
Sourcefold_vyou_ude1!(vyou : MtNode, ude1 : MtNode, noun : MtNode)
Sourcefold_year!(prev :
MtNode, node :
MtNode, appro :
Int32 = 0)
Sourcefold_yi_verb!(node : MtNode, succ : MtNode)
Sourcefold_什么_noun!(prev : MtNode, node : MtNode)
Sourcefuse_number!(node : MtNode, prev : MtNode | Nil = nil) : MtNode
ameba:disable Metrics/CyclomaticComplexity
Sourceguess_nested_tag(head : MtNode, tail : MtNode)
Sourceguess_quoted_tag(head : MtNode, tail : MtNode)
Sourcehe2_is_prepos?(node :
MtNode, succ = node.succ?) :
Bool Sourceheal_adj_hao!(node : MtNode)
Sourceheal_ajad!(node : MtNode, prev : MtNode | Nil, succ : MtNode | Nil) : MtNode
Sourceheal_ajno!(node : MtNode, prev : MtNode | Nil, succ : MtNode | Nil) : MtNode
ameba:disable Metrics/CyclomaticComplexity
Sourceheal_has_ge4!(node : MtNode)
Sourceheal_mixed!(node : MtNode, prev = node.prev, succ = node.succ?)
Sourceheal_pro_dem!(pro_dem : MtNode) : MtNode
ameba:disable Metrics/CyclomaticComplexity
Sourceheal_quanti!(node : MtNode) : MtNode
Sourceheal_ude2!(node : MtNode) : MtNode
Sourceheal_ude3!(node : MtNode, succ = node.succ?) : MtNode
Sourceheal_ule!(node : MtNode, prev = node.prev?, succ = node.succ?) : MtNode
Sourceheal_vead!(node : MtTerm, prev : MtNode | Nil, succ : MtNode | Nil) : MtTerm
ameba:disable Metrics/CyclomaticComplexity
Sourceheal_veno!(node : MtTerm, prev : MtNode | Nil, succ : MtNode | Nil) : MtTerm
ameba:disable Metrics/CyclomaticComplexity
Sourceheal_vm_hui!(node : MtNode, succ = node.succ?, prev = node.prev?) : MtNode
Sourceheal_vm_xiang!(node : MtNode, succ = node.succ?, nega : MtNode | Nil = nil) : MtNode
ameba:disable Metrics/CyclomaticComplexity
Sourceis_concoord?(node : Nil)
Sourceis_concoord?(node : MtNode)
Sourceis_linking_verb?(head :
MtNode, succ :
MtNode |
Nil) :
Bool Sourceis_percent?(prev : MtNode, uzhi : MtNode)
Sourceis_pre_appro_num?(prev : MtNode | Nil)
Sourceis_pre_quanti_appro?(node : MtNode)
Sourcekeep_pure_numeral?(node :
MtNode |
Nil) :
Bool |
MtNode Sourcekeep_ule?(prev :
MtNode, node :
MtNode, succ = node.succ?) :
Bool Sourcemap_nqtype(node : MtNode)
Sourcemeld_number!(node : MtNode)
ameba:disable Metrics/CyclomaticComplexity
Sourceneed_2_objects?(node : MtList)
Sourceneed_2_objects?(node : MtTerm)
Sourcenot_quanti?(node : MtNode)
Sourcenoun_can_combine?(prev :
MtNode |
Nil, succ :
MtNode |
Nil) :
Bool ameba:disable Metrics/CyclomaticComplexity
Sourcepre_ba3_is_qtnoun?(node : MtNode, succ = node.succ?)
Sourceprodem_shoud_split?(node : MtNode)
Sourceread_minute_quanti?(node : MtNode | Nil) : MtTerm | Nil
Sourceread_second_quanti?(node : MtNode | Nil) : MtTerm | Nil
Sourcescan_adjt!(node : MtNode | Nil) : MtNode | Nil
Sourcescan_noun!(node :
MtNode |
Nil, mode :
Int32 = 0, prodem :
MtNode |
Nil = nil, nquant :
MtNode |
Nil = nil)
ameba:disable Metrics/CyclomaticComplexity
Sourcescan_verb!(node : MtNode)
Sourcescan_verbs!(node : MtNode)
Sourceshould_apply_ude1_after_verb?(verb : MtNode, right : MtNode | Nil, prev = verb.prev?)
ameba:disable Metrics/CyclomaticComplexity
Sourceshould_flip_prodem?(prodem : MtNode)
Sourceshould_fold_noun_concoord?(noun :
MtNode, concoord :
MtNode) :
Bool Sourcesimilar_tag?(left : MtNode, right : MtNode)
Sourcesplit_prodem!(node : MtNode, succ : MtNode | Nil = node.succ?)
Sourcevmodal_is_noun?(node : MtNode)
Source