基于关键词的语义泛化系统之泛化(一)
语义泛化目标
- 基础目标:利用腾讯800万词向量计算同义词,最好再实现至少其他一种方法。
- 小组输出:将该模块功能封装为一个函数。输入:关键词,输出:同义词
计划流程
- 在前期阶段基础的利用腾讯800万词向量计算同义词,完成模块功能
- 拓展阶段计划:完全脱离腾讯800万已有训练好的词向量,自主完成模型训练,查询算法。
主要问题
- 包含800万多词向量的文件占用空间很大(15.5GB),考虑我们开发设备内存位于(8—24GB),所以任何程序执行阶段将该文件一次读入内存是不可取的,读取时间过久且会有内存溢出的风险。
解决思路
-
申请资源
通过向实验室或指导老师申请算力更强、空间更大的设备进行处理与计算。但考虑到文件虽然很大,但我们认为在已有的设备上通过一定的设计与优化也能实现要求的功能,所以此方案暂不考虑。 -
数据裁剪
对800万关键词进行筛选,通过排除符号、数字、外文、过长词句、生僻语句等,保留最可能用到的那部分关键词,来得以尽可能减少功能的下降的同时缩小文件,使过滤后的文件可以较轻松地处理。该方案可以轻微裁剪去除不必要的内容,但过度的裁剪只适用于需要快速完成原型,我们希望最终的实现还是要考虑到大多数的内容。 -
多设备协作
通过网络联合多台开发设备,将任务拆分给多个设备,使得总任务耗时减少的同时使每台机器不会超出负载。该方案具有很高的可行性,但实现起来相对复杂,可以作为备用方案。 -
算法优化
在代码层面通过将流程的每一个步骤都设计成只需要源数据的一部分,从而使得内存不会溢出。同时设计缓存方案,在内存够用的前提下尽可能加快执行速度。我们小组计划优先从代码层面解决问题,通过对程序流程的优化来保证项目进行。