方案实施步骤:在翻译单词wave时,如果它的其他关键词里面,含有场景关联单词,便把单词翻译成和场景关联单词对应的中文。比如:在图片的关键词中出现了wave,同时它还有其他关键词比如:沙滩或者大海或者游泳,有理由把wave翻译成海浪而不是挥手。
优点:
设计方案原理简单、易于理解。
方案使用容易,只要准备好规则表单,在翻译时简单查询一下即可。
缺点:
准备工作工程浩大,整理好一个涵盖常见中英文的规则表单需要耗费很大的人力。
准确度不高,待翻译英文的场景关联单词数量是巨大的,从中筛选满足翻译需求的单词并不简单,比如,关联单词太少导致图片的标签里面都没有出现,太多导致关联单词同时出现。
方案2:Word2Vec
方案 2 ,原理和方案 1 类似,是在方案 1 的基础上,进一步的扩展和量化,还是使用图片的其他的所有关键词来建立一个语义场景,决定英文单词的翻译方向, 不过这里我们把每个单词所处的语义场景转化成浮点数向量来表示,使得该方案更容易实施,也具有更高的准确度。这里的单词语义场景向浮点数向量的转换,采用开源的机器学习模型:Word2Vec,Word2Vec 是用于处理文本的双层神经网络,它的输入是文本语料,比如:人民日报所有文章、头条上的搜索媒体文章,输出则是一组向量,这些语料代表一个庞大的语义环境,而在这个语义环境里面,每个单词都有一个属于自己的空间位置,而这个位置便用一组向量来标示。其中动物和猴子的向量的相似度,是要比动物和桌子的相识度要高的。
下面展示了用头条的文章语料训练出来的,单词“偏爱”和“卓越”的浮点数向量,该向量便分别代表了它们在该语料环境下所处的位置。
计算两个单词在这个语境下的距离,这里采用的相似度度量为余弦相似度(Cosine Similarity)含义如下:
下面计算余弦相似度的python代码实现,可以用原始的math库实现,或者numpy库实现: