home icon indicating copy to clipboard operation
home copied to clipboard

建议:关于中英文混合输入和分词算法

Open zYeoman opened this issue 5 years ago • 8 comments

image 例如像上面这样的输入,什么“吃讷涩”根本就不是一个词。可以禁止这样凭空组词么?像下面这个这样 image

还有关于分词算法,见下图。我输入 huahua 想要的肯定是两hua,而不是什么huahu a 分开。这样分词加入候选除了增加选词难度没有太大意义。(可能有一点意义的xi'an在输入的时候也没感觉有啥用) image

最后一点是,能不能把不同拼音之间自动加入的空格去掉?或者有什么设置可以去掉?有些场景这种空格太影响观感了。像下面,这空格除了延长长度,貌似也没啥意义。 image image

zYeoman avatar Jul 06 '19 08:07 zYeoman

空格分割这个找到一个解决方法。 修改 luna_pinyin.custom.yaml添加 "speller/delimiter": "'"。可以换成单引号分割。但是不能没有分隔符。

zYeoman avatar Jul 06 '19 09:07 zYeoman

  1. 是否是一个词,取决于人是否赋予其意义,程序无法代为判断。可以用 translator/enable_sentence: false 禁用自动造句,不过结果不一定是你想要的。

  2. 「我会画虎啊」「这就是花湖啊」——也有人或有时候想要 huahu a,这也是意义问题,属人类领域,同 1。

  3. 空格的视觉分隔,对于大多数人,意义显而易见。定制选项目前应该是没有。speller/delimiter 不是起这个作用。

Ace-Who avatar Jul 06 '19 12:07 Ace-Who

  1. 暫不支持英文。
  2. 可能符合拼音的情況,套用到其他輸入法則不一定合適。出於算法通用性的考慮目前是這個策略。 如果想快速跳到單字候選,可以按Tab或左方向鍵。
  3. 用以下補丁:
patch:
  translator/preedit_format:
    - 'xform/ //'

lotem avatar Jul 06 '19 12:07 lotem

  1. 禁用自动造句,效果是怎样的呢?(感觉我的配置没生效?)不过影响不大。就这样吧。 image
  2. 还是认为huahua->huahu'a->huah'u'a这种分割逻辑比较不符合直觉,不过试了下TAB用起来挺舒服的。
  3. 解决了。 (另外还有一点小问题,能不能关掉 image这个提示啊?我不需要它提示我。

zYeoman avatar Jul 06 '19 13:07 zYeoman

第一个问题可以这样设置下 imageinitial_quality设置成0可以解决。 但是也会增加新的问题,比如我想输入我们,第一个候选词永远是women。这个问题有办法解决吗? image image

ghost avatar Jul 17 '19 07:07 ghost

可否向百度输入法学习,加入v和u功能,可以做便捷的加减法,输入金钱大写,日期输入等特色功能

Franklyn1987 avatar Dec 20 '19 06:12 Franklyn1987

这个問題我也碰到了,我用的是五笔拼音, 拼音编码和五笔编码会混在一起。 我觉得这需要老板修改源码才能解决。 我的建议是,修改源码:判断前两个字编码如果是拼音,则其后皆是拼音编码。 否则按其他方案编码拆′。

另外,如果是拼音,禁步ol ap等这种元音开头的组合出现

ednykissyou avatar Feb 19 '22 15:02 ednykissyou

我瞎折腾试出来个解决方法,反正非常符合我的需求:

  • 有拼音的时候,拼音优先:ma → 吗 马,而不是 Mac mad map
  • 没拼音的时候,单词优先:shit → shit,而不是「是他」;ship → ship,而不是「视频」。
  • 重码的时候,拼音优先:size → 四则 size,man → 满 慢……man
  • 长单词的时候,候选项第一个不是无意义的中文:goo → good goodbye Google

2022-10-04-000180 图片

方法是在方案中,将拼音的权重设置为 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 比较合适😂。

iDvel avatar Oct 03 '22 19:10 iDvel