2016-10-14 4 views
4

두 개의 열이있는 데이터 프레임이 있습니다. 한 열에는 텍스트가 들어 있습니다. 해당 열의 각 행에는 세 가지 다른 클래스 (스킬, 자격, 경험)의 데이터 유형이 포함되어 있으며 다른 열은 각각의 클래스 레이블입니다. dataframe의e1071 (SVM)을 사용한 텍스트 분류

스냅 샷 :

snapshot of the dataframe

패키지 e1071에서 SVM을 적용하는 방법. 텍스트 데이터 열을 몇 가지 점수로 변환하는 방법. 저는 텍스트 컬럼을 문서 - 용어 매트릭스로 변환하는 것을 고려했습니다. 다른 방법입니까? d-t-matrix를 만드는 방법?

답변

5

RTextTools 패키지를 사용하여 문서 용어 매트릭스를 만들 수 있습니다. 사용 create_matrix 기능 :

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

그런 다음이를 사용하여 SVM 모델을 훈련 할 수 있습니다 정보

# 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 모델을 훈련하기 위해 내부적으로 패키지로 제공된다.

자세한 내용은 RTextTools 및 e1071 설명서를 참조하십시오.

+0

http://www.rtexttools.com/documentation.html - "참고 : RTextTools는 더 이상 적극적으로 유지 관리되지 않습니다." – dfrankow

1

R에서 tm 패키지를 사용할 수 있습니다. 중지 단어, 문장 부호, 숫자, 정규화 (미국 = 미국) 제거, 형태소 분석 등을 포함하는 문서 용어 행렬을 만들기 전에 텍스트를 사전 처리해야합니다. 가중치 추가 중요한 용어에 더 많은 중요성을 부여하기 위해 dtm - (tfidf).

당신이이 단계를 완료하면, 당신의 클래스를 예측하는 분류 여기

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

에게,

x = dtm 

    y = a vector of the corresponding labels 

를 사용하여 모델을 학습하는 e1071에서 SVM()를 사용할 수 있습니다 당신의 테스트 데이터 (테스트 데이터가 사전 처리되었는지 확인하십시오)

관련 문제