昨天接手了一个任务,把一个语音答题面板添加上关键词识别的功能。
答题面板是这样的,共25道题目,每道题目可以点击或语音询问,然后会返回给你答案。前一位开发人员用动态数组clickList记录题目状态,一定题目点击赋予一定的分值,25道题都点击或语音过(他没做)就给你满分,类似知识学习一样。
策划说添加新需求,某题的关键词对应上就算这题点击或语音过了。
但是我做的时候发现,前一位开发人员只完成了点击部分的记录,也就是语音问完25题,也记录到动态数组中,一分不算,于是跟策划沟通后,我只能先把语音部分的赋分记录功能补齐。
大概流程是,前端语音识别,发送给后端,后端处理后返回数据,但是麻烦的点出现了,后端返回的answer数据是正确的,但是match_content数据不正确,于是我没有办法完成对应题目的匹配。
我问组长怎么做,组长说后端不好改,最好是改前端的表格,于是我跟策划沟通,但是策划应该很忙,我只能自己想办法。
我实现了一个字符串相似度匹配的算法,通过类似求最长公共子串的思路,实现了求字符串a变成字符串b最少需要改动(增 删 改)的次数,并用次数÷最长串获得相似度,我把相似度大于六十的作为合格的对应串。(其实是莱文斯坦距离算法)
我想Excel表格中题目和返回的match_content字段以六十的相似度匹配就能成功。但本来以为成功了,实现语音部分的赋分记录功能了,没想到自测试的时候,发现match_content居然六十都匹配不上(答案是对的 但答案有重复的 没办法作为识别标准量),我有些崩溃。
我问策划能改表吗,策划没回,应该很忙。我很无奈,突然灵光一现,把语音识别的内容也做相似度比较,跟match_content的比较结果用或链接,最终实现了语音的赋分功能。(昨天改完就下班了,没给策划看过,不知道满不满意)
今天上班,我要回看思考完善一下昨天做的东西,然后再去实现关键词识别的功能(策划给我新发了一个表,但是我觉得新表和原表可以合并,今天跟策划讨论一下),后续还有另一个项目还在等着我去做,叹时间不足。
如果时间充足的话,好想每一个我的代码都认认真真的看一遍敲一次啊!希望策划对我昨天和今天的修改能满意吧。