Sto usando il corpus nltk
della biblioteca movie_reviews
che contiene un gran numero di documenti. Il mio compito è ottenere prestazioni predittive di queste revisioni con la pre-elaborazione dei dati e senza pre-elaborazione. Ma c'è un problema, negli elenchi documents
e documents2
ho gli stessi documenti e ho bisogno di mescolarli per mantenere lo stesso ordine in entrambi gli elenchi. Non posso mescolarli separatamente perché ogni volta che mischio l'elenco, ottengo altri risultati. Questo è il motivo per cui ho bisogno di mescolare contemporaneamente con lo stesso ordine perché alla fine devo confrontarli (dipende dall'ordine). Sto usando Python 2.7
Esempio (in realtà sono stringhe tokenizzate, ma non è 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')]
E ho bisogno di ottenere questo risultato dopo aver mescolato entrambe le liste:
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')]
Ho questo codice:
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