2017-04-04 7 views
0

순진한 베이즈 분류기를 훈련하려고하는데 데이터에 문제가 있습니다. 나는 그것을 추출 텍스트 요약으로 사용할 계획이다.Naive Bayes 분류기 추출 요약

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. 

나는 사용할 데이터 세트가 있으며 모든 문서에는 요약 용으로 적어도 하나의 문장이 있습니다.

나는 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.' 
    ] 

를 사용하여 문장 토크 나이는이를 달성 할 수 있습니다.

이제 레이블의 경우 두 가지 클래스를 사용하십시오. 예를 들면 1, 아니오는 0이라고합시다.

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

이제이 데이터를 사용하여 원하는 방식으로 예측하고 예측하십시오.

희망이 있습니다.

+0

답변 해 주셔서 감사합니다. 그것은 작동 할 것이고 확실히 나보다 낫다. 그러나 이런 식으로 분류자는 모든 것이 하나로 간주되므로 문서에서 문장의 위치를 ​​고려하지 않을 것이다. 내가 그것을 포함시킬 수있는 방법이 있나. – Nikola

+0

@nikola는 여러 줄을 입력 한 문장을 받아 nltk 문장 토크 나이저를 사용하여 분할하고 각 문장을 예측하지만 출력은 문장 1을 예측할 수 있습니다. – abhinav