본문 바로가기

자연언어처리 (NLP)9

nltk.NaiveBayesClassifier 를 이용한 스팸메일 분류 트레이닝 데이터 준비 스팸메일(spam) 정상메일(ham) enron1.zip / enron2.zip / enron3.zip https://github.com/WolffRuoff/Enron-Ham-or-Spam-Filter 정상메일 샘플 Subject: unify close schedule the following is the close schedule for this coming month ( year - end . ) please keep in the mind the following key times . . . . unify to sitara bridge back 1 : 45 p . m . thursday , dec 30 th ( all errors must be clear by this time .. 2024. 4. 7.
Naive Bayes Classifier 설명 스팸메일, 댓글등의 감정분류등에 간편하게 쓰이는 Naive Bayes Classifier 의 이론 원리를 알아보자. 정상메일(ham) 과 비정상메일(spam)을 분류하기 위해 ham 8개 spam 4개의 혼합된 데이터를 트레이닝 했다고 하자. 트레이닝 데이터에 "Dear" "Friend" "Lunch" "Money" 의 4개 단어가 사용되었다고 할때 내부적으로 아래와 같이 ham 트레이닝 데이터 속에 출현되는 빈도의 히스토그램과 spam 트레이닝 데이터의 출현빈도를 계산한다. 히스토그램 출현횟수 P(A | B) *P = Probabilistic 확률적인 A = 단어 B = 클래스(ham, spam) ham Dear : 8 번 Friend : 5 번 Lunch : 3 번 Money : 1 번 전체 : 17.. 2024. 4. 5.
wordcloud 하나의 단어가 자주 반복된다는 것은 중요도가 높다는 걸 의미한다. 이를 그래픽으로 구현하는 방법을 설명하고자 한다. 인스톨 pip install wordcloud pip install konlpy import from wordcloud import WordCloud from konlpy.tag import Okt import matplotlib.pyplot as plt Tokenize okt.nouns() 를 이용해 명사만 추출 text = "경찰이 음주 운전을 단속하는 과정에서 해프닝도 일어났다. 50대 여성 C씨가 1차 음주 운전 측정에서 적발됐는데 이는 구강 청정제를 측정 전 바로 사용했기 때문이다. C씨는 '갑자기 측정기에 불면 예의가 아닌 것 같아 구강 청정제를 입 안에 뿌린 상태로 불었다”며 .. 2024. 3. 13.
stopwords 영어 from nltk.corpus import stopwords from nltk.tokenize import word_tokenize stop_words = set(stopwords.words('english')) example_sent = """This is a sample sentence, showing off the stop words filtration.""" word_tokens = word_tokenize(example_sent) // stopwords 제거 방법1 filtered_sentence = [w for w in word_tokens if not w.lower() in stop_words] // stopwords 제거 방법2 filtered_sentence = [] for w in.. 2024. 3. 13.