成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

OpenHarmony啃論文俱樂部:拼音輸入法_從觸摸事件到漢字

系統 OpenHarmony
OpenHarmony標準系統輸入法框架,研究OpenHarmony平臺輸入法的基本框架,掌握輸入法與用戶交互的過程,在此基礎上才有可能實現一款最基本的可以與用戶交互的中文輸入法。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

??https://ost.51cto.com??

【本期看點】

老子到此一游系列之《老子的白日夢——基于OpenHarmony的中文拼音輸入法》。

梗概

本文主要內容包括以下兩個方面:

(1)中文輸入法的原理和相關學術界綜述研究論文。

輸入法將輸入數據觸摸事件或者按鍵事件轉化為其他更豐富的字符。

(2)OpenHarmony標準系統輸入法框架,研究OpenHarmony平臺輸入法的基本框架,掌握輸入法與用戶交互的過程,在此基礎上才有可能實現一款最基本的可以與用戶交互的中文輸入法。

輸入法框架主要是連接應用和輸入法,保證應用可以通過輸入法進行文本輸入。

題外話:

王小波也做過輸入法開發,他也是中國最早的一批程序員之一,他用自己寫的輸入法寫文章,據說體驗還不錯。在那個時代,開發自己的輸入法真是個了不起的想法。

中文拼音輸入法原理

要在安裝OpenHarmony標準系統的設備上編輯中文信息,總是需要中文輸入法。 拼音輸入法是最合理的中文輸入方法。

拼音輸入法屬于一種編碼輸入法。其基本實現原理依賴于拼音與漢字之間的編碼與解碼。

拼音輸入法生來就面臨著一個嚴峻的挑戰:現代漢語大約有410個拼音音節。,它們不成比例地代表著6000多個常用漢字,這導致拼音到字符映射的嚴重歧義。

學術界為解決當今拼音輸入法的關鍵問題所做的努力都集中在推進拼音到字符的轉換上。

音字轉換技術pinyin-to-Chinese (PTC)

音字轉換技術是中文拼音輸入法中最為關鍵的部分,音字轉換就是將一串拼音流轉換成為其對應的漢字作為輸出。它完全可以看成是從拼音到漢字的翻譯過程。

目前進行音字轉換的技術大概可以分為以下幾類:

  1. 以語句規則作為約束條件進行轉換。
  2. 使用模板匹配技術進行轉換。
  3. 以統計知識為基礎進行轉換。
  4. 上下為語境約束轉換。

以上四類轉換方法并不是互相獨立的,它們之間或多或少都有一些聯系。

中國漢字集通常包含約10000-20000個字符,但在日常生活中真正使用的漢字卻少得多。通常,2500個最廣泛的字符可以覆蓋97.97%的文本,而3500個字符可以覆蓋99.48%的文本。所有合法字符都存儲在字體庫中,而中文輸入系統只是試圖在拉丁字母編碼和漢字字體之間建立一個有效的映射。

拼音到漢字的轉換可分為拼音流切分和音節到漢字轉換兩個階段,這兩個階段看似簡單,實現起來卻比較復雜,有很多需要考慮的因素,包括轉換精確度、時間復雜度、空間復雜度等,下面針對這兩個階段的設計來做具體的闡述:

音字轉換過程分為 拼音流切分 以及 字的轉換 兩個階段

第一階段:拼音流切分Chinese Word Segmentation

1.一般情況下用戶進行輸入時輸入的都只是一串拼音流,拼音流切分完成的就是將用戶輸入的拼音流劃分為一個個合理的拼音音節輸出。非中文用戶知道在輸入法中輸入拼音時,中文輸入法用戶永遠不會輸入分隔符(如“空格”鍵)來分割拼音音節或拼音單詞,而只是輸入整個未分割的拼音序列。

拼音輸入沒有分段。例如,如果想要輸入“你好開源鴻蒙(Hello OpenHarmony)”,他只需輸入“nihaokaiyuanhongmeng”而不是分段拼音序列“ni hao kai yuan hong meng”。

2.進行拼音音節分割非常方便。因為拼音音節的詞匯量非常有限,并且嚴格遵循一組規則。

第二階段:字的轉換(切分好的拼音流到漢語語句的轉換)

1.將拼音流切分成為一個一個的音節后,要實現的是將這一個個的音節轉換成為對應的漢字并組成合理語句。

