999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Qtopia的嵌入式中文輸入法設計

2010-04-12 00:00:00廖耿耿,張建寰
現代電子技術 2010年10期

摘 要:在此主要討論一個中文拼音輸入法在Qtopia中的設計,利用Qtopia所提供的插件技術,完成拼音輸入法的實現。輸入法實現的數字到漢字的轉換主要分為兩個步驟,即數字拼音到漢語拼音的轉換和漢語拼音到漢字的轉換。該輸入法具有機器學習的功能,可以通過自然學習接受用戶自定義的詞語,大大提高了輸入速度和智能程度。該方法在筆者的開發平臺上驗證通過。

關鍵詞:嵌入式Linux; Qtopia中文輸入法; 插件; 自然學習

中圖分類號:TP391 文獻標識碼:B

文章編號:1004-373X(2010)10-0111-03

Design of Embedded Chinese Input Method Based on Qtopia

LIAO Geng-geng, ZHANG Jian-huan

(Xiamen University, Xiamen 361005, China)

Abstract:The design and implementation of a Chinese inputmethod based on Qtopia, the Pinyin input method have been realized by using the Qtopia utilizing plugc-in architecture technology,two main steps are involved to transform digital keyboard input to Chinese characters. One is the transform from digital string to Pinyin string, another is the transform from Chinese Pinyin string to Chinese characters. The input method has the functions of machine learning, words acception and expressions which are defined by the users through natural learning, which greatly enhance the inputting speed and the degree of intelligent.

Keywords:embedded Linux; Qtopia Chinese input method; plug-in; natural learning

隨著基于ARM內核芯片的大規模應用,手持嵌入式設備迎來了一個龐大的市場。與用戶直接打交道的圖形界面的友好程度決定了用戶對該產品的感觀認識。在這個方興末艾的市場,嵌入式Linux由于其系統優異的健壯性,以及開源、免費等顯著優勢,成為嵌入式設備的主流操作系統[1]。其中,Qtopia 是Trolltech 公司為采用嵌入式Linux 操作系統的消費電子設備而開發的綜合應用平臺[2],因其友好的界面、完善的開發環境,已被國內移動電話制造商中興通訊選作其移動電話ZTE U980基于Linux的應用開發框架,使Qtopia電話版成為中興通訊支持中國3G標準TD-SCDMA的核心部件,Qtopia在嵌入式市場的競爭中撥得頭籌[3]。

在Qtopia的應用中,有許多需要用戶輸入本地文字的場合,如短信、通訊錄及記事本等,而Qtopia 現有的輸入方式,是基于虛擬的QWERTY全鍵盤的,在實際應用中,這種QWERTY全鍵盤不僅需要用戶雙手進行操作,而且由于按鍵排布緊密,從而導致誤碼率居高不下。

本文提出一種基于Qtopia 的采用傳統九宮格方式的中文輸入法設計。傳統九宮格的虛擬鍵盤不僅符合大眾的使用習慣,而且可以實現單手操作,可以為用戶帶來舒適的輸入體驗,提高產品的市場占有率[4]。

1 Qtopia中文編碼及插件技術

要實現漢字在Qtopia系統里正確處理并顯示,必須滿足兩個前提條件[5]:一是系統要有支持中文的編碼;另一個是要有能顯示這個中文編碼的字符字體存在。本文的Linux 開發環境代碼編輯器的編碼為GBK,目標機上的Qtopia 平臺使用Unicode 編碼,所以在程序里首先按如下的方式進行編碼轉換:

static QTextCodec* gbk_codec = QtextCodec::

