मैं nltk
लाइब्रेरी के movie_reviews
कॉर्पस का उपयोग कर रहा हूं जिसमें बड़ी संख्या में दस्तावेज हैं। मेरे कार्य को डेटा के पूर्व-प्रसंस्करण और पूर्व-प्रसंस्करण के बिना इन समीक्षाओं का अनुमानित प्रदर्शन मिल रहा है। लेकिन समस्या है, सूचियों में documents
और documents2
मेरे पास एक ही दस्तावेज हैं और मुझे दोनों सूचियों में समान क्रम रखने के लिए उन्हें फेरबदल की आवश्यकता है। मैं उन्हें अलग से फेरबदल नहीं कर सकता क्योंकि हर बार जब मैं सूची में फेरबदल करता हूं, मुझे अन्य परिणाम मिलते हैं। इसलिए मुझे एक ही आदेश के साथ एक बार में फेरबदल करने की आवश्यकता है क्योंकि मुझे अंत में उनकी तुलना करने की आवश्यकता है (यह आदेश पर निर्भर करता है)। मैं अजगर 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