2.拼音切分將連續的用戶輸入分解為單獨的拼音音節,并將其傳遞到此階段,即提取候選詞。這是一項查表任務,查找與拼音音節對應的漢語單詞。根據拼音音節建立候選詞表。表中的每一列都是與音節對應的單詞,并按其存在的概率排序。

  • 例如用戶輸入“ni hao kai yuan hong meng”可以轉換成為“你好開源鴻蒙”。

3.一個拼音對應多個漢字。當用戶輸入一個很長的拼音流時,如果把所有漢字組合結果進行比較。

選出一個最好的不現實,其復雜度會成倍增加。整個輸入法系統會崩潰,無法滿足用戶的實時輸入要求。

這部分要求在保證轉換精度的同時,盡量降低時間復雜度,保證輸入法的正常運行。

設計合理的音字轉換算法是實現拼音輸入法的關鍵

實現拼音流到漢字轉換時使用的兩個主要算法:

拼音流切分算法

目前比較常用的切分算法有前向最大匹配(FMM)、后向最大匹配(BMM)以及最少分詞切分,動態規劃算法也曾有人嘗試過,但是這些算法都不能夠對切分歧義做很好的處理。

最大匹配法是所有拼音流切分算法中最簡單最容易實現的。所謂最大匹配,就是在拼音流切分時,使切分得到的單個合法拼音長度盡可能大。

優缺點:最簡單,但缺點也很明顯。后面輸入的音節很可能就切分不出來,還會導致很多短音節無法輸入。

音字轉換方法

在將拼音轉換為漢字的過程中,對于給定的拼音P序列,目標是找到最可能的漢字序列H,通常用語言模型(通過上下文提供單詞的條件概率)來生成。使用貝葉斯定理:

由陳正和李開復2000年提出的,是一種基于漢語拼音輸入的統計方法。

李開復加入微軟并在中國創建并領導微軟中國研究院(現為微軟亞洲研究院)。

從理論上講,所有的H都被列舉出來時給出最大值的那個Pr(H,P)被選為最佳漢字序列。在實踐中,將使用一些有效的方法,例如維特比波束搜索。

問題轉化為兩部分,打字模型Pr(P|H)和語言模型Pr(H) 。

1)語言模型Pr(H)是漢字序列的先驗概率。通常,它由Statistical language modelling統計語言模型(SLM)決定的,比如三聯圖。

最廣泛使用的統計語言模型是所謂的n-gram馬爾可夫模型。有時二元圖或三元圖用作SLM。對于英語來說,三元圖被廣泛使用。由于有大量的訓練語料庫,三元圖也適用于漢語。在實踐中,perplexity 用于評估SLM:

其中N是測試數據的長度。當呈現給語言模型時,perplexity 可以粗略地解釋為文檔分支因子的幾何平均值。顯然,perplexity 越少越好。

n-gram馬爾可夫模型,也叫做N 元文法模型。是一種基于統計知識的模型,該模型使用統計概率來對詞語之間的依賴關系進行衡量。所謂 N 元就是指第i個詞的出現只取決于該詞之前的i-1個詞。通過將PTC(音字轉換)轉換建模為隱馬爾可夫模型(HMM),并使用維特比(Viterbi,1967)算法對序列進行解碼,提出了“統計輸入法”的思想。

目前進行音字轉換使用的大部分都是基于統計的方法,其中使用最廣泛的就是基于N-gram 語言模型的轉換算法。

2)Pr(P|H)是漢語單詞H被輸入為拼音P的概率,該模型被稱為打字模型 。

候選句子的生成可以看作是一個解碼問題,目標是找到最可能的中文單詞序列:

OpenHarmony的輸入法框架

輸入法框架目前有四大模塊:

輸入法客戶端:

作用:實現輸入法框架服務與輸入法交付的中間橋梁,包括監聽輸入法當前的狀態等等。

輸入法服務:

作用:作為輸入法框架的核心,輸入法的主要處理邏輯都是在這里完成。

應用客戶端:

作用:實現應用和輸入法框架服務交付,包括應用與輸入法服務的綁定、應用對輸入法的顯示和隱藏請求等等

輸入法Js接口:

作用:暫時對外暴露的js接口,主要是留給輸入法進行調用使用的。

框架主要支持功能:

在編輯屬性的控件中進行點擊操作,即可通過輸入法框架調起默認輸入法應用。

通過輸入法應用可以進行打字,并上屏輸入字符到應用客戶端。

相關API接口文檔:

輸入法框架是什么:

應用調用輸入法實現內容輸入,一個平臺的輸入法框架是操作系統的重要組成部分,主要協調操作系統、應用程序和輸入法軟件之間的事件處理和數據傳遞,負責輸入法之間的切換等工作。

