osfans / trime

同文安卓輸入法平臺3.x/Android-rime/Rime Input Method Engine for Android
http://osfans.github.io/trime/
GNU General Public License v3.0
3.09k stars 372 forks source link

新版蒼頡六代的詞典閃退 #44

Closed frank-king closed 8 years ago

frank-king commented 8 years ago

求解

osfans commented 8 years ago

有什麼錯誤信息?華爲沒有抓log的工具話,可以下載一個第三方的看看。懷疑是因爲APK不完整。

frank-king commented 8 years ago

就是點安裝後,直接顯示「應用程式未安裝」。

frank-king commented 8 years ago

同文平臺能裝上,但就是輸入法用不了

frank-king commented 8 years ago

可以用了

frank-king commented 8 years ago

但是安裝了最新的版本老是閃退

osfans commented 8 years ago

菜單裏回廠trime.yaml和trime.custom.yaml看看。

frank-king commented 8 years ago

就是回廠了也閃退呢,20151223以後的版本不行了。現在將就用着20151223的版本。 請問怎樣增加候選關鍵字的個數呢?有時涉及符號的輸入,每頁只有5個候選詞選起來有點慢。 另外,不知道有沒有鍵位修正的功能呢?有時鍵位有偏差,打出來的字就差得很遠。

xiaoqun2016 commented 8 years ago

(贴吧网页版出故障了,无法回复,我就在这里对容错补充一下。) 后来又观察了一下,轻松仓颉实际也不轻松。如果每次击键 都偏离按键中心,打到第四码的时候就会有明显的卡顿,第五码更是会延迟两三秒。估计是容错产生了很多的编码组合,使要检索的范围成倍增加了。rime主打整句输入,若用形码打整句,每容错一个键就要扩大两三倍的检索范围,指数增长!?而其它形码输入法只要打满四五码就上屏了,相对轻松。佛振不做万能键是不是有这方面的顾虑?也许要优化检索方法或词典结构?容错、九宫格、万能键……看起来挺好的功能,但在rime这样一个综合的输入法平台上,只怕是impossible mission。

原贴在这里 http://tieba.baidu.com/mo/q----,sz@320_240-1-3---2/flr?pid=82508793361&kz=3917536050&pn=270&pinf=1_2_0

osfans commented 8 years ago

@xiaoqun2016 看來是這樣,以前我用數據庫格式保存碼表,萬能碼檢索時也會慢。

frank-king commented 8 years ago

@xiaoqun2016 形碼爲何要整句輸入?逐詞逐詞地輸入不是很好麼?每五碼自動上屏,不然打到後面出現重碼就很麻熕。(我平時都用倉頡快打模式,習慣打完一詞之後自動上屏) 輕鬆倉頡我之前未出現過卡頓的情況,至於您說的「每次擊鍵都偏離中心」,那是非常極端的情況,如果手殘到種地步,那還是用手寫爲妙。

frank-king commented 8 years ago

@xiaoqun2016 而且輕鬆倉頡輸入法也是限制了檢索數量的吧,每次並不會將所有可能的編碼都檢索出來。

zcunlin commented 8 years ago

@whjpji 喜欢整句就打整句,喜欢打单字就打单字,干嘛要强迫所有用形码的人都用定码长的打法啊。真烦人。

frank-king commented 8 years ago

@zcunlin 這不是重點好吧,我又未說所有用形碼的人都要用定碼長的啊? 我的意思是希望也能有容錯的功能,有時候按快了,編碼一錯就差起老遠。

zcunlin commented 8 years ago

@whjpji 整句输入与逐词输入不矛盾,不妨试试咯ㄟ( ▔, ▔ )ㄏ

frank-king commented 8 years ago

@osfans 還有就是我加入新版蒼頡六代的詞典進去怎麼就閃退了?

osfans commented 8 years ago

重新部署看看。我這裏沒有問題。

osfans commented 8 years ago

按錯了之後,目前可以點擊編碼區修正。

frank-king commented 8 years ago

可是部署了好幾次了啊,是不是我的trime改的有問題?

frank-king commented 8 years ago

@osfans 另外能讓長按延遲時間變短一點麼?

