Estoy usando el corpus de la nltk
biblioteca movie_reviews
que contiene una gran cantidad de documentos. Mi tarea es obtener un rendimiento predictivo de estas revisiones con preprocesamiento de los datos y sin preprocesamiento. Pero hay un problema, en las listas documents
y documents2
tengo los mismos documentos y necesito mezclarlos para mantener el mismo orden en ambas listas. No puedo mezclarlos por separado porque cada vez que mezclo la lista, obtengo otros resultados. Es por eso que necesito mezclarlos a la vez con el mismo orden porque necesito compararlos al final (depende del orden). Estoy usando python 2.7
Ejemplo (en real son cadenas tokenizadas, pero no es relativo):
documents = [(['plot : two teen couples go to a church party , '], 'neg'),
(['drink and then drive . '], 'pos'),
(['they get into an accident . '], 'neg'),
(['one of the guys dies'], 'neg')]
documents2 = [(['plot two teen couples church party'], 'neg'),
(['drink then drive . '], 'pos'),
(['they get accident . '], 'neg'),
(['one guys dies'], 'neg')]
Y necesito obtener este resultado después de mezclar ambas listas:
documents = [(['one of the guys dies'], 'neg'),
(['they get into an accident . '], 'neg'),
(['drink and then drive . '], 'pos'),
(['plot : two teen couples go to a church party , '], 'neg')]
documents2 = [(['one guys dies'], 'neg'),
(['they get accident . '], 'neg'),
(['drink then drive . '], 'pos'),
(['plot two teen couples church party'], 'neg')]
Tengo este codigo:
def cleanDoc(doc):
stopset = set(stopwords.words('english'))
stemmer = nltk.PorterStemmer()
clean = [token.lower() for token in doc if token.lower() not in stopset and len(token) > 2]
final = [stemmer.stem(word) for word in clean]
return final
documents = [(list(movie_reviews.words(fileid)), category)
for category in movie_reviews.categories()
for fileid in movie_reviews.fileids(category)]
documents2 = [(list(cleanDoc(movie_reviews.words(fileid))), category)
for category in movie_reviews.categories()
for fileid in movie_reviews.fileids(category)]
random.shuffle( and here shuffle documents and documents2 with same order) # or somehow