Language agnostic 从单词集中获取最可能的颜色

Language agnostic 从单词集中获取最可能的颜色,language-agnostic,nlp,Language Agnostic,Nlp,是否有任何现有的库或方法可以让您计算出单词集最可能的颜色?比如黄瓜、苹果、草,它给我绿色。以前有人这样做过吗?如果我必须这样做,我将尝试使用google image或其他工具搜索基于单词的图像,并识别前n个结果中最常见的颜色。这听起来是一个非常合理的NLP问题,而且通过map reduce很容易处理 确定你称之为颜色的单词和短语的列表[‘蓝色’、‘绿色’、‘红色’、…]。 浏览大量句子,对于提到特定颜色的句子,对于该句子中的每一个单词,在文件中记下(单词,颜色\u名称)。(映射步骤) 然后,对于

是否有任何现有的库或方法可以让您计算出单词集最可能的颜色?比如黄瓜、苹果、草,它给我绿色。以前有人这样做过吗?

如果我必须这样做,我将尝试使用google image或其他工具搜索基于单词的图像,并识别前n个结果中最常见的颜色。

这听起来是一个非常合理的NLP问题,而且通过map reduce很容易处理

确定你称之为颜色的单词和短语的列表[‘蓝色’、‘绿色’、‘红色’、…]。 浏览大量句子,对于提到特定颜色的句子,对于该句子中的每一个单词,在文件中记下
(单词,颜色\u名称)
。(映射步骤)

然后,对于你在语料库中看到的每个单词,聚合你看到的所有颜色,得到类似于
{'cumber':{'green':300,'yellow':34,'blue':2},'tomato':{'red':900,'green':430'}…}
(减少步骤)


如果你使用足够大的语料库(比如维基百科),并且你知道如何删减非常少的、稀有的单词,您应该能够制作相当全面和强大的字典,将数百万项映射到它们的颜色。

另一种方法是在谷歌中进行文本搜索,查找颜色和相关单词的组合,并获取结果数量最多的组合。下面是一个快速的Python脚本:

import urllib
import json
import itertools

def google_count(q):
      query = urllib.urlencode({'q': q})
      url = 'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&%s' % query
      search_response = urllib.urlopen(url)
      search_results = search_response.read()
      results = json.loads(search_results)
      data = results['responseData']
      return int(data['cursor']['estimatedResultCount'])

colors = ['yellow', 'orange', 'red', 'purple', 'blue', 'green']

# get a list of google search counts
res = [google_count('"%s grass"' % c) for c in colors]
# pair the results with their corresponding colors
res2 = list(itertools.izip(res, colors))
# get the color with the highest score
print "%s is %s" % ('grass', sorted(res2)[-1][1])
这将打印:

grass is green

丹尼尔和席的林的回答都是很好的想法。沿着同一个轴,我们可以将两者结合起来,方法类似于Xilin的方法,但更简单:用您想要查找与+a“颜色”过滤器相关联的颜色的单词查询Google图像(见左下栏)。然后看看哪种颜色会产生更多的结果。

我建议尽可能使用一组严格定义的资源,如维基百科和。 例如,这里是“熊猫”的Wordnet:

S:(n)大熊猫,熊猫,熊猫熊,浣熊,大熊猫 (中国和西藏竹林中大型黑白色食草哺乳动物; 在某些分类中,熊被认为是熊科的一员或独立的动物 大熊猫科)

小熊猫,小熊猫,小熊猫,熊猫,熊,猫,熊, 红褐色东半球类浣熊食肉动物; 在某些分类中被认为与大熊猫无关)

由于语言简洁、精心构建,任何颜色词都很可能很重要。在这里你可以看到熊猫是黑白色和红棕色的

如果您确定维基百科的子部分(例如“植物学描述”),这将有助于提高您的结果的相关性。此外,维基百科上的第一张图片很可能是最好的“权威”图片


但是,与所有统计方法一样,您会得到误报(和否定,尽管这些可能不是什么问题)。

或者您可以在ImageNet()中进行搜索,它为Wordnet条目提供图像,因此您可能会得到更准确的图像。例如,使用谷歌搜索,“苹果”可能会显示科技公司而不是水果。