輸入法框架功能主要是連接應用和輸入法,保證應用可以通過輸入法進行文本輸入,是操作系統必不可少的一部分。

現代操作系統應為用戶提供一個多語言環境,多語言環境要求之一就是支持用戶多語言文本輸入。

OpenHarmony預置的輕量級輸入法

  • kikainput是一個輕量級的輸入法應用,支持在運行OpenHarmony OS的智能終端上。
  • 支持語言是JavaScript,模型限制為Stage模型。
  • 系統中預置的輸入法應用為??樣例輸入法???,目前僅支持符號輸入鍵盤和英文鍵盤。中文鍵盤輸入法的樣例正在開發中,預估最快本月上架到??Smaple倉庫??。
  • 在OpenHarmony智能終端上中文輸入法的設計將由三部分組成:虛擬鍵盤 、當前鍵入的鍵和候選列表。

左為OHOS3.1Beta預置輸入法軟鍵盤,右為OHOS3.1Release預置輸入法軟鍵盤。

  • 兩者在按鍵頁面布局上并無差別,按鍵大小Release版本更加合理。
  • 每種鍵盤均采用全鍵盤方式進行輸入。
  • 整個音調都是是灰色和白色的,白色和灰色作為主色調可以給用戶一種安靜舒適的視覺體驗,減少長時間使用帶來的疲勞。

OpenHarmony暫時不支持中文輸入

  • OpenHarmony內置輸入法應用暫時不支持中文輸入;只支持英文,數字及字符,及大小寫切換,退格, ENTER鍵等基本功能。(更多消息請關注??樣例代碼倉庫??)。
  • OpenHarmony操作系統中支持中文輸入需要由輸入法應用提供中文輸入功能。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

??https://ost.51cto.com??。

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2023-08-14 07:36:58

搜狗拼音加密

2009-09-01 08:57:21

SCIM谷歌拼音輸入法

2011-09-22 14:39:17

API

2009-08-13 10:42:15

基于Android平臺

2009-03-09 19:48:17

LinuxSunPinyin拼音輸入法

2011-08-30 11:21:59

UbuntuGoogle

2009-11-17 09:26:39

騰訊搜狗輸入法

2017-01-12 09:25:05

Windows 10新拼音輸入法

2020-10-29 11:10:10

華宇拼音輸入法

2010-12-22 15:32:24

360軟件管家搜狗拼音輸入法

2022-09-14 15:28:19

操作系統鴻蒙

2022-09-15 15:21:22

操作系統鴻蒙

2022-09-16 15:01:37

操作系統技術鴻蒙

2022-09-07 15:08:58

操作系統鴻蒙

2022-09-06 15:46:52

speexdsp鴻蒙

2022-09-13 16:10:15

鴻蒙操作系統

2022-08-22 17:36:13

啃論文方法啃論文俱樂部

2022-04-20 20:37:58

鴻蒙操作系統

2017-10-16 13:30:28

windows 10技巧輸入法

2009-07-06 09:18:31

搜狗騰訊輸入法
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产1区2区3区 | 久久99精品久久久久久国产越南 | 久久久久久亚洲国产精品 | 午夜小视频在线观看 | 免费看欧美一级片 | 久久精品视频91 | 欧美综合一区二区 | 巨大荫蒂视频欧美另类大 | 91综合网 | 天堂亚洲网| 国产激情 | 亚洲伦理自拍 | 一级黄色录像毛片 | 久久最新网址 | 国产精品视频久久 | 精品美女久久久 | 日韩在线观看一区 | 亚洲精品二区 | 日日操av | 国产丝袜一区二区三区免费视频 | 人人爽人人爽人人片av | 久久久www成人免费无遮挡大片 | 久久久人成影片一区二区三区 | 亚洲成人三级 | 欧美不卡在线 | 国产在线观看一区二区 | 性大毛片视频 | 日本精品一区二区三区四区 | 久久精品亚洲欧美日韩久久 | 综合视频在线 | 亚洲一区二区三区视频 | 麻豆精品国产免费 | 久久天天躁狠狠躁夜夜躁2014 | 国产一卡二卡三卡 | 中文字幕国产精品视频 | 国产99久久精品一区二区永久免费 | 精品久久久久久久久久久 | 欧美精品一区二区三区在线播放 | 丝袜一区二区三区 | 国产免费av网 | 夜夜精品浪潮av一区二区三区 |