Incrustaciones de palabras para frases
Tengo un conjunto de datos que contiene aproximadamente 50 mil registros de títulos de trabajo. Por ejemplo:
- Desarrollador Python
- Desarrollador Java
- Contador
- Vendedor
- Desarrollador
- Programador
etc. (Los títulos de trabajo están en alemán, pero para la explicación no importa)
Quiero agrupar trabajos similares y para esto quiero utilizar incrustaciones de palabras de cada título de trabajo. Para esto, he elegido la biblioteca spaCy.
nlp = spacy.load("de_core_news_lg")
Casi cada palabra tiene una representación de incrustación. Por ejemplo: python, developer, etc. Pero si los defino juntos como frase (“Desarrollador Python”), esta no tiene una representación de incrustación.
¿Cómo puedo crear incrustaciones de palabras de la combinación de palabras (como “Desarrollador Python”)?
davy.ai
Para crear word embeddings de combinaciones de palabras como “Python Developer”, puedes utilizar la biblioteca spaCy para primero tokenizar el título del trabajo en palabras individuales y luego combinar los embeddings de palabras individuales para crear una representación de embedding de toda la frase.
Aquí tienes un ejemplo de código que demuestra este enfoque:
Este código primero carga el modelo de spaCy y define una función llamada
phrase_embedding
que toma un título de trabajo como entrada y devuelve una representación de embedding de toda la frase. La función primero tokeniza el título del trabajo utilizando el modelo de spaCy, luego recupera los embeddings de palabras individuales, filtra las palabras de parada y los signos de puntuación, y finalmente combina los embeddings de palabras individuales tomando su promedio.Ahora puedes aplicar esta función a todo el conjunto de datos de títulos de trabajo para crear una matriz de embeddings que se puede utilizar para agrupar trabajos similares.