2016-10-14 9 views
4

私は2つの列を持つデータフレームを持っています。 1つの列にはテキストが含まれます。その列の各行には、3つの異なるクラス(スキル、資格、経験)のいくつかのタイプのデータが含まれ、他の列はそれぞれのクラスラベルです。データフレームのe1071(SVM)を使用したテキスト分類

スナップショット:パッケージe1071中からSVMを適用する方法

snapshot of the dataframe

。どのようにテキストデータの列をいくつかのスコアに変換する。私はテキストの列を文書用語行列に変換することを考えました。彼らの他の方法ですか? d-t-matrixを作るには?

答えて

5

RTextToolsパッケージを使用すると、ドキュメント用語行列を作成できます。 使用create_matrix機能:情報について

# Configure the training data 
container <- create_container(dtMatrix, data$label, trainSize=1:102, virgin=FALSE) 

# train a SVM Model 
model <- train_model(container, "SVM", kernel="linear", cost=1) 

RTextToolsユーザーモデルを訓練するために内部的にe1071中パッケージ:

# Create the document term matrix. If column name is v1 
dtMatrix <- create_matrix(data["v1"]) 

その後、あなたはこれを使用して、SVMモデルを訓練することができます。

詳細については、RTextToolsおよびe1071のドキュメントを参照してください。

+0

http://www.rtexttools.com/documentation.html - 「注:RTextToolsはもはや積極的に管理されていません」 – dfrankow

1

Rのtmパッケージを使用することができます。ストップワード、句読点、数字、正規化(米国=米国)、ステミングなどの削除を含むドキュメント用語マトリックスを作成する前に、テキストを前処理する必要があります。重要な用語をより重視するためにdtm - (tfidf)に追加してください。

あなたがこれらの手順を完了したら、あなたは

x = dtm 

    y = a vector of the corresponding labels 

はあなたのためのクラスを予測するモデルを使用して、分類器ここで

fit <- svm(x, y, kernel = "linear") 

を訓練するためにe1071中から)(SVMを使用することができますテストデータ(テストデータも事前処理されていることを確認してください)

関連する問題