比如“苹果”,一个意思是“一种水果”,一个意思是“手机、电脑品牌”。按照word2vec,意义相近的词的词向量也是想接近的,那么苹果的词向量是和香蕉、橙子的词向量接近,还是和三星、华为、联想之类的词接近?
有没有办法分开处理一词的多个含义?
3个回答
word2vec处理不了多义词的,但是Google最新的语言文字模型BERT可以处理。
了解一下BERT(Bidirectional Encoder Representations from Transformers)。
BERT的这个文章里还特地举例了,bank,在英文里是银行的意思,也是河岸、河畔的意思,典型的一词多义。
SofaSofa数据科学社区DS面试题库 DS面经
现在需要结合上下文理解词义的就是bert了
-
abuu
2019-05-29 10:06
我觉得word2vec本身应该是不能处理这个问题的,word2vec的作用是对词汇进行向量表达。如果一个词汇有多个含义,那么这个词汇的词向量本身也应该是多个向量的加和。
比如你提到的“苹果”,一个意思是“手机”,一个意思是“水果”,如果你做减法操作,$v($苹果$)-v($手机$)$,这个减法的结果应该比较接近$v($水果$)$。
此外,有一些基于word2vec的方法可以处理一词多义,如果看兴趣的话,可以看论文Solving Verbal Comprehension Questions in IQ Test by Knowledge-Powered Word Embedding的Section4.2。
SofaSofa数据科学社区DS面试题库 DS面经