What is the best way to create the inverse function of [`Interpreter["Color"]`](http://reference.wolfram.com/language/ref/interpreter/Color.html)? That function takes a natural language color as input and returns an `RGBColor`.

Here I whipped up a basic classifier based on Mathematica's built-in color symbols:

    trainingset = 
      (List @@ ColorConvert[Symbol@#, "RGB"] -> #) & /@ 
      StringSplit[
        "Red,Green,Blue,Black,White,Gray,Cyan,Magenta,Yellow,Brown,Orange,Pink,Purple", ","]

    testset = {
      RGBColor[0., 0., 0., 0.],         RGBColor[0., 0., 0., 1.], 
      RGBColor[0., 0.2196, 0.7215, 1.], RGBColor[0., 0.4235, 0.2078, 1.], 
      RGBColor[0., 0.4784, 0.2392, 1.], RGBColor[0.8078, 0.0666, 0.1490, 1.],
      RGBColor[1., 1., 1., 1.],         RGBColor[1., 0.8705, 0., 1.],
      RGBColor[0.2039, 0.6980, 0.2, 1.],RGBColor[0.0039, 0., 0.4, 1.]
    }

    c = Classify[trainingset]

    c /@ Take[#, 3] & /@ (List @@ ColorConvert[#, "RGB"] & /@ testset)

    (*
      {"Black", "Black", "Blue", "Black", "Green", "Red", "White", "Yellow", "Green", "Black"}
    *)

I'm not sure how well it works in general, but the darker colors seem to come out as `"Black"`.