Tôi đang sử dụng kho tài liệu nltk
của thư viện movie_reviews
chứa một số lượng lớn tài liệu. Nhiệm vụ của tôi là dự đoán hiệu suất của các bài đánh giá này với việc xử lý trước dữ liệu và không cần xử lý trước. Nhưng có một vấn đề, trong danh sách documents
và documents2
tôi có các tài liệu giống nhau và tôi cần xáo trộn chúng để giữ cùng thứ tự trong cả hai danh sách. Tôi không thể xáo trộn chúng một cách riêng biệt bởi vì mỗi lần tôi xáo trộn danh sách, tôi sẽ nhận được các kết quả khác. Đó là lý do tại sao tôi cần xáo trộn cùng một lúc với cùng một thứ tự vì cuối cùng tôi cần so sánh chúng (điều đó phụ thuộc vào thứ tự). Tôi đang sử dụng python 2.7
Ví dụ (trong thực tế là các chuỗi được mã hóa, nhưng nó không phải là tương đối):
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')]
And I need get this result after shuffle both lists:
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')]
I have this code:
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