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
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:
con las líneas que generan las palabras de colocación:
Entonces, el código modificado sería:
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.