Error en la extracción de frases usando Gensim

Estoy tratando de obtener los bigtwigs en las oraciones usando Frases en Gensim de la siguiente manera.

from gensim.models import Phrases from gensim.models.phrases import Phraser documents = ["the mayor of new york was there", "machine learning can be useful sometimes","new york mayor was present"] sentence_stream = [doc.split(" ") for doc in documents] #print(sentence_stream) bigram = Phrases(sentence_stream, min_count=1, threshold=2, delimiter=b' ') bigram_phraser = Phraser(bigram) for sent in sentence_stream: tokens_ = bigram_phraser[sent] print(tokens_) 

A pesar de que detecta “nuevo”, “york” como “nueva york”, no captura “máquina”, sino que aprende como “aprendizaje automático”.

Sin embargo, en el ejemplo que se muestra en el sitio web de Gensim , fueron capaces de capturar las palabras “máquina”, “aprender” como “aprendizaje automático”.

Por favor, hágame saber cómo obtener el “aprendizaje automático” como un bigtwig en el ejemplo anterior.

La técnica utilizada por las Phrases gensim se basa puramente en estadísticas de co-ocurrencias: la frecuencia con que las palabras aparecen juntas, en lugar de solo, en una fórmula también afectada por min_count y comparada con el valor de threshold .

Es solo porque su conjunto de entrenamiento tiene ‘nuevo’ y ‘york’ ocurren uno junto al otro dos veces, mientras que otras palabras (como ‘máquina’ y ‘aprendizaje’) solo ocurren una junto al otro una vez, que ‘new_york’ se convierte en un bigtwig, y otras parejas no lo hacen. Lo que es más, incluso si encuentra una combinación de min_count y threshold que promueva ‘machine_learning’ a un bigtwig, también se emparejará con todos los demás bigram-that-aparece-una vez, lo que probablemente no sea lo que quiere.

Realmente, para obtener buenos resultados de estas técnicas estadísticas, necesita muchos datos variados y realistas. (Los ejemplos del tamaño de un juguete pueden tener éxito o fallar superficialmente por razones superficiales del tamaño de un juguete).

Incluso entonces, tenderán a pasar por alto las combinaciones que una persona consideraría razonables y las combinaciones que una persona no haría. ¿Por qué? Debido a que nuestras mentes tienen formas mucho más sofisticadas (incluida la gramática y el conocimiento del mundo real) para decidir cuándo grupos de palabras representan un solo concepto.

Así que incluso con más datos mejores, prepárate para n-gtwigs sin sentido. Sintonice o juzgue el modelo para determinar si se trata de una mejora general de su objective, no de un punto único o de una verificación ad hoc para que coincida con su propia sensibilidad.

(Con respecto al comentario de la documentación de gensim al que se hace referencia, estoy bastante seguro de que si prueba Phrases solo en las dos oraciones que figuran allí, no encontrará ninguna de las frases deseadas, ni ‘new_york’ o ‘machine_learning’. Como ejemplo figurativo , los puntos suspensivos ... implican que el conjunto de entrenamiento es más grande, y los resultados indican que los textos adicionales que no se muestran son importantes. Es solo debido a la tercera oración que ha agregado a su código que se detecta ‘new_york’. ejemplos para hacer que ‘machine_learning’ se parezca más a un emparejamiento estadísticamente externo, su código también podría promover ‘machine_learning’.)

Probablemente está por debajo de su threshold ?

Intenta usar más datos.