2017-06-19 8 views
0

以下の例のように、ドキュメントごとに単一のラベルを持つデータセットがあります。単一ラベルデータセットからの複数ラベルテキスト分類

label   text 

    pay   "i will pay now" 
    finance  "are you the finance guy?" 
    law   "lawyers and law" 
    court   "was at the court today" 
    finance report "bank reported annual share.." 

テキスト文書に複数のラベルを付けることができるため、このデータセットで複数ラベルの分類を行うにはどうすればよいですか? sklearnから多くのドキュメントを読んだことがありますが、単一ラベルのデータセットで複数ラベルの分類を行う正しい方法を見つけることができません。助けを前にありがとう。

import numpy as np 
import pandas as pd 
from sklearn.pipeline import Pipeline 
from sklearn.feature_extraction.text import CountVectorizer 
from sklearn.svm import LinearSVC 
from sklearn.linear_model import SGDClassifier 
from sklearn.naive_bayes import MultinomialNB 
from sklearn.feature_extraction.text import TfidfTransformer 
from sklearn.multiclass import OneVsRestClassifier 
from sklearn.metrics import accuracy_score 
from sklearn.cross_validation import train_test_split 
from sklearn.preprocessing import MultiLabelBinarizer 
from sklearn import preprocessing 

loc = r'C:\Users\..\Downloads\excel.xlsx' 

df = pd.read_excel(loc) 
X = np.array(df.docs) 
z = np.array(df.title) 
y = np.array(df.raw) 

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, 
random_state=42) 

mlb = preprocessing.MultiLabelBinarizer() 
Y = mlb.fit_transform(y_train) 
Y_test = mlb.fit_transform(y_test) 

classifier = Pipeline([ 
('vectorizer', CountVectorizer()), 
('tfidf', TfidfTransformer()), 
('clf', OneVsRestClassifier(LinearSVC()))]) 

    classifier.fit(X_train, Y) 
    predicted = classifier.predict(X_test) 

doc_new = np.array(['X has announced that it will sell $587 million']) 

print("Accuracy Score: ", accuracy_score(Y_test, predicted)) 
print(mlb.inverse_transform(classifier.predict(doc_new))) 

をしかし、私は次元のエラーを取得しておく:

.format(len(self.classes_), yt.shape[1]))ValueError: Expected indicator for 44 classes, but got 46

答えて

0

が、私は解決策をfould

はこれまでのところ、これは私が持っているものです。私はパンダを使用しました。GroupBy

df = pd.DataFrame(df.groupby(["id", "doc"]).label.apply(list)).reset_index() 

複数のクラスのテキストをグループ化して動作させました。 dimension error

関連する問題