果只是做一些简单的统计的话……
“您可以把您的需求发出来,我看看能不能做。”
“好的,我是想计算一下行业内每两个公司之间的相似度……”
凌志听着客户的需求,也不时提出一些疑问。回答完之后根据数据量给出了一个报价以及预期交付时间,客户并没有多砍价,就这么敲定了。
实际上计算文本相似度的方法有很多,比如统计两个文本中有没有词语同时出现,出现频率是否相近,标点符号使用频率是否一致等等。
但这些统计都是表层的统计,句子语义深层次的相似度没有办法通过这种办法来计算。
比如“开心”和“快乐”是同一语义,相似度为0.97,而“开心”和“伤心”则是相反语义,相似度为0.02。如果用最表层的统计方法是没办法得出上述结论的。
所以在当下,深度学习方法则成为主要的学习句子深层次语义的方法。
凌志并不想糊弄客户,他想既然要做那就尽量做到最好。
虽然客户在这一块并不是专业的,也并不知道计算相似度都有哪些方法,更没有去问凌志打算如何计算,但凌志依然想用深度学习方法来帮助客户准确计算每个公司的相似度。
凌志看着客户发来的每个公司的代表产品,找到了之前自己训练好的一份词向量表,先把产品名用分词工具分词,再对应到词向量表中,最终将两个公司之间的产品所对应的向量进行两两欧氏距离计算,最终一平均得到了每一对公司之间的相似度……
感觉也不复杂,但是不知不觉一天就过去了。凌志整理了一下数据,发给了客户。
“您好,相似度的计算已经搞好了,您看您还满意么?”
过了一会儿,客户回复道:
“[拱手]整理得太细致了,谢谢您。不过您是怎么计算相似度的呢?如果方便的话能不能告诉我一下,我想写进我的介绍推文里。”
“哦哦,其实也不复杂,我用的是词向量计算的,而词向量是用深度学习方法训练出来的……”
凌志仔细地打了一大段文字,大概介绍了一下原理,没有说得太细。
实际上词向量的训练过程是深度神经网络根据词的上下文来推断出来的,比如说,“开心”这个词周围经常出现的词汇与“伤心”就截然不同。
所以深度语义,本质上也是由他的上下文来决定的,这也是凌志