Python - Phân tích cảm xúc

Phân tích ngữ nghĩa là phân tích ý kiến ​​chung của khán giả. Đó có thể là phản ứng trước một mẩu tin tức, bộ phim hoặc bất kỳ dòng tweet nào về một vấn đề nào đó đang được thảo luận. Nói chung, những phản ứng như vậy được lấy từ phương tiện truyền thông xã hội và tập hợp thành một tệp để được phân tích thông qua NLP. Chúng ta sẽ lấy một trường hợp đơn giản để xác định từ tích cực và tiêu cực trước. Sau đó, thực hiện một cách tiếp cận để phân tích những từ đó như một phần của câu sử dụng những từ đó. Chúng tôi sử dụng mô-đun sent_analyzer từ nltk. Đầu tiên chúng tôi thực hiện phân tích với một từ và sau đó với các từ ghép nối còn được gọi là bigram. Cuối cùng, chúng tôi đánh dấu các từ có tình cảm tiêu cực như được định nghĩa trongmark_negation chức năng.

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()

Khi chúng tôi chạy chương trình trên, chúng tôi nhận được kết quả sau:

** 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']