Я пытаюсь применить токенизатор, используя функцию редуктора python mapper. У меня есть следующий код, но я продолжаю получать сообщение об ошибке. редуктор выводит значения в список, и я передаю значения векторизатору.
from mrjob.job import MRJob
from sklearn.cross_validation import train_test_split
from sklearn.naive_bayes import MultinomialNB
from sklearn.feature_extraction.text import CountVectorizer
class bagOfWords(MRJob):
def mapper(self, _, line):
cat, phrase, phraseid, sentiment = line.split(',')
yield (cat, phraseid, sentiment), phrase
def reducer(self, keys, values):
yield keys, list(values)
#Output: ["Train", "--", "2"] ["A series of escapades demonstrating the adage that what is good for the goose", "A series", "A", "series"]
def mapper(self, keys, values):
vectorizer = CountVectorizer(min_df=0)
vectorizer.fit(values)
x = vectorizer.transform(values)
x=x.toarray()
yield keys, (x)
if __name__ == '__main__':
bagOfWords.run()
ValueError: пустой словарный запас; возможно, документы содержат только стоп-слова
Спасибо за любую помощь, которую вы, ребята, можете предоставить.