2016-11-23 1 views
0

텍스트를 분류하기 위해 posneg이라는 큰 학습 세트가 있습니다. TextBlob (this tutorial에 따라)을 사용하여 텍스트를 분류했습니다. 잘 작동하지만 대규모 교육 세트 (예 : 8k 단어)의 경우 매우 느릴 수 있습니다.scikit-learn : 맞춤 라벨을 사용하여 텍스트 분류

나는 이것을 scikit-learn와 함께 시도하려고하지만 어디서부터 시작해야할지 모르겠다. 위의 튜토리얼은 scikit-learn에서 어떻게 보이겠습니까? 또한 특정 단어에 대한 가중치를 포함하도록 교육을 설정하고 싶습니다. 특정 텍스트가 "긍정적"으로 분류되는 반면 다른 텍스트는 "부정적"으로 분류되는 것을 보장해야하는 텍스트가 있습니다. 마지막으로, 분석 된 텍스트의 특정 부분이 다른 부분보다 더 가치 있다고 암시하는 방법이 있습니까?

기존 자습서 또는 문서에 대한 유용한 정보를 제공합니다.

답변

1

Sebastian Raschka's Python Machine Learning book에이 주제에 대한 훌륭한 장이 있으며 코드는 https://github.com/rasbt/python-machine-learning-book/blob/master/code/ch08/ch08.ipynb입니다.

그는 IMDB 데이터 세트에서 정서 분석 (수행하려는 작업)을 수행합니다. 그의 데이터는 자신의 것만 큼 깨끗하지는 않습니다. 외관상으로 볼 때 데이터 처리는 좀 더 많은 사전 처리 작업이 필요합니다. 귀하의 문제가 다음 단계로 해결할 수 있습니다

  1. 텍스트를 벡터화하여 수치 기능을 만듭니다 http://scikit-learn.org/stable/modules/generated/sklearn.feature_extraction.text.HashingVectorizer.html

  2. 열차 시험 분할 : http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html

  3. 기차와 테스트 당신의 마음에 드는 모델, 예를 들면 : http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html

+0

좋은 자원, 감사합니다; 그 책을 사야 해! 한 가지 질문 : 교육용 세트가 문자 그대로 부울 값으로 레이블 된 단일 단어 인 경우 (각각의 의미는 중요하지 않음) 다중 문장 텍스트에 사용할 분류 기호를 작성할 수 있습니까? 모델이 전체 텍스트를 분석하고 확률 테이블을 만든 다음 입력 텍스트에 설정된 휴리스틱을 적용하여 모델이 작동한다는 인상을받습니다. – mart1n

+0

해시 벡터 라이저는 TF-IDF를 사용하여 수치 값을 단어에 할당합니다. TF 부분은 각 샘플에 대해서만 신경을 씁니다. 따라서 각 샘플마다 1이됩니다. IDF 파트는 각 샘플을 모든 샘플과 비교하여 숫자 형 기능을 생성합니다. 단일 숫자 기능으로 정서를 예측하려고하기 때문에 히스토그램 (감정으로 색이 입혀진)을 겹쳐 놓고 어떤 모델을 훈련하기 전에 얼마나 효과가 있을지 볼 수 있습니다. – AlexG

0

Tf-Idf (용어 빈도 - 문서 빈도 반전), 카운트 벡터 라이저, LSA (Latent Semantic Analysis), LDA (Latent Dirichlet Allocation), Word2Vec.

위의 모든 방법 중에서 Word2Vec이 가장 좋습니다. 당신은에 Word2Vec 구글에 의해 사용할 수를 사전에 훈련 된 모델을 사용할 수 있습니다

관련 문제