TF-IDF 및 SVM을 사용하여 문서를 기만적으로 또는 사실적으로 분류하려고합니다. 나는 이것이 이전에 행해졌다는 것을 알고 있지만, 나는 그것을 올바르게 구현하고 있다고 확신하지 못한다. 나는 텍스트의 코퍼스를 가지고 같은TfidfVectorizer 및 Scikit-learn을 사용하여 SVM을 사용한 TF-IDF의 정확도가 낮음
vectorizer = TfidfVectorizer(min_df=1, binary=0, use_idf=1, smooth_idf=0, sublinear_tf=1)
tf_idf_model = vectorizer.fit_transform(corpus)
features = tf_idf_model.toarray()
로 그리고 분류에 대한 TF-IDF 건물입니다 :
seed = random.random()
random.seed(seed)
random.shuffle(features)
random.seed(seed)
random.shuffle(labels)
features_folds = np.array_split(features, folds)
labels_folds = np.array_split(labels, folds)
for C_power in C_powers:
scores = []
start_time = time.time()
svc = svm.SVC(C=2**C_power, kernel='linear')
for k in range(folds):
features_train = list(features_folds)
features_test = features_train.pop(k)
features_train = np.concatenate(features_train)
labels_train = list(labels_folds)
labels_test = labels_train.pop(k)
labels_train = np.concatenate(labels_train)
scores.append(svc.fit(features_train, labels_train).score(features_test, labels_test))
print(scores)
하지만 50 % ~의 정확도를 수신하고 있습니다. 내 코퍼스는 1600 개의 텍스트입니다.
정확도가 아닌 혼동 행렬 또는 여러 통계를 게시 할 수 있습니다. –