android 常用短语的添加,操作方法:使用Android上的百度输入法提供的导入词库和个性化短语,批量创建单词便于输入...
最近,我制作了一个小型APP,可以管理许多产品。产品名称不是一个常用词。用户经常需要输入这些产品名称(在软件外部,无法自动完成),并且每次都必须选择单词,正确的候选者通常不会出现在前面,很容易出错,并且输入效率低。通常,此问题与App本身无关。输入法应该考虑这个问题,但是我认为仅输入法是无法解决的。对于这个问题,用户体验至关重要,因此我试图解决这一难题。
此问题的关键是词汇表中没有要输入的单词,因此需要选择它。尽管主要的输入方法会记录用户输入的自制单词,但此词汇的形成速度太慢,无法快速适应。对于新单词,如果您可以学习同义词库的规则,则软件会分批构建同义词库,然后导入输入法,以便立即提高输入的准确性。
因为我常用的输入法是百度输入法,我对此很熟悉,并且我非常喜欢它的自定义短语功能,所以我以百度输入法为例来实现此功能。
百度输入法(此处是指百度输入法的Android版本,与以下相同)提供了导入同义词库的设置。在同义词库管理→同义词库备份和恢复中,我们必须首先备份本地同义词库,然后再进行备份。只有通过分析其备份文件才能制作此类文件。
单击备份将在SD卡baidu / ime /路径中生成两个文件:en2.txt和ch3.txt。其中,en2.txt放置英文自制词,ch3.txt放置中文自制词
en2.txt的示例如下:
......
ArcGIS 55000
arcgis 55000
are 55000
Are 55000
atr 55000
ate 55000
atm 60000
ATM 60003
......
ch3.txt显示
......
藏(cang) 60001
仓促(cang|cu) 60000
仓库(cang|ku) 60002
藏了(cang|le) 60000
苍穹(cang|qiong) 60000
沧桑(cang|sang) 60000
层(ceng) 60005
蹭(ceng) 60027
层次(ceng|ci) 60005
......
英语规则很简单,无需过多解释。在中文中,它是中文名称。然后是一个括号,里面有拼音,每个汉字拼音的中间用|分隔。最后一个数字是什么意思?实际上,这就是您输入的次数。自制单词的基准数字为60,000,例如layer(ceng)60005。我输入ceng并选择“ layer” 6次(为什么不是5次?嘿程序员都知道了),选择“ Ceng”“它是28次数,该数字确定其候选位置的数量,同时,百度输入法还提供了智能清除自制单词的功能,应使用此数据,因此要导出的单词越多,不容易清理,因此请适当增加此数字。
然后,当我们清楚地理解该规则后,就可以创建该同义词库。如果我们自己做中文,首先要解决的是拼音问题。检查后,Internet上通常使用两种解决方案。这里有更多详细介绍,我将在这里简单地将其提取出来:
使用ASCII码和拼音映射
优点:零依赖,只有一个类,易于使用
缺点:仅支持常见的一级汉字,对于某些不常见的汉字(bobo),无法正确获取拼音
(中文编码的第一级汉字通过拼音排序,很容易映射。第二级汉字通过笔画部首排序)使用第三方pinyin4j jar包。
优点:易于使用,实用性强
缺点:需要依赖第三方jar包
我尝试了第一个。方便而简洁。它太简洁了,但是不够准确。例如,Kou一词不正确。作为一个完美主义者,我选择了第二个选项,准确性确实得到了很大的提高。除复音特征因素外,到目前为止没有发现错误。
解决拼音问题后,您可以根据特定的内容和格式开始制作同义词库,然后使用Android OutputStreamWriter生成文件。但是,如果直接生成,导入将失败。比较格式之后,发现其导出的格式完全相同,为什么不识别呢?由于之前字符编码的折磨,我的第一个反应是字符编码错误。我比较了导出文件和计算机生成的文件,发现导出文件是Unicode编码,并且生成了utt-8,所以我们只需要在导出时指定Unicode编码
OutputStreamWriter os = new OutputStreamWriter(new FileOutputStream(f), "Unicode");
然后再次导出,导入成功!
但是我仍然觉得它不是太完美。如果有一个产品叫“我只是这么长的目录”,那么根据我们的方法,创建的单词太长,而百度输入法也是自制单词的长度限制为8个字符,对于中文和英文的混合输入,这有点无助。在这里,我们将使用第二种法宝:个性化短语。
在这里,我简要介绍一些个性化短语的功能。个性化短语是通过自定义输入代码和相应的输入内容。例如,我将输入代码定义为“ dz”,并在中文状态下输入dz。出现了我定义的“我的地址”的输入内容,该输入内容可能会很长,也可能是中文和英文的结合,这仅仅是快速输入的产物。百度输入法的个性化短语功能是在高级设置中→个性化短语→管理个性化短语可以导入和导出,我们也可以先导出以查看其格式
[快速符号]
alpha=0,α
beta=0,β
chi=9,χ
delta=0,Δ
epsilon=0,ε
gamma=9,γ
lambda=0,λ
mu=9,μ
number=0,№
omicron=0,ο
omega=0,Ω
......
官方默认有一组快速符号,然后其中有一些数学符号,格式为输入代码=候选位,输入内容,每组均以[group name]开头,值得一提的是是一个个性化短语,与合并的同义词库的导入不同,涵盖了的导入。其次,个性化短语的优先级最高(固定的第一个单词除外),因此可以使用它来定义一些经常输入的长文本,例如邮箱。地址,电话号码等再合适不过了。
在大量产品名称下,如何定义个性化短语的输入代码是合适的?我采用的方法是默认情况下使用拼音的缩写,同时用户可以自行对其进行修改。
实际上,这并不难实现,但是个人认为效果非常好。同义词库提供了更多的自动关联功能,个性化的短语被准确输入,两管齐下,并且输入极为流畅。
最后两个效果图也输入“我就是这么长的内容列表”
1.输入“ ycc”,我们预设为“我就是这么长的内容列表”
2.输入“我喜欢这个”,然后自动与“一长串内容”相关联
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shumachanpin/article-323988-1.html
android 常用短语的添加,操作方法:使用Android上的百度输入法提供的导入词库和个性化短语,批量创建单词便于输入...相关推荐
- 安卓上利用百度输入法提供的导入词库与个性短语,批量造词方便输入
最近有做个小APP,里面管理了很多的商品,商品名称不是常见的词,用户在会需要经常输入这些商品名称(软件外部,无法做自动补全),每次都要选词,正确的候选项往往不会出现在很前面,容易误选,输入效率较低.按 ...
- 华为android通知使用权6,如何在华为手机上开启百度应用的通知使用权限
如何在华为手机上开启百度应用的通知使用权限 有的人成为了果粉,有的人选择了安卓手机,那么在安卓手机华为手机上如何开启百度应用的通知使用权限呢?小编就来为大家介绍一下吧. 具体如下: 1. 第一步,打开 ...
- Android简单音乐盒,添加音乐播放的 上一首 和 下一首 控制
1.界面布局 activity_main.xml <?xml version="1.0" encoding="utf-8"?> <Linear ...
- android 动态添加元素,动态添加项目到Android中的NavigationView
Hexise.. 13 假设您有两个组,group1和group2.如果要将项目动态添加到group1,则可以为group2分配优先级,使其始终低于group1.然后,当您向group1添加新项目时, ...
- android 常用图像密码,这几种Android图形密码最常用 你也在用吗?
从iPhone 5s开始,按压式指纹识别就成了高端智能手机的标配,但是对于大部分没法体验指纹识别的用户来说,图形密码仍然是他们最常使用的解锁方式之一.有意思的是,最近一位名叫Marte Løge的挪威 ...
- Android 常用开发工具收藏
实践 • NIST网络安全实践指南:"移动设备安全:云和混合构建" • Android安全概述 • 开发人员的Android安全提示 • 移动应用渗透测试备忘录 • MobileA ...
- Android常用权限permission列表摘录
Android常用权限permission列表摘录 一个Android应用程序需要权限才能调用某些android系统的功能:一个android应用也可能被其他应用调用,因此也需要声明调用自身所需要的权 ...
- Android P HAL层添加HIDL实例(详细实现步骤)
Android P HAL层添加HIDL实例 本文是参照 https://www.jianshu.com/p/b80865c61d8e 教程介绍实现,原理请参考原作者. 本文将介绍如何在P OS上添加 ...
- Android studio给备忘录添加背景音乐
Android studio给备忘录添加背景音乐 目录 Android studio给备忘录添加背景音乐 一.音乐导入 二.代码 (1)AndroidMainfest.xml (2)MyIntentS ...
最新文章
- tomcat容器是如何创建servlet类实例?用到了什么原理?
- ios遍历模块的方式
- Android图片适应屏幕大小
- dmx512协议c语言编程,DMX512协议+c程序代码.pdf
- 构建持续交付_如何使交付成为您的重点将如何帮助您构建高质量的应用程序
- Java路径问题最终解决方案使用演示
- 【算法】剑指 Offer 52. 两个链表的第一个公共节点
- 腾讯广告算法大赛“视”界杯专题直播来袭,腾讯专家助你赛场争先!
- matlab 结构(struct)数组,matlab 结构(struct)数组
- java daemon 线程_【转】关于Java的Daemon线程的理解
- poj 3450 Corporate Identity 枚举+kmp,话说这家伙给我一顿超时啊!!!!
- Python中参数iterable的意义
- 【学习记录贴】#3——校园二维和三维电子地图制作
- hive用源生函数实现根据身份证计算年龄
- 方向导数(Directional derivatives)
- 第4章 计算机网络自顶向下——网络层:数据平面
- 华为智慧屏鸿蒙系统缺点,华为智慧屏用户评论及华为智慧屏电视真实体验优缺点情况...
- java中jframe是什么_java中JFrame是什么
- MLDLRL:MLDL相关概念的原始英文解释——对理解最初的ML和DL的相关概念的定义非常有用
- java中sort函数的使用