Saltar al contenido

Obtener bigramas y trigramas en word2vec Gensim

Este grupo especializado pasados muchos días de trabajo y de recopilar de datos, han obtenido la respuesta, deseamos que resulte útil para ti para tu trabajo.

Solución:

En primer lugar, debe usar las frases de clase de gensim para obtener bigramas, que funcionan como se indica en el documento.

>>> bigram = Phraser(phrases)
>>> sent = [u'the', u'mayor', u'of', u'new', u'york', u'was', u'there']
>>> print(bigram[sent])
[u'the', u'mayor', u'of', u'new_york', u'was', u'there']

Para obtener trigramas, etc., debe usar el modelo de bigrama que ya tiene y aplicarle Frases nuevamente, y así sucesivamente. Ejemplo:

trigram_model = Phrases(bigram_sentences)

También hay un buen cuaderno y un video que explica cómo usar eso … el cuaderno, el video

La parte más importante es cómo usarlo en oraciones de la vida real, que es la siguiente:

// to create the bigrams
bigram_model = Phrases(unigram_sentences)

// apply the trained model to a sentence
 for unigram_sentence in unigram_sentences:                
            bigram_sentence = u' '.join(bigram_model[unigram_sentence])

// get a trigram model out of the bigram
trigram_model = Phrases(bigram_sentences)

Espero que esto te ayude, pero la próxima vez danos más información sobre lo que estás usando, etc.

PD: Ahora que lo editó, no está haciendo nada para obtener bigramas, solo dividiéndolo, debe usar Frases para obtener palabras como Nueva York como bigramas.

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)


print(bigram_phraser)

for sent in sentence_stream:
    tokens_ = bigram_phraser[sent]

    print(tokens_)

Frases y Phraser son los que debes buscar

bigram = gensim.models.Phrases(data_words, min_count=1, threshold=10) # higher threshold fewer phrases.
trigram = gensim.models.Phrases(bigram[data_words], threshold=100) 

Una vez que haya terminado de agregar vocabulario, use Phraser para un acceso más rápido y un uso eficiente de la memoria. No es obligatorio pero útil.

bigram_mod = gensim.models.phrases.Phraser(bigram)
trigram_mod = gensim.models.phrases.Phraser(trigram)

Gracias,

valoraciones y reseñas

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *