ฉันใช้คลังข้อมูลnltk
ของห้องสมุดmovie_reviews
ซึ่งมีเอกสารจำนวนมาก งานของฉันคือรับประสิทธิภาพเชิงคาดการณ์ของบทวิจารณ์เหล่านี้ด้วยการประมวลผลข้อมูลล่วงหน้าและไม่มีการประมวลผลล่วงหน้า แต่มีปัญหาในรายการdocuments
และdocuments2
ฉันมีเอกสารเดียวกันและฉันต้องการสับเปลี่ยนเพื่อให้ลำดับเดียวกันในทั้งสองรายการ ฉันไม่สามารถสับเปลี่ยนแยกกันได้เพราะทุกครั้งที่ฉันสับเปลี่ยนรายการฉันจะได้ผลลัพธ์อื่น ๆ นั่นคือเหตุผลที่ฉันต้องสับในครั้งเดียวด้วยลำดับเดียวกันเพราะฉันต้องการเปรียบเทียบในตอนท้าย (ขึ้นอยู่กับลำดับ) ฉันใช้ python 2.7
ตัวอย่าง (ในความเป็นจริงเป็นโทเค็นสตริง แต่ไม่สัมพันธ์กัน):
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')]
และฉันต้องการผลลัพธ์นี้หลังจากสุ่มทั้งสองรายการ:
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')]
ฉันมีรหัสนี้:
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