【问题标题】:How to Extract Color Given Word or Sentence如何提取给定单词或句子的颜色
【发布时间】:2019-01-02 11:59:57
【问题描述】:
我正在尝试清理由用户在字段中输入数据管理的数十万行数据。在最近设置输入掩码后,没有重新清理数据。
现在我试图假设一个单词(颜色)或句子(可能有也可能没有颜色)传递给一个函数并返回它的最佳颜色猜测。
目前是否有一个我不知道的库正在执行此操作?
示例
输入:
INT SATIN BASE
输出:
缎面
输入:
浅红色
输出:
红色
输入:
锁盒 - 白色
输出:
白色
【问题讨论】:
标签:
python
machine-learning
nltk
data-science
【解决方案1】:
您可以使用 python colour 包来检查输入关键字在哪里是颜色。要安装,请使用pip install colour
>>> from colour import Color
>>> s = 'Light Red'
>>> _color = [i for i in s.split(' ') if check_color(i)]
['Red']
这里是自定义函数:
def check_color(color):
try:
Color(color)
return True
except ValueError:
return False
【解决方案2】:
获取常用颜色名称的列表(例如来自https://simple.wikipedia.org/wiki/List_of_colors)并将它们收集到一个列表中。
然后,使用颜色名称列表和输入字符串,搜索输入字符串中存在的任何颜色名称。
color_names = [..., "Satin", ...]
input_str = "INT SATIN BASE"
found_colors = [color for color in color_names if color.lower() in input_str.lower()]
我通过.lower() 进行了基本的输入清理,以增加SATIN 之类的字符串匹配Satin 的机会,但是如果输入字符串可能包含不需要的字符,则可能需要进行额外的数据清理。