word2vec word to color association?



我正在尝试获得类似的颜色关联:

apple -> red
banana -> yellow
grass -> green
sky -> blue

使用googlenews-vector-vector-ngative300.bin向量,我首先尝试了

wv.similarity('apple',color)

其中颜色是主要颜色,例如"红色","黄色","蓝色"等。

果实"橙色"始终是最高的颜色关联,可能是因为它混合了颜色和水果。当我删除橙色时,结果仍然很奇怪:

apple:
[('violet', 0.24978276994901127), ('green', 0.20656763297902447), ('red', 0.19834849929308024), ('yellow', 0.18963902211016806), ('cyan', 0.17945308073294569), ('blue', 0.13687176308102386)]
cherry:
[('violet', 0.27348741504236473), ('red', 0.25540695681746473), ('yellow', 0.24285150471329794), ('blue', 0.20400566489159569), ('green', 0.18741563150077917), ('cyan', 0.12736182067644364)]
banana:
[('yellow', 0.27708333668133234), ('green', 0.25977272141145935), ('red', 0.24736077659820707), ('violet', 0.23909913025940599), ('cyan', 0.16519069493338848), ('blue', 0.15660144725154587)]

显然"紫罗兰色"与"苹果"one_answers"樱桃"一致(也许是植物?)。

我尝试将其作为类比。这适用于某些对象,但不能很好地概括:

wv.most_similar(restrict_vocab=100000, positive=['apple','yellow'], negative=['banana'])
[(u'red', 0.5296207666397095), (u'orange', 0.501822829246521), (u'bright_yellow', 0.49562686681747437), (u'purple', 0.4909234642982483), (u'blue', 0.465557336807251), (u'pink', 0.43768370151519775), (u'colored', 0.4296746551990509), (u'brown', 0.4290006756782532), (u'bright_orange', 0.4261433482170105), (u'yellows', 0.4199957549571991)]
wv.most_similar(restrict_vocab=100000, positive=['grass','yellow'], negative=['banana'])
[(u'bright_yellow', 0.4722655713558197), (u'blue', 0.45448029041290283), (u'red', 0.43442922830581665), (u'lawns', 0.4275570809841156), (u'maroon', 0.4197036325931549), (u'bright_orange', 0.41167205572128296), (u'brown', 0.4110153317451477), (u'purple', 0.4074830412864685), (u'grassy', 0.4017237722873688), (u'striped', 0.40009182691574097)]

我还尝试了Facebook fastText嵌入式,但结果更糟。我应该如何解决此问题并隔离"对象的常见颜色"的向量?

这是一件有趣的尝试,但是在我看来,单词向量是否会成功编码这些关系似乎是一个空旷的问题,任何成功级别都取决于很多特定的特定问题培训选择,包括语料库和参数。

尤其是,接受已发表新闻故事的培训的GoogleNews矢量集可能不像其他选择那样强大。(例如,我猜想儿童读物的文本或教育计划的成绩单将为此目的引起更强的矢量排序。)

violet也是一朵花,因此部分解释了它与其他水果的亲密关系。正如您所指出的那样,"橙色"的突出性在涉及水果时会产生问题。尽管有一些研究使用或创建单词向量来区分替代单词sense,但在普通词2VEC中或GoogleNews矢量中的多个单词范围之间没有歧义。(甚至像"蓝色","绿色","黄色","樱桃"one_answers"草"这样的词也可能影响矢量位置。)

我确实怀疑类比/定向方法可能比纯粹的类似性更多的运气。(也就是说,"问"哪个颜色是从这些其他objectword-> colorword示例中汲取的方向?",而不是"哪个colorword绝对最接近此Objectword?")

您可能希望尝试从较大域中尝试对ObjectWord-> Colorword示例对,或者尝试其他矢量 - 查看其他定义/复合材料是否更好地匹配您期望的答案。

例如。也许您的"学习方向"示例应包括非加州 - 天空 ->蓝色,煤 ->黑色等。

我记得曾经看到,如果将相同关系的许多相似之处一起使用,而不仅仅是一种,就可以改善类比解决的建议。(也就是说,在探测"德国:??"之前,从"英格兰:伦敦:莫斯科","法国:巴黎"中构成一个方向,而不是一个。不确定在Gensim most_similar() positive/negative列表中添加更多向量是否具有相同的效果,或者您需要进行差异/平均/规范。)

关于类比结果的解释和改进的有趣论文是征收&戈德堡的"稀疏和明确单词表示的语言规律"。

还有其他作品试图训练或歪曲单词(或概念/实体)向量在提问方面变得更好,这可能是相关的,但是除了暗示作为搜索词,我不知道任何技术在可用的库中,这是特别合适的或现成的。

最新更新