У меня есть каталог, полный .txt
файлов (документов). Сначала я load
документов и раздеть некоторые скобки и удалить некоторые цитаты, так что документы выглядят следующим образом, например:Проблемы с подбором словаря в scikit-learn?
document1:
is a scientific discipline that explores the construction and study of algorithms that can learn from data Such algorithms operate by building a model
document2:
Machine learning can be considered a subfield of computer science and statistics It has strong ties to artificial intelligence and optimization which deliver methods
Так я загружаю файлы из каталога, как это:
preprocessDocuments =[[' '.join(x) for x in sample[:-1]] for sample in load(directory)]
documents = ''.join(i for i in ''.join(str(v) for v
in preprocessDocuments) if i not in "',()")
Тогда я triying векторизовать document1
и document2
для того, чтобы создать учебную матрицу следующим образом:
from sklearn.feature_extraction.text import HashingVectorizer
vectorizer = HashingVectorizer(analyzer='word')
X = HashingVectorizer.fit_transform(documents)
X.toarray()
Тогда это выход:
raise ValueError("empty vocabulary; perhaps the documents only"
ValueError: empty vocabulary; perhaps the documents only contain stop words
Как создать векторное представление с учетом этого ?. Я думал, что загружал загруженные файлы в documents
, но кажется, что документы не могут быть установлены.
Спасибо за обратную связь, когда я печатаю 'documents' я получаю следующее:' [очень большой текст] [другой очень большой текст] [третий очень большой текст] ', три списка, которые представляют 3 .txt-файлы, которые у меня есть в каталоге, любое предложение отсюда ?. – tumbleweed
Да, ваши 'документы' должны быть списком, где каждый элемент представляет собой строку с символическим документом. Что-то вроде: 'documents = ['word_1_doc_1 word_2_doc_1 word_3_doc_1', 'word_1_doc_2 word_2_doc_2 ...', 'word_1_doc_3, word_2_doc_3 ...']'. Если вы делаете что-то вроде 'documents = ['' .join (ii) для ii в документах]', это может сделать трюк. –