frank-king commented 8 years ago

@osfans 這是我自己設定的鍵盤

  cangjie6:
    ascii_mode: 0
    author: "1,729.000"
    height: 55
    keys: [{click: 1, long_click: "!"}, {click: 2, long_click: "@"}, {click: 3, long_click: "#"}, {click: 4, long_click: "$"}, {click: 5, long_click: "%"}, {click: 6, long_click: "^"}, {click: 7, long_click: "&"}, {click: 8, long_click: "*"}, {click: 9, long_click: "("}, {click: 0, long_click: ")"}, {click: q, label: "手", long_click: _}, {click: w, label: "田", long_click: "-"}, {click: e, label: "水", long_click: "+"}, {click: r, label: "口", long_click: "="}, {click: t, label: "廿", long_click: "|"}, {click: y, label: "卜", long_click: "\\"}, {click: u, label: "山", long_click: "["}, {click: i, label: "戈", long_click: "]"}, {click: o, label: "人", long_click: "{"}, {click: p, label: "心", long_click: "}"}, {width: 5}, {click: a, label: "日", long_click: select_all}, {click: s, label: "尸", long_click: Home}, {click: d, label: "木", long_click: End}, {click: f, label: "火", long_click: Page_Up}, {click: g, label: "土", long_click: Page_Down}, {click: h, label: "的", long_click: Left}, {click: j, label: "十", long_click: Down}, {click: k, label: "大", long_click: Up}, {click: l, label: "中", long_click: Right}, {click: Shift_L, width: 15}, {click: z, label: "片", long_click: "`"}, {click: x, label: "止", long_click: cut}, {click: c, label: "金", long_click: copy}, {click: v, label: "女", long_click: paste}, {click: b, label: "月", long_click: "~"}, {click: n, label: "弓", long_click: Insert}, {click: m, label: "一", long_click: Delete}, {click: BackSpace, width: 15}, {click: Hide, long_click: Color_switch}, {click: Keyboard_symbols, long_click: Keyboard_number}, {click: Mode_switch, long_click: Menu}, {click: space, width: 25}, {click: ",", long_click: "<", paging: Page_Up}, {click: ., has_menu: Page_Down, long_click: ">"}, {click: "?", long_click: "/"}, {click: Return, long_click: CommitComment, width: 15}]
    name: "倉頡六代鍵盤(40鍵)"
    width: 10
osfans commented 8 years ago

