From 17f5f85f58fe4f6032418c50a8a08427bfd07295 Mon Sep 17 00:00:00 2001 From: cs Date: Wed, 22 Feb 2023 20:53:58 +0800 Subject: [PATCH] feat: reverse lookup --- README.md | 14 +++++++++ easy_en.yaml | 2 +- japanese.custom.yaml | 16 +++++----- luna_pinyin.custom.yaml | 13 +++----- reverse_lookup.yaml | 68 +++++++++++++++++++++++++++++++++++++++++ wubi86.custom.yaml | 13 +++----- 6 files changed, 101 insertions(+), 25 deletions(-) create mode 100644 reverse_lookup.yaml diff --git a/README.md b/README.md index 37bb85c..afde640 100644 --- a/README.md +++ b/README.md @@ -61,6 +61,20 @@ var: previously_selected_schema: luna_pinyin # 输入方案为朙月拼音 ``` +# [schema](https://github.com/rime/home/wiki/RimeWithSchemata#%E8%A9%B3%E8%A7%A3%E8%BC%B8%E5%85%A5%E6%96%B9%E6%A1%88) +question: +请在较为详细的说下流程,比如我键盘敲击 “nihao“ 是怎样输出汉字 “你好” 的过程。 +详细到 processors segmentors translators 里所具体采用的处理细节 + +ChatGPT answer: +首先,"nihao" 这个字符串将会被 Rime 的输入法框架识别并传递给 processors 模块进行处理。这里的处理可能包括字符串的预处理,比如去除首尾空格,转换为小写字母等。 + +接下来,字符串将会被传递给 segmentors 模块进行分词,这里的分词是指将输入字符串分成一个一个的词语。在这个例子中,"nihao" 将会被分成 "ni" 和 "hao" 两个词语。 + +接下来,这两个词语将会被传递给 translators 模块进行翻译,也就是将拼音翻译成汉字。在这个例子中,"ni" 和 "hao" 将会被翻译成 "你" 和 "好"。 + +最后,翻译完的汉字将会被传递给 selector 和 navigator 模块进行选择和导航。Selector 模块负责选择最终的词语,也就是将 "你" 和 "好" 结合成一个词语 "你好"。Navigator 模块负责根据用户的选择结果进行导航,最终将词语 "你好" 输出到屏幕上。 + # reference 搜狗细胞词库 [Rime 输入法简中用户新手套餐](https://github.com/ACsediment/RimeNewbie) diff --git a/easy_en.yaml b/easy_en.yaml index 72404b4..1f07530 100644 --- a/easy_en.yaml +++ b/easy_en.yaml @@ -17,7 +17,7 @@ patch: easy_en: __include: easy_en.schema:/translator enable_completion: true - enable_sentence: true + enable_sentence: false initial_quality: -1 recognizer/patterns/uppercase: "" speller/alphabet: diff --git a/japanese.custom.yaml b/japanese.custom.yaml index 1f67baa..02dabb5 100644 --- a/japanese.custom.yaml +++ b/japanese.custom.yaml @@ -1,12 +1,9 @@ # https://github.com/gkovacs/rime-japanese patch: - # https://github.com/rime/rime-emoji __include: emoji_suggestion:/patch - - # https://github.com/BlindingDark/rime-easy-en __include: easy_en:/patch - easy_en/enable_sentence: false + __include: reverse_lookup:/patch_luna_pinyin2 # import shortcut key key_binder/import_preset: default @@ -20,7 +17,10 @@ patch: recognizer/patterns/number: "^/[0-9]+$" # lua - "engine/translators/@90": lua_translator@time_translator - "engine/translators/@91": lua_translator@lunar_translator - "engine/translators/@92": lua_translator@number_translator - "engine/translators/@93": lua_translator@thousand_translator + engine/translators/@90: lua_translator@time_translator + engine/translators/@91: lua_translator@lunar_translator + engine/translators/@92: lua_translator@number_translator + engine/translators/@93: lua_translator@thousand_translator + + # default 漢字  + switches/@2/reset: 0 diff --git a/luna_pinyin.custom.yaml b/luna_pinyin.custom.yaml index ca9c7bc..8b772eb 100644 --- a/luna_pinyin.custom.yaml +++ b/luna_pinyin.custom.yaml @@ -1,12 +1,9 @@ # https://github.com/rime/rime-luna-pinyin patch: - # https://github.com/rime/rime-emoji __include: emoji_suggestion:/patch - - # https://github.com/BlindingDark/rime-easy-en __include: easy_en:/patch - easy_en/enable_sentence: false + __include: reverse_lookup:/patch_japanese # import shortcut key key_binder/import_preset: default @@ -20,10 +17,10 @@ patch: recognizer/patterns/number: "^/[0-9]+$" # lua - "engine/translators/@90": lua_translator@time_translator - "engine/translators/@91": lua_translator@lunar_translator - "engine/translators/@92": lua_translator@number_translator - "engine/translators/@93": lua_translator@thousand_translator + engine/translators/@90: lua_translator@time_translator + engine/translators/@91: lua_translator@lunar_translator + engine/translators/@92: lua_translator@number_translator + engine/translators/@93: lua_translator@thousand_translator # load luna_pinyin dict translator/dictionary: luna_pinyin.extended diff --git a/reverse_lookup.yaml b/reverse_lookup.yaml new file mode 100644 index 0000000..7234aa6 --- /dev/null +++ b/reverse_lookup.yaml @@ -0,0 +1,68 @@ +# pinyin simp reverse lookup, trigger with `P +patch_pinyin_simp: + recognizer/patterns/zlookup: "`[a-z]*'?$" + recognizer/patterns/reverse_lookup: "`P[a-z]*'?$" + + reverse_lookup: + dictionary: pinyin_simp + prefix: "`P" + suffix: "'" + tips: 〔拼音〕 + preedit_format: + - xform/([nl])v/$1ü/ + - xform/([nl])ue/$1üe/ + - xform/([jqxy])v/$1u/ + +# luna_pinyin reverse lookup, trigger with `P +patch_luna_pinyin: + recognizer/patterns/zlookup: "`[a-z]*'?$" + recognizer/patterns/reverse_lookup: "`P[a-z]*'?$" + + reverse_lookup: + dictionary: luna_pinyin.extended + prefix: "`P" + suffix: "'" + tips: 〔lunar_pinyin〕 + preedit_format: + - xform/([nl])v/$1ü/ + - xform/([nl])ue/$1üe/ + - xform/([jqxy])v/$1u/ + +# luna_pinyin reverse lookup, trigger with `p +patch_luna_pinyin2: + # to recognize '`p' to prevent it from being directly + # recognized as 'punct' and being displayed directly. + recognizer/patterns/zlookup: "`[a-z]*'?$" + # the short dash at the beginning of '_luna_pinyin_lookup' is to + # make it recognizable as the first one. + recognizer/patterns/_luna_pinyin_lookup: "`p[a-z]*'?$" + + # @2 is abc_segmentor + engine/segmentors/@after 2: affix_segmentor@_luna_pinyin_lookup + engine/translators/@999: script_translator@_luna_pinyin_lookup + + _luna_pinyin_lookup: + tag: _luna_pinyin_lookup + dictionary: luna_pinyin.extended + prefix: "`p" + suffix: "'" + tips: 〔朙月拼音〕 + preedit_format: + - xform/([nl])v/$1ü/ + - xform/([nl])ue/$1üe/ + - xform/([jqxy])v/$1u/ + +# japanese reverse lookup, trigger with `j +patch_japanese: + recognizer/patterns/zlookup: "`[a-z]*'?$" + recognizer/patterns/_japanese_lookup: "`j[a-z]*'?$" + + engine/segmentors/@after 2: affix_segmentor@_japanese_lookup + engine/translators/@999: script_translator@_japanese_lookup + + _japanese_lookup: + tag: _japanese_lookup + dictionary: japanese + prefix: "`j" + suffix: "'" + tips: 〔japanese〕 diff --git a/wubi86.custom.yaml b/wubi86.custom.yaml index ba1491c..67dfee6 100644 --- a/wubi86.custom.yaml +++ b/wubi86.custom.yaml @@ -1,12 +1,9 @@ # https://github.com/rime/rime-wubi patch: - # https://github.com/rime/rime-emoji __include: emoji_suggestion:/patch - - # https://github.com/BlindingDark/rime-easy-en __include: easy_en:/patch - easy_en/enable_sentence: false + __include: reverse_lookup:/patch_luna_pinyin2 # import shortcut key key_binder/import_preset: default @@ -20,10 +17,10 @@ patch: recognizer/patterns/number: "^/[0-9]+$" # lua - "engine/translators/@90": lua_translator@time_translator - "engine/translators/@91": lua_translator@lunar_translator - "engine/translators/@92": lua_translator@number_translator - "engine/translators/@93": lua_translator@thousand_translator + engine/translators/@90: lua_translator@time_translator + engine/translators/@91: lua_translator@lunar_translator + engine/translators/@92: lua_translator@number_translator + engine/translators/@93: lua_translator@thousand_translator # 五笔回车清屏和分号、引号上屏幕二三候选词 key_binder/bindings: