第一个文本处理项目总结(多音字常见读音标注工作):
来公司也有一段时间了,目前也开始被分配些任务了,第一个任务是关于给出多音字和其常见读音的任务,拿到任务时候是这样想到的最难易下手的地方是——什么叫常用,拿来几个例子,和同事一看,这明显是个开放的答案,一些读音根本就是我看来常见他觉得不是常见的,也有不少他看起来是常见我都没见过的。这就需要思考一个标准了,什么是所谓的常见呢,这个指标怎么量化呢?
想了一段时间我觉得可以从逆向来考虑,一个读音是不是一个多音字的常见读音,可以从读音出发看能不能很快联想到这个字,这和人的听写词汇是类似的。
所以问题从判断一个读音是不是一个字的常见读音转换成了这个字是不是在这个音对应的常见字中,而后一个问题显然是输入法的正向过程,从音到候选字表。我可以设定候选字中的顺序和所谓“常见”的候选字界限,这样常见这个信息指标就可以被量化了。
需要了解一些输入法的知识,主要的原理在于输入相应的拼音之后,当然我这里是单个的拼音到候选字过程,其实就是一个查表过程,这个表被称为码表,类似于suo->所锁所索缩…之类的一般来说这个表就是按照所谓的常见可能性高到底的顺序排的,那么主要工作就是获取码表,遍历读音,设置常见读音的界限。
但是在实现过程中,受限于自己的编程实力,码表这部分本来是期望通过自动化的测试工具等来获取码表,但是实力不允许(我不会,超级菜),所以只能网上用别人的码表(连接在此处:https://blog.youkuaiyun.com/damifeng8/article/details/7673872 )
关于候选词界限的判定,目前用了两种:
- 1 指定候选词总长度的3/5,4/5之类的
- 2 看候选字序列中在3500词最后出现的位置作为界定
效果图这里就不放了,写这篇只是记录一下实现和思考的思路,如果有dalao有更好的意见,可以一起交流一下。