注意縮進和單引號、雙引號、\ 單引號:"'" 雙引號:'"' \:'\' 你的是斜槓出了問題。 好像還有其他問題,我再改改。

  cangjie6:
    ascii_mode: 0
    author: "1,729.000"
    height: 55
    keys: [{click: 1, long_click: "!"}, {click: 2, long_click: "@"}, {click: 3, long_click: "#"}, {click: 4, long_click: "$"}, {click: 5, long_click: "%"}, {click: 6, long_click: "^"}, {click: 7, long_click: "&"}, {click: 8, long_click: "*"}, {click: 9, long_click: "("}, {click: 0, long_click: ")"}, {click: q, label: "手", long_click: _}, {click: w, label: "田", long_click: "-"}, {click: e, label: "水", long_click: "+"}, {click: r, label: "口", long_click: "="}, {click: t, label: "廿", long_click: "|"}, {click: y, label: "卜", long_click: '\'}, {click: u, label: "山", long_click: "["}, {click: i, label: "戈", long_click: "]"}, {click: o, label: "人", long_click: "{"}, {click: p, label: "心", long_click: "}"}, {width: 5}, {click: a, label: "日", long_click: select_all}, {click: s, label: "尸", long_click: Home}, {click: d, label: "木", long_click: End}, {click: f, label: "火", long_click: Page_Up}, {click: g, label: "土", long_click: Page_Down}, {click: h, label: "的", long_click: Left}, {click: j, label: "十", long_click: Down}, {click: k, label: "大", long_click: Up}, {click: l, label: "中", long_click: Right}, {click: Shift_L, width: 15}, {click: z, label: "片", long_click: "`"}, {click: x, label: "止", long_click: cut}, {click: c, label: "金", long_click: copy}, {click: v, label: "女", long_click: paste}, {click: b, label: "月", long_click: "~"}, {click: n, label: "弓", long_click: Insert}, {click: m, label: "一", long_click: Delete}, {click: BackSpace, width: 15}, {click: Hide, long_click: Color_switch}, {click: Keyboard_symbols, long_click: Keyboard_number}, {click: Mode_switch, long_click: Menu}, {click: space, width: 25}, {click: ",", long_click: "<", paging: Page_Up}, {click: ., has_menu: Page_Down, long_click: ">"}, {click: "?", long_click: "/"}, {click: Return, long_click: CommitComment, width: 15}]
    name: "倉頡六代鍵盤(40鍵)"
    width: 10
osfans commented 8 years ago

確實是斜槓的問題,你用的是哪裏下的cangjie6碼表?我來測試下。

osfans commented 8 years ago

長按時間修改style/longpress_timeout

style:
  longpress_timeout: 400 #按鍵超過800毫秒即為長按
frank-king commented 8 years ago

@osfans https://github.com/rime-aca/schemata/tree/master/Cangjie6

frank-king commented 8 years ago

@osfans 另外trime.yaml中的這句是甚麼意思啊?

  scj6:
    import_preset: cangjie5
osfans commented 8 years ago

已經修正:https://github.com/osfans/trime/releases/download/v3.0-beta2/trime-20160120.apk

那句話就是說,快速倉頡(scj6)默認用cangjie5的鍵盤。

frank-king commented 8 years ago

@osfans 蒼頡6的快打模式的狀態欄好像不對呢?只有「通用/增廣」「漢字/汉字」「半角/全角」三欄,「中文/西文」「,。/ , .」怎麼不見了?

osfans commented 8 years ago

switches裏面就是沒有啊。剛纔解決的問題就是:ascii_mode沒有指定states,把程序搞掛掉了。

https://github.com/rime-aca/schemata/blob/master/Cangjie6/cangjie6.schema.yaml#L18

你可以自己加switches。

frank-king commented 8 years ago

@osfans 另外我想問下把這個蒼頡六默認的字根「竹」改爲「的」要怎麼改呢?我改了cangjie6.schema.yaml文件但是沒用?

translator:
  dictionary: cangjie6
  prism: cangjie6_express
  enable_user_dict: true
# 不想自動調頻的話,將上條中「true」改爲「false」
  user_dict: cangjie6_express
  enable_charset_filter: true
  enable_sentence: false
  sentence_over_completion: true
  preedit_format:
    - xlit|abcdefghijklmnopqrstuvwxyz|日月金木水火土的戈十大中一弓人心手口尸廿山女田止卜片|
  comment_format:
    - xlit|abcdefghijklmnopqrstuvwxyz~|日月金木水火土的戈十大中一弓人心手口尸廿山女田止卜片・|
frank-king commented 8 years ago

@osfans 改好了,就是電腦端還未改過來

xiaoqun2016 commented 8 years ago

@whjpji 每次击键都偏离中心,是为了测试看他的容错效率如何。看来他并没有彻底解决这个问题。 容错要是能做那挺好的, 我只是把可能遇到的问题说一下,并不是要反对你们。 我以前一直以为形码容错是不可行的,现在我知道原来已经有人在尝试解决这个问题了(轻松仓颉)。感谢! 最后我演示一下rime的形码整句输入的效果,算是一种交流吧。rime官方内置的形码方案大多采用了整句模式,可能佛振有意推广这种打法? 不知道github附图能不能显示,我试一试

frank-king commented 8 years ago

@xiaoqun2016 但是你不能因極端情況就說它容錯效率不好啊,至少目前對我來說,在手機上用它輸入漢字的單字效率是最高的。並且我認爲,輕鬆倉頡輸入法對於編碼的檢索數量應該是有限制的,(說不定就用一個啓發式搜索搞定了?比如給不同的容錯碼賦予不同的權値:錯一碼者最高,錯兩碼者次之,以此類推。同時限定搜索深度,以防止指數式的膨脹。)

我棄用輕鬆倉頡的原因有四個: 一是輕鬆倉頡不能輸入詞組,有點影響效率;(或許犧牲詞組能換來容錯的效率?) 二是輕鬆倉頡不便於輸入中文標點符號; 三是輕鬆倉頡的中英文混打模式不太舒服; 四是在電腦上習慣了rime。

至於整句輸入,我剛剛試了一下,效果還不錯,不過有時輸入法會「會錯意」,且斷詞還是個問題。其實最糾結的是,有時候無意識地認爲是一個詞的,就按詞的拆法(比如「蒼頡」一詞,單獨打兩個字就是「廿人日口・土口一片」,連起來打就是首字取兩碼,次字取三碼,卽「廿口土口片」),但又不是一個詞,遇到這種情況就會影響效率。(比如輸入名字) 另外重碼也是個問題,比如剛纔想輸入「意識」一詞,就和「認識」重了,如果是整句輸入的話在輸入時並不會馬上知道是重碼,又要倒回去改。 綜合這兩點因素,我還是更傾向於逐詞輸入,每入一詞都有反饋,不像整句輸入模式中到了後面中就只顯示第一關鍵字詞了。

xiaoqun2016 commented 8 years ago

@whjpji rime的仓颉有二十万左右的八股文词汇。两相比较,它的负担肯定更重了,这对容错的效率要求更高。

词库中要有这个词,才能用词的方式打出来。你可以把人名导入词库。或者等需要时再造词。

不管是整句模式还是字词模式,都有重码问题。打字词模式,可以固定词序,靠条件反射选二三重码,这样也挺快的。对于整句的重码,我是这么理解的:

以拼音为例, 一个字,若有多个读音,单写出这个字,你不能确定它的读音,但把它放到词语中,或者一个语境中,意思明确了,读音也就确定了。 同样的,一个读音,若有多字匹配,单读出这个音,你不能确定是什么字,但你把它放到一句话里面,意思确定了,字也就确定了。 整句就是用这种策略来避开重码。它对语料和词频相当依赖。语料越全,打起来越精确。所以,打整句的过程要注意积累词汇和短语。前期要在适当的时候断句,并不是一上来就可以很顺畅地打完一句。

比如你的仓颉:当「意识」和「认识」重码时,想打「意识」,那么根据你的上下文,造一个「无意识」或者「无意识地」,把「意识」放到更确定的语境中,从而避免与「认识」发生冲突。 (由于形码与拼音的「造词规则」不同,对重码的影响也略有不同。拼音的词码是单字全码相接,形码的词码是固定码长的,并不会像拼音那样造的词越长就越少重码。) 那么如何确保「无意识」不会与其它词重码呢?其实如果不调整造词规则,是很难完全保证的。但仓颉好像最多有25^5=9,765,625个编码组合,近千万个,实际用到的只有几万、十几万?有大量的编码没有利用到,你造一个词,很可能是刚好填补了一个空白编码,也有可能会与已有的编码重码,如果遇到非常顽固的重码,不管怎么拆分组合都是重码,那就该断句的时候断一下。如果要更彻底解决这种重码,可以适当调整一下造词规则。 总体来说,这种情况不会很多。

我用rime几个月了,一直都在磨合词库,积累短语意群,也只是很常用的句子可以一气呵成打下来,大多数时候的打法都是介于整句与词语之间。如果将来rime能升级语言模型,效果会好很多,也不需要刻意断句了。

frank-king commented 8 years ago

@xiaoqun2016 我想直接打詞語「無意識」時,出來的卻是無意間。或者遇到詞語就不縮寫(比如「無意識」就老老實實地連打「人廿火・卜廿日心・卜口卜戈日」,而不是「人火卜心日」),這樣就使得重碼的負擔小一些。但會導致編碼長度增加。 另有一種可能,就是藉助人工智能,使得輸入法能「理解」輸入時每個詞的意思,然後把可能得出的幾種句子都列出來以供選擇。在這樣的功能健全之前,我想重碼、斷詞問題不太會根本地解決。

xiaoqun2016 commented 8 years ago

的确,所以现在的形码整句输入实际也并不是非常好用。根据自己的习惯选择吧