home
home copied to clipboard
建议:关于中英文混合输入和分词算法
例如像上面这样的输入,什么“吃讷涩”根本就不是一个词。可以禁止这样凭空组词么?像下面这个这样
还有关于分词算法,见下图。我输入 huahua
想要的肯定是两hua
,而不是什么huahu
a
分开。这样分词加入候选除了增加选词难度没有太大意义。(可能有一点意义的xi'an
在输入的时候也没感觉有啥用)
最后一点是,能不能把不同拼音之间自动加入的空格去掉?或者有什么设置可以去掉?有些场景这种空格太影响观感了。像下面,这空格除了延长长度,貌似也没啥意义。
空格分割这个找到一个解决方法。
修改 luna_pinyin.custom.yaml
添加
"speller/delimiter": "'"
。可以换成单引号分割。但是不能没有分隔符。
-
是否是一个词,取决于人是否赋予其意义,程序无法代为判断。可以用
translator/enable_sentence: false
禁用自动造句,不过结果不一定是你想要的。 -
「我会画虎啊」「这就是花湖啊」——也有人或有时候想要
huahu a
,这也是意义问题,属人类领域,同 1。 -
空格的视觉分隔,对于大多数人,意义显而易见。定制选项目前应该是没有。
speller/delimiter
不是起这个作用。
- 暫不支持英文。
- 可能符合拼音的情況,套用到其他輸入法則不一定合適。出於算法通用性的考慮目前是這個策略。 如果想快速跳到單字候選,可以按Tab或左方向鍵。
- 用以下補丁:
patch:
translator/preedit_format:
- 'xform/ //'
- 禁用自动造句,效果是怎样的呢?(感觉我的配置没生效?)不过影响不大。就这样吧。
- 还是认为huahua->huahu'a->huah'u'a这种分割逻辑比较不符合直觉,不过试了下TAB用起来挺舒服的。
- 解决了。
(另外还有一点小问题,能不能关掉
这个提示啊?我不需要它提示我。
第一个问题可以这样设置下
把
initial_quality
设置成0可以解决。
但是也会增加新的问题,比如我想输入我们
,第一个候选词永远是women
。这个问题有办法解决吗?
可否向百度输入法学习,加入v和u功能,可以做便捷的加减法,输入金钱大写,日期输入等特色功能
这个問題我也碰到了,我用的是五笔拼音, 拼音编码和五笔编码会混在一起。 我觉得这需要老板修改源码才能解决。 我的建议是,修改源码:判断前两个字编码如果是拼音,则其后皆是拼音编码。 否则按其他方案编码拆′。
另外,如果是拼音,禁步ol ap等这种元音开头的组合出现
我瞎折腾试出来个解决方法,反正非常符合我的需求:
- 有拼音的时候,拼音优先:ma → 吗 马,而不是 Mac mad map
- 没拼音的时候,单词优先:shit → shit,而不是「是他」;ship → ship,而不是「视频」。
- 重码的时候,拼音优先:size → 四则 size,man → 满 慢……man
- 长单词的时候,候选项第一个不是无意义的中文:goo → good goodbye Google
方法是在方案中,将拼音的权重设置为 1.2:
translator:
dictionary: pinyin_simp
initial_quality: 1.2
将英文的权重设置为 1.1:(我用的英文方案是 melt_eng)
melt_eng:
dictionary: melt_eng
enable_completion: true # 这个必须开开,否则候选项第一个还是无意义的中文
enable_sentence: false
enable_user_dict: false # 英文不调频,防止和拼音与英文重码时,被英文占据前面的候选项。
initial_quality: 1.1
那个 initial_quality
的设置挺迷的,我试了好几种搭配,比如只给英文的设置为0或0.1:0,部分长单词时还是会被一些无意义的中文占据第一个候选项,比如 2:1 会导致 map 永远是「马匹」,比如1:0.999999时无意义的中文不在第一个了,但是在下面的候选项还都是英文的时候,无意义的中文跑到第二个了;等等等等,最后发现 1.2:1.1 比较合适😂。