基于Android平台拼写检查工具关键技术研究
2013-03-27李顺
李 顺
沈阳广播电视大学 (沈阳 110003)
0 引言
在Android 平台下用Java编写一个拼写检查工具,帮助人们来检查文件中的拼写错误。用户将文件导入该工具即可,在该工具中进行拼写检查,将错误标出并给出相应的可能正确的拼写建议,方便用户检查文件是否有拼写错误。
在Windows操作系统下搭建Android平台,在搭建好的Android平台上模拟实现与Word类似的拼写检查工具。开发语言选用Java,采用Eclipse、ADT、SDK等工具进行开发。涉及到的数据库使用了占用空间较小的Sqlite数据库。
1 关键问题及关键技术分析
为用户提供一个拼写检查工具,在翻译结果提交过程中,进行全面精确的拼写校对分析(解析),通过一系列试探(模式匹配)来标记错误,拼写校对一些英文资料。所涉及到的关键问题及关键技术如下。
1.1 基于Android平台的文件导入导出问题
将文件导入工具的时候,系统默认是到模拟器的内存中去寻找而不是到实体机中的路径去寻找,这样就需要将文件提前放到模拟器中!放在模拟器中的位置也有不同,在raw文件夹中,任何文件的大小不允许超过1M,所以如果文件过大就需要放在模拟的SD卡中,SD是没有大小要求的!
当处理完文档后需要保存的时候,文件的保存位置需要注意,raw是模拟器启动时读取的文件,之后的操作中不会再使用,所以保存时不能将修改后的文档保存在raw文件夹当中,于是要保存的文件也只能放在SD卡中。
1.2 基于Android平台的SD卡即硬盘的建立问题
很多的内容都是要放在SD卡中的,导入需要在SD卡中读取源文件,保存又会将修改后的文件保存在SD卡中,于是SD卡的建立是必需的。SD卡的建立有2种方法。
1.2.1系统定义
自定义一个大小,由系统来完成该模拟器虚拟SD卡的创建,创建完成后,启动该模拟器,打开eclipse的DDMS——>File-Explorer看到如下的目录结构这就是创建的SD卡文件夹了。
1.2.2自定义
通过Android的Tools来创建SD卡并导入进来:
(1)打开dos,转换到你的sdk安装包的tools目录下,例如:目录如下:C:Androidandroid sdk ools;
(2)创建SD卡,在命令行中输入:mksdcard 1024M C:androidsdcard.img ;
(3)在eclipse里面创建模拟器,并以该sd卡来创建;
(4)创建完成之后,启动该模拟器,可以在Android SDK and AVD Manager里面指定模拟器并启动;
(5)同样打 开 eclipse的 DDMS— —>File-Explorer。
1.3 拼写检查算法的选择问题
分别针对语音匹配算法(Metaphone)和字串相似性算法(Levenshtein)做详细的分析。结合两种算法形成本工具所应用的拼写检查算法。
1.3.1 语音匹配算法
语音匹配算法(Metaphone)是根据发音的特点来检索单词的算法。
1.3.2 字符串相似性算法
字串相似性算法(Levenshtein)就是根据错误单词与词库中单词的相似程度,来给出拼写建议的算法。
在具体实验过程中,基于两种算法的比较,发现语音匹配算法的过程过于繁琐,时间复杂度太大,检查需要时间很长甚至会出现死机状况,所以本工具选择使用的是字符串相似性算法。
1.3.3 基于Android平台使用Sqlite数据库存储词典问题
词典的存储,用数据库存储。选用了SQLite,它是一款轻型的数据库,它占用资源非常的低,在嵌入式设备中,只需要几百K的内存就够了。首先要找到一个词库的txt文档,然后用一段程序来将txt文档中的单词一次写入到Sqlite数据库中,如果数据较大的话,会需要一段较长的时间;该工具将数据库放到了SD卡中,因为在资源中的文件是不允许超过1M,超过1M会直接影响程序的运行,而词库中存放的单词量巨大,所以不能放在资源Raw文件中,这样就摆脱了对文件大小的限制。
2 评估分析与结论
Android平台是目前很有潜力的一种嵌入式平台,由于他的广泛应用,针对在平板电脑上处理引文文档的问题,开发了一款基于Android平台的拼写检查工具,可以帮助用户找到并修改一些英文单词的拼写错误,方便人们对引文文档的处理。
[1]杨丰盛.Android应用开发揭秘[M].北京:机械工业出版社出版,2010.
[2]李伟梦.Android 4编程入门经典——开发智能手机与平板电脑应用(移动与嵌入式开发技术)[M].北京:清华大学出版社,2012.
[3]Todd D.Morton.嵌入式微控制器(英文影印版)[M].北京:科学出版社出版,2002.
[4](美)策希纳,(美)格林.Android 4游戏编程入门经典(移动与嵌入式开发技术)[M].北京:清华大学出版社,2012.
[5](美)艾佛瑞.Android多媒体开发高级编程——为智能手机和平板电脑开发图形、音乐、视频和富媒体应用(移动与嵌入式开发技术)[M].北京:清华大学出版社,2012.