¿Cómo hacer crecer una lista de palabras relacionadas en base a palabras clave iniciales?

datascience.stackexchange https://datascience.stackexchange.com/questions/424

  •  16-10-2019
  •  | 
  •  

Pregunta

Hace poco vi una función interesante que fue una vez disponible en Hojas de cálculo: se empieza por escribir unas pocas palabras clave relacionadas en celdas consecutivas, decir: "azul", "verde", "amarillo", y genera automáticamente palabras clave similares (en este caso, otros colores). Ver más ejemplos en este video YouTube.

Me gustaría reproducir esto en mi propio programa. Estoy pensando en el uso de Freebase, y sería trabajar así de forma intuitiva:

  1. Recuperar la lista de palabras dadas en Freebase;
  2. Para su "común denominador (s)" y la construcción de una distancia métrica basada en esto;
  3. Rank otros conceptos basados ??en su "distancia" a las palabras clave originales;
  4. Mostrar los próximos conceptos más cercanos.

Como no estoy familiarizado con esta área, mis preguntas son:

  • ¿Hay una mejor manera de hacer esto?
  • ¿Qué herramientas están disponibles para cada paso?
¿Fue útil?

Solución

El word2vec algoritmo puede ser una buena manera de recuperar más elementos de una lista de palabras similares. Se trata de un algoritmo no supervisado "aprendizaje profundo" que ha sido previamente demostrada con datos de entrenamiento basados ??en Wikipedia (scripts de ayuda se proporcionan en la página de código de Google).

Actualmente hay C y implementaciones Python . Este tutorial por Radim Rehurek , el autor del tema Gensim modelar biblioteca , es un excelente lugar para comenzar.

El "tema único" demostración en el tutorial es un buen ejemplo de retreiving palabras similares a una solo término (intente buscar en 'rojo' o 'amarillo'). Debería ser posible extender esta técnica para encontrar las palabras que tienen el mayor similitud global a un conjunto de palabras de entrada.

Otros consejos

¿Usted ha considerado un enfoque basado en la explotación de frecuencia sencilla palabra co-ocurrencia en el corpus? Al menos, eso es lo que he visto la mayoría de la gente utiliza para esto. Creo que podría ser cubierto brevemente en el libro de Manning y Schütze, y me parece recordar algo así como una copia de asignación de tareas en la escuela grad ...

Más de fondo aquí: http: // nlp.stanford.edu/IR-book/html/htmledition/automatic-thesaurus-generation-1.html

Para este paso:

Rank otros conceptos basados ??en su "distancia" a las palabras clave originales;

Hay varias métricas de similitud semántica se podría considerar. Aquí hay un enlace a algunas diapositivas que puse juntos por un proyecto de clase utilizando algunas de estas métricas de similitud en WordNet: http://www.eecis.udel.edu/~trnka/CISC889-11S/lectures/greenbacker-WordNet-Similarity.pdf

Este es uno de los más agradable problema en el que el alcance podría variar de una asignación de la preparación de un proyecto de tamaño de Google.

De hecho, se puede comenzar con co-ocurrencia de las palabras (por ejemplo, probabilidad condicional). Pronto descubrirá que se obtiene la lista de palabras vacías como la relacionada la mayor parte de las palabras, simplemente porque son muy populares. Con el elevador de la probabilidad condicional se hará cargo de las palabras vacías, sino que hará la relación propenso a error en pequeño número (la mayor parte de los casos). Usted puede tratar de Jacard pero ya que es simétrica habrá muchas relaciones que ganó 't encontrar.

A continuación, se podría considerar las relaciones que aparecen sólo en la corta distancia de la palabra base. Se puede (y debe) considerar las relaciones de base sobre el corpus general (por ejemplo, Wikipedia) y específica del usuario (por ejemplo, sus mensajes de correo electrónico).

Muy pronto usted tendrá un montón de medidas de relación, cuando todas las medidas son buenas y tienen alguna ventaja sobre los otros.

Con el fin de combinar estas medidas, me gusta para reducir el problema en un problema de clasificación.

Se debe construir un conjunto de datos de parís de las palabras y etiquetarlos como "está relacionado". Con el fin de construir un gran conjunto de datos etiquetados puede:

  • Use fuentes de palabras relacionadas conocidas (por ejemplo, el bueno de Categorías Wikipedia) para aspectos positivos
  • La mayor parte de la palabra no conoce como relacionado no están relacionados.

A continuación, utilice todas las medidas que tienen como características de los pares. Ahora usted está en el dominio del problema de clasificación supervisada. Construir un clasificador en el conjunto de datos, evaluada de acuerdo a sus necesidades y obtener una medida de similitud que se adapte a sus necesidades.

Licenciado bajo: CC-BY-SA con atribución
scroll top