いくつかのレビュー データに対して感傷的な分析を行おうとしています。応答変数は「正」または「負」です。モデルを実行しましたが、係数は 1 次元のみです。応答変数が 2 つあるため、2 次元である必要があると思います。これがなぜなのかを理解するための助けをいただければ幸いです。
from nltk.corpus import stopwords
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.feature_extraction.text import TfidfTransformer
from sklearn.naive_bayes import BernoulliNB
from sklearn import cross_validation
from sklearn.metrics import classification_report
import numpy as np
from sklearn.metrics import accuracy_score
import textblob as TextBlob
#scikit
comments = list(['happy','sad','this is negative','this is positive', 'i like this', 'why do i hate this'])
classes = list(['positive','negative','negative','positive','positive','negative'])
# preprocess creates the term frequency matrix for the review data set
stop = stopwords.words('english')
count_vectorizer = CountVectorizer(analyzer =u'word',stop_words = stop, ngram_range=(1, 3))
comments = count_vectorizer.fit_transform(comments)
tfidf_comments = TfidfTransformer(use_idf=True).fit_transform(comments)
# preparing data for split validation. 60% training, 40% test
data_train,data_test,target_train,target_test = cross_validation.train_test_split(tfidf_comments,classes,test_size=0.2,random_state=43)
classifier = BernoulliNB().fit(data_train,target_train)
classifier.coef_.shape
最終行は (1L、6L) を出力します。ネガティブとポジティブの両方の有益な機能を理解しようとしていますが、1L であるため、両方の応答について同じ情報が得られます。
ありがとうございました!