226 Computer Engineering April 5, 2011 整个过程由三部分组成:接收用户输入信息;辅音切分和语音转换;将结果输出到应用程序。
3.1个用户输入信息
由于硬件设计的差异,中国联通的智能设备主要有两种输入方式:全按键式和全触屏式。也有包含这两种方法的模型。无论配置如何,都可以通过密钥风暴窃听器的方法获取用户输入信息。全触屏类型需要输入法本身实现一个软键界面,供用户点击输入。为了从应用程序获取用户输入,应用程序需要通过IMM(InputMethodManager)通知操作系统它的输入可以被IME(InputMethodEditor)程序捕获。在英文输入法中,用户的输入信息为拼音流,找到信息后即可进行转换工作。 IMM/IME的工作原理将在第5节介绍。3.2 辅音切分和语音转换
这部分主要由输入法软件的内部逻辑完成。主要功能是将拼音流转成汉字流。使用的模型有以下两种。
3.2.1N 元语法模型
基于统计的N-gram模型(N-gram)是一种常用的自然语言处理模型,它可以更好地表示句子中单词和句子之间的依赖关系。在这个模型中,假设句子中第 i 个词的概率 P(wi) 只取决于出现在它上面的 n-1 个词。概率估计公式为:
P(wi)=P(wi|win+1,win+2,L,wi1)=
P(win+1,win+2,L,wi)P(w=
C(win+1,win+2,L,wi)(1)
in+1,win+2,L,wi1)C(win+1,win+2,L,wi1)
其中,C(win+1,win+2,L,wi)是成语组合win+1,win+2,L,wi在语料库中出现的次数。
使用 Bigram 模型时,句子中第 i 个词的概率 P(wi) 只取决于出现在它上面的词,句子 S={w1w2Lwn} 的概率为:
P(S)=P(ww12Lwn)=P(w1)P(w2|w1)LP(wi|wi1)LP(wn|wn1)@ >(2)
借助语料库中获得的每个单词的unigram和单词之间的二进制词频ime输入法编程 可实现输入法注入,可以估计出这个单词形成短语的概率。
3.2.2 个最佳句子估计
通过Bigram模型,可以得到任意句子出现的概率S={w1w2Lwn},然后就是找到最合理的词和句。由于只需要得到最优的句子路径,因此使用维特比算法来估计最大可能的句子路径。估计公式为:
maxP(S)=max[P(w1)P(w2|w1)LP(wn|wn1)]=
∏maxP(wi|wi1≤≤in
1)
(3)
其中,maxP(wi|wi1)是在这些拼音分词下最大化P(wi|wi1)值的转换词。
3.3个结果输出
这部分功能必须使用IMM/IME之间的数据和消息传输机制来完成。当输入法软件将转换后的汉字结果提交给应用程序时,通过IME套接字获取应用程序中的IMM连接对象,由该对象发送数据,应用程序端的IMM对象将进行风暴和数据处理,并将数据交给应用程序。要处理的程序。
面临的4个问题及其解决方案
在联通设备上实现句子级输入法,主要有两个难点:(1)在联通设备有限的内存空间中,要保证字库和程序的运行。( 2)既要保证拼音分词和拼音转换的准确率,又要保证估计量在联通设备允许范围内[3]。
4.1 显存空间问题解决显存空间问题
由于外部I/O消耗大量时间,需要频繁访问的内容存储在显存中。输入法初始化时,整体读取字体文件
Enter,使用最简单的字段进行存储。之所以使用链表,是因为Java不支持结构体,对象需要消耗大量显存和求值时间。必要的存储空间开销被声明为静态类型。该类型的特点是类的所有对象引用共享该类型变量的存储空间,系统初始化时会先分配显存空间,但必须注意防止读写逻辑错误。 另一方面需要注意的是内存回收,虽然Java有自己的垃圾回收机制ime输入法编程 可实现输入法注入,但是当资源急需时,强制回收代码,防止联通平台显存不足的问题.
4.2 运行时问题的解决方法
避免所有重复估计,并使用回退机制仅估计更改。例如,当用户减少或删除拼音时,只重新估计最后一段的拼音,句子路径只重新估计改变的节点。优化拼音表和词库的存储格式,采用Trie树索引方式,减少查找时间。减少学习模块,进一步降低转化准确率。
5Android操作系统及其IMM/IME框架
5.1 平台介绍
Android 智能操作系统的第 1 版由 OpenHandsetAlliance 开发,该平台的功能由 Google Projects for Android 进一步构建。该平台主要有以下优点:(1)代码完全开源,增加了平台用户的开发成本;(2)基于Linux通用操作系统,具有良好的硬件兼容性;( 3)丰富(4)对第三方开发的强大支持。目前平台主要支持的开发语言为Java,推荐开发环境为Eclipse,并配备相应的虚拟设备软件.
5.2Android平台IME/IMM系统框架
IME/IMM框架是操作系统的重要组成部分,主要协调操作系统、应用程序和输入法软件之间的干扰和数据传递,并负责输入法之间的切换。 Android平台下的IMM/IME结构及编译输入法所需的基本模块如图2所示。输入法主程序必须实现InputMethod套接字,否则应用程序将难以通过InputMethodManager控制输入法类,它不会被转换。后续输入信息。
图2 Android平台IMM/IME结构
6 系统实现
6.1 系统结构
开发平台有:AndroidSdkWindows1.5r2; EclipseV3.4.2; J2SESDK1.6.0_14.
系统结构如下:系统采用统一建模语言(UML)设计,系统类图如图3所示。
Android系统将InputMethod属性赋予一个Service(服务)类型的程序,并且要求实现输入法的主类必须继承API类:Input