나는이 질문을 R 메일 목록에 올렸지 만 여기서는 대답과 팁을 찾는 더 좋은 곳이라고 생각합니다.SVM을 사용한 텍스트 분류에 관한 특징 공간의 차이
저는 현재 학생의 에세이를 텍스트로 분류하고 특정 클래스에 맞는 텍스트를 찾으려고 을 시도하고 있습니다. 나는 분류자를 시험하기 위해 한 학기 (A)를 다른 학기의 훈련 및 텍스트 (B)에 사용합니다. 내 워크 플로우는 다음과 같이이다 :
- 은 약 626와 DTM (B)를 구축, 약 1387 용어 (패키지 TM)
- 는 B의 모든 텍스트를 읽을 수있는 DTM (A)를 구축하는 모든 텍스트를 읽어 용어 SVM (패키지 e1071)를 사용하여
- 기차 DTM (A)로 분류,
는 지금은 classifyer를 사용하여 DTM (B)의 모든 텍스트를 분류합니다. 그러나 predict()를 사용하려고하면 항상 오류 메시지가 나타납니다. eval (expr, envir, enclos)의 오류 : 'XY'객체를 찾을 수 없습니다. DTM (A)와 DTM (B)의 숫자가 이며 결과적으로 DTM (B)에서 사용할 수있는 모델은 모두 입니다.
확실히 두 개의 서로 다른 기능 공간으로 분류하는 것이 문제지만이 "실제 세계 문제"에 대한 해결책을 찾고 싶습니다. 아이디어는 학생이 제출 한 텍스트가 다른 텍스트와 잘 맞는지 아닌지 식별하는 것입니다. 그래서 내 순진한 생각은 한 학기의 텍스트로 예측 모델을 개발하고 [DTM (A)] 다음이 모델을 사용하여 다른 학기 [DTM (B)]의 새 텍스트를 평가하는 것입니다. 새 텍스트가 원본 DTM에 없기 때문에 기능 공간이 다릅니다. 지금까지는 모든 텍스트에서 작성된 DTM을 사용하는 코드 만 발견했지만 새로운 DTM (A)`을 작성하고 매번 SVM을 다시 훈련해야합니다.
내 질문은 : 어떻게 처리해야합니까? 동일한 기능 공간을 얻으려면 DTM (A) 및 DTM (B)에 사용 된 이라는 용어와 일치해야합니까? 이것은 DTM (A) 또는 DTM (B)에 여러 개의 빈/NA 열을 추가하는 의 용어 수를 줄여서 얻을 수 있습니다. 아니면 내 문제에 다른 해결책이 있습니까?
종류는
비욘 좀 더 실험과 몇 가지 조사 후
http://stackoverflow.com/questions/39721737/how-to-handle-errors-in-predict-function-of-r이 도움이 될 것으로 생각됩니다. – abhiieor
감사합니다.하지만 링크 된 게시물은 DTM의 다른 열을 의미하는 다른 지형지 물에 관한 것이 아니라 다양한 수준의 카테고리 변수에 관한 것입니다. – PsyR
일반화 할 수 있습니다. 새로운 학습자를 다루는 기계 학습 방법은 없습니다. 기본적으로 새로운 수준의 범주 형 변수에 더미 변수를 만들 때 얻을 수 있습니다. 그래서 본질적으로 제 대답에서 말했듯이 당신은 훈련의 한 부분이며 따라서 모델의 변수 목록을 유지할 필요가 있습니다. 이 목록을 기반으로 테스트/예측 데이터를 필터링 한 다음 훈련 된 개체에 점수를 매기십시오. – abhiieor