为 SciKit 分类准备文本数据
Preparing text data for SciKit classification
我正在尝试将我的数据加载到 scikit-learn 中以训练一堆分类器。我的数据不像标准那样每个文档一个文件,每个类别一个文件夹,而是如下所示(分号分隔的 csv):
train_data.csv :
label; sentence
cat0 ; data
cat0 ; data
cat1 ; data
cat2 ; data
...
因此我不能使用 load_files 并且在以相关方式提取特征时我有点迷茫。
我应该将我的数据按类别分成一个文件,每个文件都包含所有相关文档,并放在一个命名的文件夹中,还是我可以从我的 csv 中原样导入?每个文档一个文件似乎是对 time/resources.
的巨大浪费
这是我正在处理的代码,但显然缺少一个步骤:)
def create_training_tfidf():
docs = []
targets = []
with open("sets/test2.csv", "r") as sentences_file:
reader = csv.reader(sentences_file, delimiter=';')
reader.next()
for row in reader:
docs.append(row[1])
targets.append(row[0])
from sklearn.feature_extraction.text import TfidfVectorizer
tf = TfidfVectorizer(analyzer='word', ngram_range=(1,3), min_df = 0, stop_words = 'english')
tfidf_matrix = tf.fit_transform(docs)
print tf.get_feature_names()
return tfidf_matrix, targets
您需要做的就是将数据放入两个矩阵中:特征和实际目标。您如何解析和检索这些数据完全取决于您。
我之前用过'pandas'解析数据
此外,根据我的记忆,您可以使用一些函数(可能不在 'pandas' 中)来使用定界符进行解析。
希望对您有所帮助
我正在尝试将我的数据加载到 scikit-learn 中以训练一堆分类器。我的数据不像标准那样每个文档一个文件,每个类别一个文件夹,而是如下所示(分号分隔的 csv):
train_data.csv :
label; sentence
cat0 ; data
cat0 ; data
cat1 ; data
cat2 ; data
...
因此我不能使用 load_files 并且在以相关方式提取特征时我有点迷茫。
我应该将我的数据按类别分成一个文件,每个文件都包含所有相关文档,并放在一个命名的文件夹中,还是我可以从我的 csv 中原样导入?每个文档一个文件似乎是对 time/resources.
的巨大浪费这是我正在处理的代码,但显然缺少一个步骤:)
def create_training_tfidf():
docs = []
targets = []
with open("sets/test2.csv", "r") as sentences_file:
reader = csv.reader(sentences_file, delimiter=';')
reader.next()
for row in reader:
docs.append(row[1])
targets.append(row[0])
from sklearn.feature_extraction.text import TfidfVectorizer
tf = TfidfVectorizer(analyzer='word', ngram_range=(1,3), min_df = 0, stop_words = 'english')
tfidf_matrix = tf.fit_transform(docs)
print tf.get_feature_names()
return tfidf_matrix, targets
您需要做的就是将数据放入两个矩阵中:特征和实际目标。您如何解析和检索这些数据完全取决于您。
我之前用过'pandas'解析数据
此外,根据我的记忆,您可以使用一些函数(可能不在 'pandas' 中)来使用定界符进行解析。
希望对您有所帮助