Usando word2vec para clasificar palabras en categorías

ANTECEDENTES

Tengo vectores con algunos datos de muestra y cada vector tiene un nombre de categoría (Lugares, Colores, Nombres).

['john','jay','dan','nathan','bob']  -> 'Names'
['yellow', 'red','green'] -> 'Colors'
['tokyo','bejing','washington','mumbai'] -> 'Places'

Mi objetivo es entrenar un modelo que tome una nueva cadena de entrada y prediga a qué categoría pertenece. Por ejemplo, si una nueva entrada es "púrpura", entonces debería poder predecir 'Colores' como la categoría correcta. Si la nueva entrada es "Calgary", debería predecir "Lugares" como la categoría correcta.

ACERCARSE A, APROXIMARSE

Investigué un poco y encontréWord2vec. Esta biblioteca tiene una función de "similitud" y "mostsimilarity" que puedo usar. Entonces, un enfoque de fuerza bruta que pensé es el siguiente:

Tomar nueva entrada.Calcule su similitud con cada palabra en cada vector y tome un promedio.

Entonces, por ejemplo, para la entrada "rosa", puedo calcular su similitud con las palabras en los "nombres" de vectores, tomar un promedio y luego hacer eso para los otros 2 vectores también. El vector que me da el promedio de similitud más alto sería el vector correcto para que pertenezca la entrada.

PROBLEMA

Dado mi limitado conocimiento en PNL y aprendizaje automático, no estoy seguro de si ese es el mejor enfoque y, por lo tanto, estoy buscando ayuda y sugerencias sobre mejores enfoques para resolver mi problema. Estoy abierto a todas las sugerencias y también señalar cualquier error que pueda haber cometido, ya que soy nuevo en el mundo del aprendizaje automático y la PNL.

Respuestas a la pregunta(2)

Su respuesta a la pregunta