Категоризация текста Python с использованием TFIDF

У меня есть набор данных, как показано ниже

**ID**        **Text**                                     **Category**
   1     jake loves me more than john loves me               Romance
   2     july likes me more than robert loves me             Friendship
   3     He likes videogames more than baseball              Interest

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

Для начала я выполнил TFIDF (термин частота, обратная частоте документа) для вышеуказанного набора данных, как показано ниже.

mydoclist = []
#below im only taking my field 'Text' as input 
f = open('C:\sample4.csv', "r")
reader = csv.reader(f) 
for row in reader:   
    models.append(row)
f.close()

tf = TfidfVectorizer(tokenizer=lambda doc: doc,lowercase=False, analyzer='word',  min_df = 0, stop_words = 'english')
tfidf_matrix =  tf.fit_transform(mydoclist)
feature_names = tf.get_feature_names()
tfs = tf.fit_transform(mydoclist)
#storing my tfidf matrix
import pickle
with open("x_result.pkl", 'wb') as handle:
    pickle.dump(tfidf_matrix, handle)

Я хотел бы знать, как я могу пометить категории из приведенного выше набора данных с помощью рассчитанной мной матрицы tfidf? Кроме того, позже, как я могу использовать приведенные выше данные для классификации любых новых данных?


person RData    schedule 02.06.2016    source источник
comment
Вам нужно обучить модель. См. руководство по Классификация текстовых документов с использованием разреженных функций на sklearn веб-сайте. .   -  person ChrisP    schedule 02.06.2016
comment
Спасибо за участие и за то, что поделились статьей. В настоящее время я ищу очень простую реализацию, в которой я мог бы использовать данные поезда из моего CSV, и я хотел бы знать, как я могу тренироваться для категоризации на основе моих существующих категорий.   -  person RData    schedule 02.06.2016


Ответы (1)


Вы можете использовать libsvm с python.

1. Первое, что нужно сделать, это представить ваш документ, соблюдая формат файла, предоставленный libsvm.

2. Затем вы читаете данные:

from libsvm import *
prob = svm_problem(your data…)

3.Выставляете параметры svm

param = svm_parameter(kernel_type …)

4.обучение модели

m = svm_model(prob, param)

5. затем вы тестируете модель для новых документов

m.predict(your new data...)
person Riadh Belkebir    schedule 09.06.2016