2014-03-05 2 views
1

Naive Bayes 알고리즘을 구현하여 CSV 파일에서 트윗을 읽고 정의한 범주 (예 : 기술, 과학, 정치)로 분류합니다.Python Naive Bayes 카테고리로 트윗을 분류합니다. 방법

NLTK의 순진 베이 분류 알고리즘을 사용하고 싶지만 이 예제는 내가해야 할 일과 가깝지 않습니다.

가장 큰 혼란 중 하나는 NB의 분류 정확도를 어떻게 개선 할 수 있는가입니다.

* * 분류 작업을 수행하는 데 필요한 세부 단계에 대한 지침을 얻으려고합니다.

  • 내가 수동으로 거기에 트윗을 넣어 각 카테고리에 대해 별도의 CSV 파일을 작성해야합니까?
  • 어떻게 알고리즘을 훈련 할 내가 위의 작업을 수행하는 방법과 알고리즘 테스트? **

나는 NLTK의 NB 알고리즘을 할 경우 사용합니다 TextBlob 같은 몇 가지 간단한 예제를 온라인으로 연구하고 발견 된 않은 경우 짹짹의 감정 분류. 그것은 이해하기 쉽지만 초보자를위한 비틀기는 어렵습니다. 위의 링크에서, 그는 이미 감정을 넣을 때 그는 시험을 구현 않는 방법 다음 트윗에 자신의 예에서

http://stevenloria.com/how-to-build-a-text-classification-system-with-python-and-textblob/

? 테스트 할 생각이라면 두 번째 주장을 숨겨야합니다.

train = [ 
    ('I love this sandwich.', 'pos'), 
    ('This is an amazing place!', 'pos'), 
    ('I feel very good about these beers.', 'pos'), 
    ('This is my best work.', 'pos'), 
    ("What an awesome view", 'pos'), 
    ('I do not like this restaurant', 'neg'), 
    ('I am tired of this stuff.', 'neg'), 
    ("I can't deal with this", 'neg'), 
    ('He is my sworn enemy!', 'neg'), 
    ('My boss is horrible.', 'neg') 
] 
test = [ 
    ('The beer was good.', 'pos'), 
    ('I do not enjoy my job', 'neg'), 
    ("I ain't feeling dandy today.", 'neg'), 
    ("I feel amazing!", 'pos'), 
    ('Gary is a friend of mine.', 'pos'), 
    ("I can't believe I'm doing this.", 'neg') 
] 
+0

다른 질문으로 답할 수 있습니다. 정확한 감정을 사용할 수 없다면 어떻게 테스트의 성공 여부를 측정 할 수 있습니까? 테스트 루틴은 텍스트에서 답변을 분리하고, 분류자를 통해 텍스트를 실행하고, 결과를 답변과 비교합니다. NLTK 소스 코드를 보면서 그것을 볼 수 있습니다. – alexis

답변

4

당신은 베이 즈가 처음에 어떻게 작동하는지 이해해야한다 : |, P (A)와 P ((A, B) 즉

enter image description here

, 당신은 P를 찾을 수있다 비). 귀하의 경우, P (A | B) = P (긍정적 인 | 문장). 즉 :

  • P (B) = 문장에서
  • P (A) = 긍정적 인
  • P의 확률이 매우 단어를 가질 확률 (B | A) = 주어진 긍정적 인 감정을 무엇 인

    • 단어
    • 로 문장을 분할 : 확률은

    은 당신이해야 할 것은 이것이다 B에서 단어를 찾을 수

  • "the", "bad", "amazing"등과 같은 속성 목록을 각 문장에 대해
  • 과 같이 "필러", "is", "was" 베이지안 분류 자의 기능이됩니다.
  • "긍정적 인"정서를 구성하는 확률 B (지형지 물의 비율)를 찾습니다. 당신이 훈련 문장에 그랬던 것처럼 기능에

    1. 분할을 : 테스트 문장 주어진

다음,.

  • 이 단어들의 점수를 찾으십시오. (B)
  • "긍정적"또는 "부정적인"정서 (= P (A | B))를 나타내는 이들의 확률을 계산하십시오.

    : 이러한 주장에 손을 묶는의 비트가 여기에보다 구체적인 지침을 찾을 수있다

  • , 당신은 이미 귀하의 질문의 두 번째 링크를 언급 귀하의 구체적인 질문에 대답하려면 :

    위의 링크에서 본 그의 예에서 그는 이미 트윗 옆에 정서를 넣었을 때 테스트를 어떻게 구현합니까? 나는 테스트를 생각, 우리는 두 번째 인수를 숨겨야한다.

    올바른 결과가 무엇인지 알아야합니다. 그렇지 않으면 알고리즘은 항상 당신에게 "어떤"대답을 줄만큼 좋은 알고리즘을 수행 할 수있는 방법이 없습니다. 그렇기 때문에 테스트에 레이블 (두 번째 인수)을 포함시켜야합니다.