zoukankan      html  css  js  c++  java
  • 小狼毫输入法

    小狼毫输入法配置中,speller/algebra通过设置拼写运行,让输入法实现容错简拼模糊拼音等功能。

    拼写运算

    拼写运算是借助正则表达式实现其字符串处理能力,进一步利用数学知识,构造出建立在输入法编码集合上的代数系统,运算步骤以yaml字符串列表的形式定义,每个列表项描述一项运算,包含基于Perl规范的正则表达式。

    • 转换 /Transliteration
      依次将拼写中<左字符表>的音符替换为<右字母表>对应位置的字符。左、右字母表包含相同数目的Unicode字符。
    格式:xlit/<左字母表>/<右字母表>/
    实例:xlit/abc/ABC/  运算元:abracadabra  结果:ABrACAdABrA
    
    • 变形/Transformation
      若拼写字符串与<模式>匹配,则将所匹配的部分改写为<替换式>;否则拼写保持不变。<模式><替换式>遵循Perl正则表达式语法。
    格式:xform/<模式>/<替换式>/
    实例:算式 xform/^([nl])ue$/$1ve/  运算元:nue  结果:nve
    效果:输入 nue(lue) 可以获取源码表中与编码 nve(lve)对应的候选
    
    • 消除/Erasion
      若拼写与<模式> 完全匹配,则将该拼写从有效拼写集合中消除。
    格式:erase/<模式>/
    实例:算式 erase/^.*d$/  运算元:dang1  结果:带声调的拼音不可用
    
    • 派生/Derivation
      若对拼写做正则模式匹配、替换而获得了新的拼写,则有效拼写集合是包含派生前后的拼写;否则仅保留原拼写。
    格式:derive/<模式>/<替换式>/
    实例一:算式 derive/^([nl])ue$/$1ve/  运算元:nue  结果:nve
    效果:输入nve或nue(lve或lue) 均可获得源码表中与编码 nue(lue) 对应的候选
    
    实例二:算式 derive/^[nl](.*)$/l$1/  运算元:na  结果:la
    效果:输入la可获取源码表中与编码na、la对应的候选;输入na,候选仍为码表中编码为na的候选
    
    • 模糊/Fuzzing
      执行派生运算;派生出的拼写将获得「模糊」属性,可设定将其用作构成词组的简码,但不用与输入单字。
    格式:fuzz/<模式>/<替换式>/
    实例:算式 fuzz/^([a-z]).+([a-z])$/$1$2/
    效果:以首、尾码为多字母音节码的构词码。
    注:需配合 script_translator 的选项 `translator/strict_spelling: true` 方可限定该拼写不用于输入单字。
    
    • 缩略/Abbreviation
      执行派生运算,派生出的拼写将获得「缩略」属性,会在音节切分时与通常的拼写做区分处理。
    格式:abbrev/<模式>/<替换式>/
    实例:算式 abbrev/^([a-z]).+$/$1/
    效果:以首字母为多字母音节码的缩写。
    

    例子

    例1:朙月拼音(luna_pinyin.schema.yaml),定义简拼、容错拼写。

    ....
    speller:
      algebra:
        - abbrev/^([a-z]).+$/$1/          # 简拼(首字母)
        - abbrev/^([zcs]h).+$/$1/         # 简拼(zh, ch, sh)
        - derive/^([nl])ve$/$1ue/         # 设 nue = nve, lue = lve 
        - derive/ui$/uei/                 # 设 guei = gui,...
        - derive/iu$/iou/                 # 设 jiou = jiu,...
        - derive/([aeiou])ng$/$1gn/       # 容错 dagn = dang,...
        - derive/ong$/on/                 # 容错 zhonguo = zhong guo
        - derive/ao$/oa/                  # 容错 hoa = hao,...
        - derive/([iu])a(o|ng?)$/a$1$2/   # 容错 tain = tian,...
    ....
    

    例2:在拼音输入法中定义模糊音zh=z, ch=c, sh=s, n=l, en=eng, in=ing

    ...
    speller:
      algebra:
        - derive/^([zcs])h/$1/
        - derive/^([zcs])([^h])/$1h$2/
        - derive/^n/l/
        - derive/^l/n/
        - derive/([ei])n$/$1ng/
        - derive/([ei])ng$/$1n/
        # 模糊拼音先于简拼,可令简拼支持模糊拼音
        - abbrev/^([a-z]).+$/$1/
        - abbrev/^([zcs]h).+$/$1/
    ...
    
  • 相关阅读:
    ubuntu安装
    k8s 安装
    Blazor 路由
    ISO 8601
    Centos 8使用devstack快速安装openstack最新版
    使用devstack 一键安装 openstack详细过程和遇到的坑
    蓝瑟66000公里保养
    释放rsyslog占用的Linux内存
    Netty4.1 Http开发入门(一)服务端
    网络传输中的帧和payload
  • 原文地址:https://www.cnblogs.com/lqqgis/p/13846504.html
Copyright © 2011-2022 走看看