2016-03-25 1 views
0

Чтение некоторых вопросов о stackoverflow, и я не мог найти то, что искал, по крайней мере, я не думал, что это было, когда я читал разные сообщения.Scikit Learn - Работа с наборами данных

У меня есть некоторые данные тренировки, как описано here Итак, я использую sklearn.datasets.load_files, чтобы прочитать их, поскольку это было идеально подходящее при настройке.

НО мои файлы являются tsv как мешок слов уже (ака каждая строка - это слово, а количество частот разделено вкладкой).

Если честно, я не уверен, как действовать. Данные, загруженные load_files, настраиваются как список, где каждый элемент является содержимым каждого файла, включая новые символы строки. Я даже не уверен на 100%, как тип данных Bunch отслеживает, какие файлы принадлежат к какой папке классификатора.

Я работал с scikit-learn before с помощью tsvs, но это был единственный файл tsv, в котором были все данные, поэтому я использовал pandas для его чтения, а затем использовал numpy.array, чтобы извлечь из него то, что мне было нужно, что является одной из вещей, которые я пытался сделать, но я не уверен, как это сделать с несколькими файлами, где классификатор - это имя папки, как в этом одном файле с tsv, с которым я работал раньше, каждая строка данных обучения была индивидуально

Некоторая помощь в получении данных в формате, который может использоваться для обучения классификаторов, будет оценен по достоинству.

+0

Вы читали эту часть: «Для того, чтобы использовать текстовые файлы в scikit освоении классификации или кластеризации алгоритм, вам нужно будет использовать модуль sklearn.feature_extraction.text для создания трансформатора извлечения функций, который подходит для вашей проблемы ». –

+0

У меня есть .... но это зависит от сырых данных, я уверен, что ... которых у меня нет. – daredevil1234

+0

Вы можете написать специальный экстрактор функций, который будет извлекать ваши функции из набора данных. На самом деле это довольно просто использовать, если вы потратите время на чтение документов. Посмотрите на подкласс «BaseEstimator», чтобы извлечь нужную функцию. –

ответ

0

Вы можете прокручивать файлы и читать их, чтобы создать список словарей, в которых каждый словарь будет содержать функции и частоты каждого документа. Предположим, что файл 1.txt:

import codecs 
corpus = [] 
#make a loop over the files here and repeat the following 
f = codecs.open("1.txt", encoding='utf8').read().splitlines() 
corpus.append({line.split("\t")[0]:line.split("\t")[1] for line in f}) 
#exit the loop here 
from sklearn.feature_extraction import DictVectorizer 
vec=DictVectorizer() 
X=vec.fit_transform(measurements) 

Вы можете найти больше здесь для DictVectorizer