Cómo importar y leer un corpus wsj en python
Tengo un código que construye un modelo de n-gramas para probar la predicción de la siguiente palabra basada en un corpus proporcionado. ¿Cómo puedo reemplazar el corpus dado para leer el corpus de WSJ como corpus de entrenamiento? A continuación se muestra una parte del programa.
import nltk, re, pprint, string
from nltk import word_tokenize, sent_tokenize
from nltk.util import ngrams
from nltk.corpus import stopwords
string.punctuation = string.punctuation + '“'+'”'+'-'+'’'+'‘'+'—'
string.punctuation = string.punctuation.replace('.', '')
file = open('./corpus.txt', encoding='utf8').read()
#preprocesar los datos
file_nl_removed = ""
for line in file:
line_nl_removed = line.replace("\n", " ")
file_nl_removed += line_nl_removed
file_p = "".join([char for char in file_nl_removed if char not in string.punctuation])
nltk.download('punkt')
sents = nltk.sent_tokenize(file_p)
print("El número de oraciones es", len(sents))
davy.ai
Para reemplazar el corpus dado y leer el corpus WSJ como corpus de entrenamiento, siga estos pasos:
Una vez que el corpus se haya descargado, puede utilizar el módulo
nltk.corpus.treebank
para acceder al corpus.Reemplace la línea
file = open('./corpus.txt', encoding = 'utf8').read()
con las siguientes líneas:El corpus
treebank
está tokenizado a nivel de palabra. Por lo tanto, no es necesario el código que elimina saltos de línea y puntuación.Por último, continúe con el resto de su código como de costumbre.