Python-감정 분석
의미 분석은 청중의 일반적인 의견을 분석하는 것입니다. 뉴스, 영화 또는 토론중인 문제에 대한 트윗에 대한 반응 일 수 있습니다. 일반적으로 이러한 반응은 소셜 미디어에서 가져 와서 NLP를 통해 분석 할 파일로 분류됩니다. 먼저 긍정적 인 단어와 부정적인 단어를 정의하는 간단한 사례를 살펴 보겠습니다. 그런 다음 해당 단어를 사용하여 문장의 일부로 해당 단어를 분석하는 접근 방식을 취합니다. nltk의 sentiment_analyzer 모듈을 사용합니다. 먼저 한 단어로 분석을 수행 한 다음 bigrams라고도하는 쌍을 이루는 단어로 분석을 수행합니다. 마지막으로, 우리는 단어에 정의 된 부정적인 감정을 표시합니다.mark_negation 함수.
import nltk
import nltk.sentiment.sentiment_analyzer
# Analysing for single words
def OneWord():
positive_words = ['good', 'progress', 'luck']
text = 'Hard Work brings progress and good luck.'.split()
analysis = nltk.sentiment.util.extract_unigram_feats(text, positive_words)
print(' ** Sentiment with one word **\n')
print(analysis)
# Analysing for a pair of words
def WithBigrams():
word_sets = [('Regular', 'fit'), ('fit', 'fine')]
text = 'Regular excercise makes you fit and fine'.split()
analysis = nltk.sentiment.util.extract_bigram_feats(text, word_sets)
print('\n*** Sentiment with bigrams ***\n')
print analysis
# Analysing the negation words.
def NegativeWord():
text = 'Lack of good health can not bring success to students'.split()
analysis = nltk.sentiment.util.mark_negation(text)
print('\n**Sentiment with Negative words**\n')
print(analysis)
OneWord()
WithBigrams()
NegativeWord()
위의 프로그램을 실행하면 다음과 같은 결과가 나옵니다.
** Sentiment with one word **
{'contains(luck)': False, 'contains(good)': True, 'contains(progress)': True}
*** Sentiment with bigrams ***
{'contains(fit - fine)': False, 'contains(Regular - fit)': False}
**Sentiment with Negative words**
['Lack', 'of', 'good', 'health', 'can', 'not', 'bring_NEG', 'success_NEG', 'to_NEG', 'students_NEG']