es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Bigrams y colocaciones en Python para lograr la siguiente salida en Python.

tokenizedword = nltk.regexp_tokenize(textcontent, pattern = r’\w*’, gaps = False)
tokenizedwords = [x.lower() for x in tokenizedword if x != ”]
tokenizedwordsbigrams=list(nltk.bigrams(tokenizedwords))
stop_words= set(stopwords.words(‘english’))
tokenizednonstopwordsbigrams=[(w1,w2) for w1 , w2 in tokenizedwordsbigrams
if (w1 not in stop_words) and (w2 not in stop_words)]
cfd_bigrams=nltk.ConditionalFreqDist(tokenizednonstopwordsbigrams)
mostfrequentwordafter=cfd_bigrams[word].most_common(3)
tokenizedwords = nltk.Text(tokenizedwords)
collocationwords = tokenizedwords.collocation_list()
return mostfrequentwordafter ,collocationwords

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El código parece funcionar bien ya que produce la salida correcta para las palabras más frecuentes después de una palabra dada. Sin embargo, la salida esperada parece ser diferente y pide palabras de colocación en lugar de las palabras más frecuentes después de una palabra dada.

    Para obtener la salida esperada, puede ser necesario modificar el código reemplazando las líneas que generan las palabras más frecuentes después de una palabra dada:

    mostfrequentwordafter=cfd_bigrams[word].most_common(3)
    

    con las líneas que generan las palabras de colocación:

    collocationwords = tokenizedwords.collocation_list()
    

    Entonces, el código modificado sería:

    tokenizedword = nltk.regexp_tokenize(textcontent, pattern = r'\w*', gaps = False)
    tokenizedwords = [x.lower() for x in tokenizedword if x != '']
    tokenizedwordsbigrams=list(nltk.bigrams(tokenizedwords))
    stop_words= set(stopwords.words('english'))
    tokenizednonstopwordsbigrams=[(w1,w2) for w1 , w2 in tokenizedwordsbigrams
    if (w1 not in stop_words) and (w2 not in stop_words)]
    cfd_bigrams=nltk.ConditionalFreqDist(tokenizednonstopwordsbigrams)
    tokenizedwords = nltk.Text(tokenizedwords)
    collocationwords = tokenizedwords.collocation_list()
    return collocationwords
    

    Este código modificado debería producir la salida esperada de palabras de colocación en lugar de las palabras más frecuentes después de una palabra dada.

Comments are closed.