codecForName(\"GBK\");

static QString un_gbk(const char*ChnStr) {

return gbk_codec->toUnicode(ChnStr);

}

接下來為Qtopia系統提供中文字體,Qtopia支持多種字體,包括ttf,bdf,qpf格式。其中qpf格式的字體使用最為方便,本文采用支持中文的 Simsun_120_50.qpf 字體文件,把該字體文件保存至MYMQTEDIR/lib/fonts目錄下,修改字體鏈接fontdir文件,在菜單Appearance 的Font 選項里選中該字體,此時系統中文顯示正常。

在Qtopia 中,輸入法是以基于插件的方式實現的,Qtopia插件分為應用程序插件、服務器插件和系統插件3種。其中,應用程序插件是應用程序使用的插件,服務器插件是在啟動時由Qtopia服務器進行裝載的插件,系統插件是在應用程序啟動時被裝載的插件。本文所涉及的輸入法屬于服務器插件[6]。

Qtopia中通過類似COM的層來使用插件,建立一個插件的基本步驟為:創建插件的接口;寫插件將提供的功能函數;為接口定義子類;創建一個插件實例;裝載插件。

在實現輸入法插件的創建后,需將該插件編譯成動態鏈接庫的形式,并安裝到插件對應的目錄下,對于輸入法插件而言,指定的存放目錄為$QTEDIR/plugins/inputmethods。系統啟動時,插件裝載器會自動裝載這個文件夾里的輸入法插件。

2 輸入法在Qtopia中的實現

2.1 輸入法模塊的實現

中文拼音輸入法的設計,要實現數字拼音鍵到漢字的轉換。所謂數字拼音是指按照手機鍵盤上英文字母的布局來輸入漢語拼音所得到的一串數字,對于九宮格形式的虛擬鍵盤來說,其鍵盤的布局特點導致不能直接輸入漢語拼音而只能輸入數字鍵盤掃描碼,然后由掃描碼的識別及糾錯處理模塊對其進行拼音組合、文字匹配檢索后才能得到相應的漢字,處理流程見圖1。

圖1 數字到漢字的模塊轉換結構圖

首先用戶輸入的數字鍵盤掃描碼要轉換為相應的漢語拼音,本文采用查表檢索法實現數字拼音到漢語拼音的轉換,并對用戶無效的拼音組合進行高亮提示。然后根據字典數據庫檢索相應的漢字,并對用戶的輸入進行機器學習,針對用戶輸入習慣不同,對用戶輸入常用詞進行自適應排序[7]。利用自帶字庫的基礎語言模型與用戶常用詞模型相結合的檢索技術對候選字進行自動排序,得到最終的候選字輸出。如圖2所示。

該輸入法注重對用戶輸入的常用詞、高頻詞的自適應,利用基礎字庫模型和用戶習慣模型結合進行解碼。主要思想是通過跟蹤用戶輸入過程,記錄用戶輸入習慣,然后根據用戶的輸入字詞的不同概率動態調整相應的數據,并將結果存放于用戶模型中。

圖2 基礎模型和用戶模型相結合的自適應方法

2.2 移植輸入法到Qtopia中

Qtopia 2.x系統中支持彈出式輸入法的插件實現。彈出式輸入法在沒有鍵盤和其他文件輸入設備時使用,它彈出窗口部件,用戶可通過設備的觸摸屏操作產生鍵事件,它們也被看做基于筆的輸入方法。在本文中,采用ExtInputMethodInterface作為創建輸入法插件的接口。

(1) 為彈出輸入方法設備窗口部件。

彈出輸入法必須提供一個顯示在屏幕上的QWidget窗口部件,并在一個鍵被按下時發出一個信號,Qtopia處理輸入窗口部件的顯示和隱藏。信號和插槽是Qt的核心機制,應用于對象之間的通信,信號和插槽是真正的信息封裝,所有從QObject或其子類派生的類都能夠包含信號,當對象改變狀態時,信號就由該對象發射(emit)出去,對象并不需要知道另一端是誰在接收這個信號。本文的輸入法設計,在用戶點擊選字按鍵時,一個包含所選字符的keyPress信號被發射出去。

signals:

void keyPress( ushort unicode,ushort keycode,ushort modifiers,bool press,bool repeat )

在這個keyPress信號中,ushort unicode 為輸入字符的unicode 編碼值,這樣就可以把所選字符的編碼傳遞給Qtopia系統,系統就會在當前光標處輸入相應文字。

(2) 創建一個ExtInputMethodInterface插件。

(3) 編譯該輸入法插件。

為了編譯輸入法插件,需要在.pro文件中設置如下:

CONFIG += qtopiaplugin

依次完成上述步驟,即可實現Qtopia輸入法的創建及編譯,本文所實現的中文拼音輸入法如圖3所示,當用戶選擇該輸入法時,會彈出一個輸入面板,該面板由候選字區、拼音組合選擇區、拼音輸入區及功能區組成。在開發板上運行該輸入法如圖3所示。

候選字區 位于面板的最上方,由6個QPushButton組成,單擊后相應的文字會輸出至Qtopia系統當前光標處,并自動聯想該字的常用詞組合。

拼音組合選擇區 位于面板下方的左側區域,由一個QListBox,供用戶選擇候選的拼音組合。

3×3的輸入區 位于面板下方的中間區域,與傳統的手機鍵盤相對應,由a~z拼音字母及“*”鍵組成,“*”鍵為標點符號選擇鍵,其余8個按鍵為拼音輸入;

“Del”按鍵 位于面板下方右側區域,用來回退當前的拼音組合,如果當前拼音組合不為空,刪除該組合最后一個拼音字母,并刷新拼音組合及候選字,若當前的拼音組合為空,則單擊刪除光標左側的一個字符,長按該鍵則連續刪除光標左側字符;

“Up”及“Down”按鍵 候選字區的上下翻頁鍵。

圖3 在開發板上運行該輸入法

3 結 語

基于Qtopia的插件技術,實現了傳統九宮格方式的中文拼音輸入法,該輸入法在輸入中文時支持詞語聯想功能及用戶輸入高頻詞自適應功能。該輸入法在一個基于Linux 2.6.13內核的S3C2440嵌入式系統上運行成功,經過長時間的測試,該輸入法運行穩定,響應速度流暢,可給用戶帶來舒適的輸入體驗。

參考文獻

[1]楊水清,張劍,施云飛.ARM嵌入式Linux系統開發技術詳解[M].北京:電子工業出版社,2008.

[2]苗忠良,宛斌.Qtopia編程之道[M].北京:清華大學出版社,2009.

[3]李世鶴,楊運年.TD-SCDMA第三代移動通信系統[M].北京:人民郵電出版社,2009.

[4]喬建良,趙增建.談談手機的中文輸入法[J].現代通訊,2004,12(3):41-42.

[5]龍中花,廖建明.基于Qtopia的中文輸入法設計與實現[J].成都信息工程學院學報,2004,19(4):527-531.

[6]Trolltech Inc.Writing Qtopia plug-ins[EB/OL]. [2005-07-13]. http://qt.nokia.com/doc/qtopia2.2,2005.

[7]黃珺.統計和規則相結合的語言模型在中文輸入法中的應用研究[D].西安:西安電子科技大學,2008.

[8]梁云燕,張軍,張瓏.用于嵌入式系統的快速中文輸入法[J].今日科苑,2008(6):195.

[9]張軍,季偉東.基于嵌入式系統的一種快速中文輸入法的設計[J]. 哈爾濱師范大學自然科學學報,2008(1):14-16.

[10]華紹和,蔣順炳,陳一凡.有關漢字鍵盤輸入的國家標準與規范[C].漢字輸入技術與應用研討會論文集,2002.

主站蜘蛛池模板: 欧美精品H在线播放| 91福利一区二区三区| 99久久精品免费看国产电影| 欧美a级在线| 欧美日韩一区二区在线免费观看| 久久婷婷六月| 亚洲免费毛片| 日本免费福利视频| 国产精品久久久精品三级| 国产网站免费看| 人妻丰满熟妇AV无码区| 国产理论一区| 日韩高清无码免费| 色婷婷亚洲综合五月| 91偷拍一区| 视频一区亚洲| 国产永久在线观看| 欧美在线综合视频| 9久久伊人精品综合| 福利小视频在线播放| 狠狠色婷婷丁香综合久久韩国| 九九九久久国产精品| 99在线视频精品| 园内精品自拍视频在线播放| 国产主播福利在线观看| 亚洲综合经典在线一区二区| 欧美一区二区人人喊爽| 国产精品一线天| 国产精品美人久久久久久AV| 欧美另类精品一区二区三区| 黄网站欧美内射| 亚洲第一综合天堂另类专| 国产精品手机在线播放| 不卡无码网| 国产精品太粉嫩高中在线观看| 99久久精品美女高潮喷水| 亚洲综合九九| 日韩在线第三页| 综合色天天| 国产99视频在线| 91精品久久久无码中文字幕vr| 日本精品αv中文字幕| 色天堂无毒不卡| 久操中文在线| 久久久久人妻精品一区三寸蜜桃| 亚洲无限乱码| 性视频久久| 国产日韩丝袜一二三区| 亚洲资源站av无码网址| 无码一区中文字幕| 国产精品亚洲专区一区| 成人免费一区二区三区| 国产激情在线视频| 夜夜拍夜夜爽| 久久永久视频| 直接黄91麻豆网站| 国产av无码日韩av无码网站| av尤物免费在线观看| 美女被狂躁www在线观看| 人妻无码中文字幕第一区| 日韩最新中文字幕| 99九九成人免费视频精品| 丁香婷婷激情综合激情| 色哟哟国产精品| 91伊人国产| 亚洲第一视频免费在线| 日韩午夜福利在线观看| 欧美激情综合一区二区| 国产欧美日韩视频一区二区三区| 亚洲人成网站在线播放2019| 久久国产亚洲欧美日韩精品| 国产精品hd在线播放| 国产亚洲视频中文字幕视频| 波多野结衣的av一区二区三区| 精品国产91爱| 国产在线小视频| 久久久久久午夜精品| 国产精品播放| 久热这里只有精品6| 国产99精品视频| 天天干天天色综合网| 99国产精品国产|