2017-04-04 22 views
0

ナイーブベイズ分類器を訓練しようとしており、データに問題があります。私は抽出テキスト要約のためにそれを使用する予定です。ナイーブベイズ分類器抽出要約

Example_Input: It was a sunny day. The weather was nice and the birds were singing. 
Example_Output: The weather was nice and the birds were singing. 

私が使用することを計画し、すべての文書にまとめるために、少なくとも1文があるデータセットを持っています。

私はsklearnを使うことに決めましたが、私が持っているデータの表現方法はわかりません。すなわち、XとY。

from sklearn.naive_bayes import MultinomialNB 
clf = MultinomialNB().fit(X, y) 

私の心に最も近いが、このようにそれを作ることです:目標値が1を意味

X = [ 
     'It was a sunny day. The weather was nice and the birds were singing.', 
     'I like trains. Hi, again.' 
    ] 

y = [ 
     [0,1], 
     [1,0] 
    ] 

- 含まれていない - 概要と0に含まれています。これは残念なことにyが1-d配列であると予想されるため、形が悪い例外を与えます。私はそのように表現する方法を考えることができないので、助けてください。

btwの文字列値はXに直接は使用しませんが、sklearnのCountVectorizerTfidfTransformerのベクトルとして表現しています。

答えて

1

要件に応じて、データを分類しています。つまり、それぞれの文をクラス分けして予測する必要があります。例えば


の代わりに使用して:

X = [ 
     'It was a sunny day. The weather was nice and the birds were singing.', 
     'I like trains. Hi, again.' 
    ] 

を以下のようにそれを使用します。これを達成するためのNLTKの

X = [ 
     'It was a sunny day.', 
     'The weather was nice and the birds were singing.', 
     'I like trains.', 
     'Hi, again.' 
    ] 

使用文トークナイザ。

ここで、ラベルの場合、2つのクラスを使用します。はいの場合は1、いいえの場合は0とします。今

y = [ 
     [0,], 
     [1,], 
     [1,], 
     [0,] 
    ] 

、フィットし、あなたが望む方法を予測するためにこのデータを使用!

希望すると助かります!

+0

あなたの答えをありがとう。それはうまくいくでしょうが、確かに私のものよりも優れていますが、この方法では、すべてのものが1とみなされるため、分類者は文章中の文の場所を考慮しません。私もそれを含めることができる方法はありますか? – Nikola

+0

@nikolaは複数の行を入力として受け取り、nltk sentence tokenizerを使用してそれを分割し、それぞれを予測しますが、クラス1の予測を持つ出力にそれらの文だけを出力します – abhinav

関連する問題