rime / librime

Rime Input Method Engine, the core library

Home Page:https://rime.im

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

提問:speller和translator在分隔音節時是的處理邏輯是什麽?

Gs-Linguashop opened this issue · comments

在字典裏的音節是用空格分開的,而在speller/delimitator裏卻是" '"。請問speller/algebra裏^$regex符號對應的是什麽情況的字符串開頭和結尾呢?speller和translator在處理音節分隔時是什麽工作順序呢?translator/preedit_format和speller/delimitator的^$對應的是音節的開頭結尾,還是含空格分隔的整個字符串的開頭結尾,還是含" '"分隔的整個字符串的開頭結尾?謝謝!

還有請問詞條在table和prism當中是以什麼分隔形式存在的呢?我想正確理解分隔,以便於使用正確的regex處理。謝謝。

speller/delimiter 是一個字符集,裏面每個字符都可以做輸入碼中的音節分隔符。
設爲 " '" 有兩項作用:
一是輸入拼音需要用隔音符號 ' 消除音節切分歧義。
二是空格雖然不能當做輸入碼,但是在輸入法界面顯示的輸入碼中用他(speller/delimiter 的第一個字符)分隔音節。

speller/algebra 作用於單個音節,把字典定義的音節碼轉換成可輸入的音節碼。這一步是在部署輸入方案時預先計算好的。結果是 *.prism.bin 文件,他定義了一段輸入碼到字典定義的音節的映射表。

translator/preedit_format 作用於已經根據 speller/delimiter 的配置在識別到的音節之間插入切分符號的,整串用於顯示的輸入碼。

用於在輸入法界面顯示的輸入碼的音節劃分與處於高亮狀態的候選詞一致。