Saya menggunakan korpus nltk
perpustakaan movie_reviews
yang berisi banyak dokumen. Tugas saya adalah mendapatkan kinerja prediksi dari tinjauan ini dengan pra-pemrosesan data dan tanpa pemrosesan awal. Tetapi ada masalah, dalam daftar documents
dan documents2
saya memiliki dokumen yang sama dan saya perlu mengocoknya untuk menjaga urutan yang sama di kedua daftar. Saya tidak dapat mengocoknya secara terpisah karena setiap kali saya mengacak daftar, saya mendapatkan hasil lain. Itu sebabnya saya perlu mengocok sekaligus dengan urutan yang sama karena saya perlu membandingkannya pada akhirnya (tergantung pesanan). Saya menggunakan python 2.7
Contoh (sebenarnya adalah string yang diberi token, tetapi ini tidak relatif):
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')]
Dan saya perlu mendapatkan hasil ini setelah mengocok kedua daftar:
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')]
Saya memiliki kode ini:
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