TRƯỜNG ĐẠI HỌC THỦ DẦU MỘT
KHOA KỸ THUẬT CÔNG NGHỆ
Tên đề tài: NGHIÊN CỨU RÚT TRÍCH THÔNG TIN
DỰA TRÊN CƠ SỞ PHÂN TÍCH CẢM XÚC
Mã số:
Chuyên đề:
Lập trình ứng dụng demo
Chủ nhiệm đề tài : ThS.Nguyễn Tấn Lộc
Người chủ trì thực hiện chuyên đề : ThS.Nguyễn Tấn Lộc
Bình Dương, 08/01/2018
Mục lục
1.
Đặt vấn đề............................................................................................................................ 1
2.
Phương pháp nghiên cứu, cách tiếp cận .............................................................................. 1
3.
Kết quả đạt được ................................................................................................................. 1
3.1
Kết quả thực nghiệm .................................................................................................... 3
4.
Kết luận và kiến nghị .......................................................................................................... 7
5.
Tài liệu tham khảo ............................................................................................................... 7
Danh mục chữ viết tắt
TF: term frequency
IDF: inverse document frequency
TF.IDF: term frequency. inverse document frequency
DTM: document term matrix
Logistic: hồi quy logistic.
P(A): Xác xuất sự kiện A
NER: Named Entity Recognition
SoA: Sentiment analysis – Phân tích cảm xúc
1. Đặt vấn đề
Dựa vào lý thuyết mô hình logistic, ngôn ngữ lập trình python với IDE
jupyter notebook chúng tôi xây dựng mô hình xếp hạng các bình luận và trích
xuất các bình luận . Sau đó thực hiện phân tích và đánh giá mức độ ảnh hưởng
các từ cho các loại ẩm thực của các quốc gia. kết quả phân tích ẩm thực các
quốc gia phản ánh đúng thực tiễn : Món ăn phổ biến nhất Việt Nam là phở,
Nhật Bản với các ẩm thực sushi tươi sống, một số món ăn Thái có hương vị
cay, các nhà hàng Ý nổi tiếng với bánh pizza.
2. Phương pháp nghiên cứu, cách tiếp cận
-
Sử dụng ngôn ngữ lập trình python với IDE jupyter notebook
-
Dựa vào lý thuyết mô hình logistic v2 tối ưu hóa hàm mất mát, chuẩn hóa
mô hình L2-norm
3. Kết quả đạt được
-
Đọc dữ liệu nhà hàng từ tập tin excel
import pandas as pd
import numpy as np
reviews = pd.read_csv('Resfull.csv',encoding = "ISO-8859-1")
-
Trong phần thực nghiệm này, chúng tôi rút trích thông tin hữu ích và các
bình luận nằm nhóm đầu 10 được bình luận tốt nhất, nhóm 10 bình luận
hàng đầu theo quốc gia:
Bảng 1.Các bình luận tích cực nhất cho các doanh nghiệp
#top 10 positive reviews for vietnamese restaurant
Vietnamese=reviews_subset_test[reviews_subset_test.categories=='Vietnamese']
Vietnamese[['review_id', 'name','stars', 'text_clean', 'categories','sentiment']]
1
test_matrix_vn = vectorizer.transform(Vietnamese['text_clean'].values.astype('U'))
predict_prob_vn = sentiment_model.predict_proba(test_matrix_vn)[:,1]
predict_score_vn = sentiment_model.decision_function(test_matrix_vn)
df_viet = {'Probabilties': predict_prob_vn, 'Scores': predict_score_vn, 'Predictions': se
ntiment_model.predict(test_matrix_vn)}
sentiment_model_predictions = pd.DataFrame(df_viet).sort_values(by='Scores', ascen
ding=False)
sentiment_model_predictions.head(10)
top20posreviews=Vietnamese[['review_id', 'name','stars', 'text_clean', 'categories','senti
ment']].iloc[sentiment_model_predictions.index[0:100]]
top10posreviews['text_clean']
Bảng 2. Các bình luận cảm xúc tích cực nhất cho các doanh nghiệp Việt Nam
-
Nhóm 10 bình luận cảm xúc tiêu cực nhất cho các nhà hàng Việt Nam, dữ
liệu phản ánh khá hợp lý với xếp hạng 1 đến 3 sao.
chuoi2=''
for title1 in top20negatives['text_clean'].values.tolist():
chuoi2= chuoi2+ title1 +''
wordcloud = WordCloud().generate(chuoi2)
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
# lower max_font_size
wordcloud = WordCloud(max,max_font_size=40).generate(chuoi2)
plt.figure()
plt.imshow(wordcloud, interpolation="bilinear")
plt.axis("off")
plt.show()
2
Bảng 3.Nhóm bình luận cảm xúc tiêu cực nhất cho doanh nghiệp Việt Nam
Kết quả phân loại cảm xúc tích cực và tiêu cực ảnh hưởng rất mạnh đến kết quả
rút trích thông tin. Nếu kết quả phân loại chính xác, truy vấn sẽ rút trích thông tin
có độ chính xác cao.
3.1
Kết quả thực nghiệm
Dữ liệu với mô hình logistic cho kết quả với độ chính xác cao accuracy=90%,
recall=89.8%, precision=96.9% và hệ số chuẩn hóa cho mô hình tối ưu với hệ số
chuẩn hóa C=0.2154
Hình 1.
Đánh giá mô hỉnh huấn luyện và kiểm thử dữ liệu
3
Bảng 4.Ma trân
đánh giá phân loại cảm xúc
Trích xuất chính xác cảm xúc giúp doanh nghiệp định hình xu hướng phát triển,
đồng thời nắm bắt được quan điểm và cảm xúc khách hàng về món ăn, chất lượng
dịch vụ khách hàng.
Nhóm 10 từ cảm xúc mạnh tích cực và tiêu cực nhất.
Tích cực - hệ số
Tiêu cực-hệ số
excellent: 1.14614924052
delicious: 1.1119727885
amazing: 1.03514286548
awesome: 0.872256805683
perfect: 0.838463244404
great: 0.806499315192
best: 0.744851346902
fantastic: 0.734042587596
love: 0.731300119008
reasonable: 0.72016372024
worst: -1.13781905968
horrible: -1.0873361229
terrible: -1.04677190115
mediocre: -1.04432799702
bland: -0.874645601756
awful: -0.836073920222
tasteless: -0.821659220617
rude: -0.820886331069
disgusting: -0.805035172104
overpriced: -0.803561081306
Bảng 5. Nhóm
10 từ cảm xúc rút ra từ kết quả phân tích
- Nhóm 20 từ phổ biến trích từ các bình luận hàng đầu thể hiện cảm xúc tích.
Các từ có tần số xuất hiện cao phù hợp với thực tế. Món ăn phổ biến Việt Nam là
phở.
Hình 2. Phân
phối các từ có tần suất cao ẩm thực Việt
4
-
Đoạn chương trình thể hiện wordcloud
from wordcloud import WordCloud
import matplotlib.pyplot as plt
chuoi=''
for title in top20posreviews['text_clean'].values.tolist():
chuoi= chuoi+ title +''
wordcloud = WordCloud().generate(chuoi)
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
# lower max_font_size
wordcloud = WordCloud(max_font_size=40).generate(chuoi)
plt.figure()
plt.imshow(wordcloud, interpolation="bilinear")
plt.axis("off")
plt.show()
Hình 3.Các từ
-
ảnh hưởng mạnh ẩm thực Việt
Kết quả phân loại và rút trích cảm xúc chính xác cho các nhà hàng Nhật bản,
món ăn phổ biến nhất là Sushi và tươi sống
blacklist = ["the","The","and",'also',"a","is",'out','just',"in",'all','or',"to","be","it"
,"I","was","were","of","off",'up','on', "are", "for", "this",'about'
'above',
'according',
'accordingly',
'across',
'actually','any','only',"Time","My",'out','Out','which','what','who',
'after','me','about',
'afterwards','too','got','can','from','back','than','other','We','They','get','if','go',
'again',
'against','that','my','would','will','we','you','have','has','but','with','as','at','they','so'
,'its','some','here','there','their','very','had'] # Blacklist of words to be filtered out
chuoi=chuoi.lower()
for word in blacklist:
chuoi = chuoi.replace(" " + word + " ", " ")
5
word_list = chuoi.split()
counts = Counter(word_list)
labels, values = zip(*counts.items())
# sort your values in descending order
indSort = np.argsort(values)[::-1][:20]
# rearrange your data
labels = np.array(labels)[indSort]
values = np.array(values)[indSort]
indexes = np.arange(len(labels))
bar_width = 0.1
plt.bar(indexes, values)
# add labels
plt.xticks(indexes + bar_width, labels, rotation='vertical')
plt.show()
Hình 4..Phân phối các từ có tần suất cao của ẩm thực Nhật
Hình 5..Các từ ảnh hưởng mạnh ẩm thực Nhật bản
6
4. Kết luận và kiến nghị
Trong nghiên cứu này, Tôi thực hiện khảo sát và so sánh hướng tiếp cận
phân loại cảm xúc dựa vào các thuật toán học máy, từ điển và ontology và đánh
giá các kỹ thuật rút trích thông tin dựa trên cơ sở phân loại cảm xúc. Trên nền
tảng các lý thuyết đó, Tôi tiền hành xây dựng mô hình thực nghiệm với phương
pháp hồi quy logistic để phân loại cảm xúc và sau đó tiến hành rút trích thông
tin. Và thử nghiệm thuật toán rút trích thông tin có cảm xúc cho các câu truy
vấn. Cụ thể đề tài đạt được một số cột mốc quan như sau.
-
Nghiên cứu tổng quan về phân tích cảm xúc, ứng dụng thực tế cuộc sống.
-
Nghiên cứu các phương pháp rút trích thông tin và các phương pháp phân
tích cảm xúc.
-
Xây dựng mô hình thử nghiệm trích thông tin theo câu truy vấn từ dữ liệu
-
Đánh giá thử nghiệm dữ liệu thuật toán hồi quy logistic và lựa chọn tham số
tối ưu để nâng cao độ chính xác thuật toán.
Thời gian tới đề tài tiếp tục phát triển :
-
Xây dựng nhiều mô hình phân loại cảm xúc với nhiều thuật toán và mở rộng
hướng tiếp cận ngữ nghĩa ontology, phương pháp từ điển, học máy từ đó so
sánh các kết quả thực nghiệm để so sánh đánh giá ưu khuyết của các phương
pháp cho từng trường hợp cụ thể.
-
Xây dựng mô hình rút trích thông tin trên cơ sở phân tích cảm xúc các trang
tiếng việt về dịch vụ du lịch tripadvisor, Lazada.
5. Tài liệu tham khảo
[1] B. Agarwal and N. Mittal, “Optimal feature selection for sentiment
analysis,” in Proceedings of the 14th International Conference on Intelligent
Text Processing and Computational Linguistics (CICLing 13), vol. 7817, pp.
13–24, 2013.
[2] A. Basant, M. Namita, B. Pooja, Sonal Garg “Sentiment Analysis Using
Common-Sense and Context Information” Hindawi Publishing Corporation
Computational Intelligence and Neuroscience (2015)
7
[3]
RuiXia, FengXu, JianfeiYu,” Polarity shift detection, elimination and
ensemble: A three stage model for document-level sentiment analysis”
Information Processing and Management 52 (2016) 36– 45.
[4]
Y. Ainur, Y. Yisong, C. Claire
“Multi-level
structured
models
for
document-level sentiment classification”.Proceedings of the 2010 Conference
on Empirical Methods in Natural Language Processing, MIT, Massachusetts,
Association for Computational Linguistics, USA (2010), pp. 1046-1056.
[5] F. Noura, C. Elie, A.A. Rawad, H. Hazem “Sentence-level and documentlevel sentiment mining for arabic texts”.Proceeding IEEE International
Conference on Data Mining Workshops (2010).
[6] Hao chen Zhou and Fei Song.(2015) “Aspect-level sentiment analysis
based on a generalized probabilistic topic and syntax model” Proceedings of the
Twenty-Eighth International Florida Artificial Intelligence Research Society
Conference, Association for the Advancement of Artificial Intelligence (2015).
[7] Ariyasriwatana, W., Buente, W., Oshiro, M., & Streveler, D. (2014).
Categorizing health-related cues to action: using Yelp reviews of restaurants in
Hawaii. New Review of Hypermedia and Multimedia, 20(4), 317-340.
[8] Hicks, A., Comp, S., Horovitz, J., Hovarter, M., Miki, M., & Bevan, J. L.
(2012). Why people use Yelp. com: An exploration of uses and gratifications.
Computers in Human Behavior, 28(6), 2274-2279.
[9]
Huang, J., Rogers, S., & Joo, E. (2014). “Improving restaurants by
extracting subtopics from yelp reviews” iConference 2014 (Social Media Expo).
[10] Ruhui Shen, Jialiang Shen, Yuhong Li & Haohan Wang (2016), ”
Predicting usefulness of Yelp reviews with localized linear regression models”,
2016 7th IEEE International Conference on Software Engineering and Service
Science (ICSESS)
[11]
Solov'ev A. N., Antonova A. Ju., Pazel'skaia A. G., (2012), Using
sentiment-analysis for text information extraction. I-Teco (Moscow).
[12] Wanxiang Che, Yanyan Zhao, Honglei Guo, Zhong Su, and Ting Liu,”
Sentence Compression for spect-Based Sentiment Analysis” IEEE/ACM
TRANSACTIONS ON AUDIO, SPEECH, AND LANGUAGE PROCESSING,
VOL. 23, NO. 12, DECEMBER 2015.
8
[13] P.D. Turney,(2000), “Learning algorithms for keyphrase extraction”
Information Retrieval vol. 2, no. 4, pp. 303 - 336.
[14] I.H. Witten, G.W. Paynter, E. Frank, C. Gutwin and C.G. NevillManning.(1999) “KEA: Practical automatic Keyphrase Extraction.” The
proceedings of Digital Libraries '99: The Fourth ACM Conference on Digital
Libraries, pp. 254-255.
[15] Huong Nguyen Thi Xuan, Anh Cuong Le ; Le Minh Nguyen,
(2012) ”Linguistic Features for Subjectivity classification“ Asian Language
Processing (IALP), 2012 International Conference.
Xác nhận thực hiện chuyên đề
Chủ nhiệm đề tài
9
- Xem thêm -