lOMoARcPSD| 59735516
Báo Cáo Cuối Kỳ Môn Học Máy
Senment Analysis Problem on Foody.vn
INT3405_20_Team_CHL (Thứ tự hiện tại trên Kaggle
22 - Điểm số : 0.92775)
Nguyễn Văn Cường Phạm Quang Huy Đỗ Văn Linh
K64 - R K64-R K64-R
19020512@vnu.edu.vn 19020557@vnu.edu.vn 19020569@vnu.edu.vn
Trần Ngọc Kính Tống Văn Hùng
K64-K1 K64-K1
19020564@vnu.edu.vn 19020552@vnu.edu.vn
Tên Công Việc
Tên các thành viên phụ trách
Tìm thêm dữ liệu
Phạm Quang Huy
Xử lý dữ liệu
Phạm Quang Huy (Bi-LSTM), Đỗ Văn Linh (LSTM)
Đề xuất, xây dựng và huấn luyện
mô hình
Nguyễn Văn Cường (LSTM,Bi-LSTM)
Tổng hợp kết quả và viết báo
cáo
Trần Ngọc Kính, Tống Văn Hùng
Tóm tắt
Báo cáo này trình bày nghiên cứu thực
nghiệm vhiu quả của các kỹ thuật học y
trong việc phân loại cảm xúc trên website
Foody.vn về trạng thái êu cực hay ch cực.
Nhóm sdụng d liệu trong đó 40000
mẫu (bao gồm testset trainset) 20000
mẫu posive và 20000 mẫu negave để
training (food_train.vcs) đ 40000 mẫu.
Nhóm sử dụng các đánh giá đồ ăn, hạn chế
nh từ trng từ, xử phủ định, giới hạn
tần s từ bằng ngưỡng và sử dụng kiến thức
từ đồng nghĩa WordNet. Nhóm đánh giá vi
độ chính xác của 2 phương pháp học máy
LSTM Bi-LSTM .Nhóm kết thúc nghiên cứu
với những giải thích kết luận về tỷ lệ chính
xác của công việc.
(Keywords - Machine learning,LSTM,
Bi-LSTM, Senment Analylis Problem)
I. GIỚI THIỆU
Trong những năm gần đây, một số
ợng lớn các trang web cho phép người
dùng đóng góp, sửa đổi và chấm điểm nội
dung. Người dùng hội thể hiện quan
điểm cá nhân về các chủ đề cụ thể. dụ như
các blog, diễn đàn hay các trang web đánh
giá sản phẩm và mạng xã hội.
Ý kiến thể được thể hiện trong nhiều
hình thức khác nhau. dụ như các sàn
thương mại điện tnshopee hay lazada
cho phép xếp hạng sản phẩm theo một
thang điểm cố định cũng như là các ý kiến cá
nhân. Những đánh giá y ngày càng xu
ớng dài hơn, thường bao gồm một vài
đoạn văn bản, chúng có xu hướng giống với
các thông điệp trên blog hay các bình lun
ngắn trên mạng xã hi.
lOMoARcPSD| 59735516
Phân loại các cảm xúc của khách hàng
trên foody nhằm khám phá thái độ của
khách hàng về các món ăn cthđược n
từ các cửa hàng. sdụng kỹ thuật xử
ngôn ngữ tự nhiên học máy để m kiếm
các mẫu thống ngôn ngữ trong đoạn
đánh giá phản hồi các sản phẩm.
Nhóm mong muốn các nhận xét
ngắn gọn, thể hiện đọng, trực ếp về các
đánh giá của khách hàng. Nhóm đã tập trung
vào hai thuộc nh chính của văn bản
Ch quan: cho đánh giá ch
quan hay khách quan.
Phân cực: cho dù đánh giá là ch cc
hay êu cực.
Nhóm sdụng phương pháp thống
để nắm bắt các yếu tố phong cách của câu
chquan phân cực. Phân ch thống kê
được thực hiện cấp độ câu. Nhóm đã áp
dụng các kỹ thuật học máy để phân loại tập
n nhắn.
Nhóm quan tâm đến các câu hỏi sau:
Chúng ta thể trích xuất nh chủ
quan và phân cực từ các đánh giá
ngn ở mức độ nào?
Những kỹ thuật học máy o phù hợp
cho mục đích này
Các thuộc nh của các đánh giá
quan trọng đối với việc phân ch cảm
xúc tương tự như thuộc nh của một
số ngliệu hiện có?
II. PHƯƠNG PHÁP
Phương pháp phân ch của nhóm dựa trê
n Học y. Nhóm giải thích nguồn dữ liu
mà nhóm đã sử dụng trong 2.1, Cách sử dụn
g các nh ng trong 2.2 cách thực hiện p
hân loại trong 2.3.
2.1 Nguồn dữ liệu
Nhóm sử dụng dữ liệu gốc được cung
cấp.Nhưng do dữ liệu gốc bị thiếu quá
nhiều nên nhóm có m thêm dliu 1
site:
“hps://github.com/congnghia0609/ntcscv
/tree/master/data”
Nhóm đã dữ liu ở site trên và lưu
chúng trong các tệp food_train.csv,
more_food_cmt.csv và test.csv.Nhóm tạo ra
trình đọc data và chỉnh sửa data
(nd_more_data.py).Sử dụng thư viện pyvi
để cắt từ ghép.
2.2 Lựa chọn sử dụng các nh năng Để
thực hiện việc học, cần phải trích xuất đặc
điểm từ văn bản để thể phân loại chính
xác. Trong hầu hết các phương pháp học y,
các nh ng trong một vector được coi
độc lập về mặt thống kê với nhau. Việc lựa
chọn các nh năng ảnh ởng mạnh mẽ đến
việc học.Chúng ta nên chọn các đặc điểm
của văn bản gốc liên quan cho nhiệm vụ
phân ch cảm c. Thuật toán chính xác đ
m các nh ng tốt nhất không tồn tại, nên
cần phải dựa vào trực giác, và thử nghiệm để
cho kết quả tốt nhất.
2.2.1 LSTM
Long short-term memory (LSTM)
một kiến trúc arcial recurrent neural
network (RNN) được sử dụng trong lĩnh vc
Deep learning. được đề xuất vào m
1997 bởi Sepp Hochreiter và Jurgen
schmidhuber. Không giống như các
feedforward neural networks, LSTM các
kết nối phản hồi. thể xử không chỉ
các điểm dữ liệu đơn lẻ (chẳng hạn như hình
ảnh) còn toàn b chuỗi dữ liệu (chẳng
hạn như speech hoặc video).
LSTM ứng dụng cho các tác vụ như
phân dạng chữ viết tay hoặc nhận dạng
giọng nói một đơn vị bao gồm một cell, input
gate, output gate và forget gate.Cell ghi nh
các giá trị trong khoảng thời gian tùy ý 3
gate điều chỉnh luồng thông n.
Hình 2.2.1. Sơ đồ 3 gate của LSTM
Input gate phát hiện ra giá trnào từ
đầu vào sẽ được sử dụng để sửa đổi bộ nh.
Hàm Sigmoid quyết định giá trị nào sẽ cho
lOMoARcPSD| 59735516
qua 0 hoặc 1. Và m tanh đưa ra trọng số
cho các giá trị được truyền, quyết định mc
độ quan trọng của chúng trong khoảng từ -1
đến 1.
i
t
=σ (W
j
.[
t
1,x
t
]+bi)
C
t
=tan(W
C
. [
t
1, x
t
]+b
c
)
Forget gate khám phá các chi ết cần
loại bkhỏi khối. Một hàm sigmoid quyết
định nó. xem xét trạng thái trước đó (ht1)
đầu vào nội dung (Xt) và xuất ra một s
giữa 0 (bỏ qua điều này) 1 (giữ nguyên
điều này) cho mỗi số trong trạng thái ô Ct-1.
f
t
=σ .(W
f
. [
t
1, x
t
]+b
f
)
Output gate Đầu vào bộ nhcủa khối
được sử dụng để quyết định đầu ra. Hàm
Sigmoid quyết định giá tr o cho qua 0
hoặc 1. Và hàm tanh quyết định giá trị nào
cho qua 0, 1. Và hàm tanh đưa ra trọng số
cho các giá trị được truyền, quyết định mc
độ quan trọng của chúng trong khoảng từ -1
đến 1 và nhân lên với đầu ra là sigmoid.
O
t
=σ (W
o
[
t
1,x
t
]+b
o
)
t
=o
t
tan (C
t
)
2.2.2 Bi-LSTM
LSTM hai chiều (Bi-LSTM) là mạng
thần kinh hồi quy được sử dụng chủ yếu
trong x lý ngôn ngữ tự nhiên. Không giống
như LSTM êu chuẩn, đầu vào chảy theo cả
hai hướng và nó có khả năng sử dụng thông
n từ cả hai phía. Đây cũng là một công cụ
mạnh mẽ để lập mô hình phụ thuộc tuần tự
giữa các từ và cụm từ theo cả hai hướng
của chuỗi.
Tóm lại, Bi-LSTM bổ sung thêm một
lớp LSTM, giúp đảo ngược hướng của luồng
thông n. Tóm lại, điều đó có nghĩa là chuỗi
đầu vào chảy ngược trong lớp LSTM bổ
sung. Sau đó, chúng tôi kết hợp các đầu ra
từ cả hai lớp LSTM theo một số cách, chẳng
hạn như nh trung bình, nh tổng, nhân
hoặc nối.
Hình 2.2.2. Mô hình Bi-LSTM
Kiểu kiến trúc này có nhiều lợi thế
trong các vấn đề trong thế giới thực, đặc
biệt là trong NLP. Lý do chính là mọi thành
phần của chuỗi đầu vào đều có thông n từ
cả quá khứ và hiện ti. Vì lý do này, BiLSTM
có thể to ra đầu ra có ý nghĩa hơn, kết hp
các lớp LSTM từ cả hai hướng. Chẳng hạn,
câu:
Apple là thứ mà…”
có thể là về trái táo như trái cây hoặc về
công ty Apple. Do đó, LSTM không biết
Apple” nghĩa là gì, vì nó không biết ngữ
cảnh trong tương lai.
Ngược lại, rất có thể trong cả hai câu
sau: “Apple là thứ mà các đối thủ cạnh
tranh không thể sao chép được.” và
Táo(apple) là thứ tôi thích ăn.” BiLSTM sẽ
có đầu ra khác nhau cho mọi thành phần
(từ) của chuỗi (câu). Do đó , mô hình
BiLSTM có lợi trong một số tác vụ NLP,
chẳng hạn như phân loại câu, dịch thuật và
nhận dạng thực thể. Ngoài ra, nó còn m
thấy các ứng dụng của nó trong nhận dạng
giọng nói, dự đoán cấu trúc protein, nhận
dạng chữ viết tay và các lĩnh vực tương tự.
2.3 Cách phân loại
Thuật toán phân loại dự đoán nhãn
cho một câu đầu vào đã cho. Nhóm đã sử
dụng thuật toán LSTM hoặc Bi-LSTM để xử
.
Nhận đầu vào một chuỗi dữ liu
được xử lý mã hóa đầu ra có 1 đầu ra là xác
sut
Nếu xác suất > 0.5: bình luận đánh
giá trên 5 sao thì sẽ được dán nhãn
ch cực (posive)
lOMoARcPSD| 59735516
Nếu xác suất < 0.5: bình luận đánh
giá dưới 5 sao thì sẽ đưc dán nhãn
êu cực (negave)
Cách xử lý chuỗi thì sử dụng thư viện
pyvi để cắt từ , thư viện sẽ cắt các từ ghép
để mình sử dụng.
Lọc dấu câu do có nhiều bình luận có
ký tự đặc biệt ví dụ như: :)) , :((, -_-, … nên
nhóm chỉ lọc một số dấu sử dụng đa số.
III. ĐÁNH GIÁ
3.1 Thiết lập thí nghiệm
3.1.1 Bi-LSTM
Chương trình sử dụng NLTK 0.9.9 bao
gồm kho văn bản đánh giá cảm c của nó,
sở học y các ràng buộc WordNet. Cụ
th nhóm sử dụng các gói nltk.corpus,
nltk.stem, bs4 và pyvi đền xử dữ liu
đầu vào. Gói sklearn.model_selecon,
keras.models, keras.layers keras.uls đ
y dựng hình. Nhóm cũng đã sử dụng
python numpy pandas đ nh toán
phân ch lệnh thông số dòng. Ngoài ra,
nhóm đã sử dụng gói matplotlib đvẽ các đồ
thị, gensim.models đ tạo ngram vectơ
hoá dữ liệu đầu vào. Cuối cùng gói
sklearn.metrics để đánh giá chất lượng d
đoán mô hình.
Xây dựng mạng Bi-LSTM với các thông
python numpy pandas đ nh toán
phân ch lệnh thông số dòng. Ngoài ra,
nhóm đã sử dụng gói matplotlib để vẽ các đồ
thị, gensim.models để tạo ngram vectơ
hoá dữ liệu đầu vào. Cuối ng gói
sklearn.metrics đđánh giá chất ợng d
đoán mô hình.
Xây dựng mô hình LSTM với các thông s
như hình 3.1.2.
Hình 3.1.2. Các thông số của mô hình
LSTM
3.2. Chuẩn bị dữ liu Ta sẽ sử dụng dữ liu
được cung cấp sẵn trên Kaggle dữ liu
crawl thêm ở bên ngoài về
lOMoARcPSD| 59735516
Hình 3.2.1 Dữ liệu được cung cấp sẵn trên
kaggle
Hình 3.2.2. Dữ liệu sau khi crawl thêm
Do dliệu cung cấp sẵn hình 3.2.1 phân bố
không đồng đều nên ta s crawl thêm
được được bộ dữ liệu có phân bố như hình
3.2.2.
3.3. Đánh giá mô hình
*LSTM
LSTM model : độ chính xác trên tập train
khoảng 94.19% nh 3.2.1 Sliệu sử dụng
điểm AUC-ROC Điểm submission trên Kaggle
là 0.90757 sử
dụng tập test như hình 3.3.3
*Bi-LSTM
Bi-LSTM model : độ chính xác trên tập train
khoảng 94.46% nh 3.2.2 Sliệu sử dụng
điểm AUC-ROC
Điểm submission trên Kaggle 0.92775
Hình 3.3.1 Kết quả khảo sát mô hình LSTM
số như hình 3.1.1
Hình 3.1.1 Các thông số mạng Bi-LSTM
3.1.2 LSTM
Đối với LSTM thì nhóm đã sử dụng các
gói nltk.stem và pyvi để ền xử dữ liệu đầu
vào. Gói sklearn.model_selecon đ y
dựng mô hình. Nhóm cũng đã sử dụng
lOMoARcPSD| 59735516
Hình 3.3.2 Kết quả khảo sát mô hình Bi-LSTM
Hình 3.3.3. Tập data test được cho sẵn trên Kaggle
IV. KẾT LUẬN
Trong báo cáo này, nhóm đã phân ch
cảm xúc bình luận trên website Foody.vn.
Nhóm sử dụng các bình luận trên Foody.vn
(food_train.vcs) để làm mẫu đầu vào. Nhóm
đã sử dụng thuật toán để đánh giá sự phân
cực của chúng (Khen/ Chê). Kết quả cho thấy
hình Bi-LSTM ththực hiện được xử
lý đầu vào và đánh giá phân loại tốt hơn mô
hình LSTM. Giải quyết được bài toán trong
thời kbùng nổ dữ liu đó cung cấp các
thông n trải nghiệm khách hàng. T đó
doanh nghiệp trong lĩnh vực đồ ăn thức
uống sẽ chiến ợc đphát triển dịch vụ
sản phẩm tốt hơn nhằm thu t và giữ chân
khách hàng tốt hơn. Ngoài ra nghiên cứu sẽ
ền đề cho các ứng dụng phân ch dữ liệu,
sử dụng giải pháp này để ch hợp vào các
ứng dụng với mục đích khảo sát cảm xúc tri
nghiệm khách hàng đối với tất cả sản phm
dịch vụ khác nhau.
Trong các nghiên cứu ếp theo, nhóm
sẽ mở rộng bằng cách cài đặt hệ thống đtự
động cập nhật dữ liệu. Dữ liệu sẽ tự trích
xuất dữ liệu từ trên website và loại bỏ dữ
liệu trùng lặp trước khi lưu vào sở dữ liệu.
Thu thập dữ liệu nhiều hơn nữa từ nhiu
nguồn, phát triển nghiên cứu theo hướng
phân ch dữ liu
lớn (Bigdata). ng dụng triển khai các o
cáo phân ch ý kiến người dùng trên
website, đặc biệt trên thiết bị di động,
giúp doanh nghiệp ện lợi hơn trong vic
xem báo cáo và ra quyết định tốt hơn.
lOMoARcPSD| 59735516
Link le code báo cáo được nhóm lưu trữ
trên Drive :
hps://drive.google.com/drive/folders/1mf
BfrrZa6vwfL35a0W63WD4reFf88b3v?
clid=IwAR3wshZfMpZ_IXSf1iS17GM2
PKl42TL30jqcjOIEJy6Js6GZwpyVnKe_R
Ss
Tài Liệu Tham Khảo
[1] Trang web của
Foody hps://www.foody.vn
[2] Tài liệu về Bi-
LSTM
hps://www.baeldung.com/cs/bidirec
o
nal-vs-unidireconal-lstm
[3] Tài liệu về
LSTM hps://websitehcm.com/long-
shorerm-memory-lstm-la-gi/
[4] Dữ liệu crawl
thêm
hps://github.com/congnghia0609/ntc
scv/tree/master/data
[5] Mô hình ền xử lý word2vec
hps://machinelearningcoban.com/
tabml_book/ch_embedding/
word2vec.html
Phụ lục
Mô hình Bi-LSTM được sử dụng trong bài
Hàm ền xử lý để tách các từ ra khỏi câu phục vị cho việc lập từ điển
lOMoARcPSD| 59735516
Ở đây ta sẽ dùng Word2Vec để xử lý chuyển các câu thành các vector embeding với
256 đặc trưng
Mô hình LSTM
Tiền xử của khi ng LSTM đây ta sẽ ng hàm Tokenizer của keras đ
chuyển chuỗi string về vector embeding để có thể sử lý bằng LSTM
lOMoARcPSD| 59735516

Preview text:

lOMoAR cPSD| 59735516
Báo Cáo Cuối Kỳ Môn Học Máy
Sentiment Analysis Problem on Foody.vn
INT3405_20_Team_CHL (Thứ tự hiện tại trên Kaggle
22 - Điểm số : 0.92775)
Nguyễn Văn Cường Phạm Quang Huy Đỗ Văn Linh K64 - R K64-R K64-R 19020512@vnu.edu.vn 19020557@vnu.edu.vn 19020569@vnu.edu.vn Trần Ngọc Kính Tống Văn Hùng K64-K1 K64-K1 19020564@vnu.edu.vn 19020552@vnu.edu.vn Tên Công Việc
Tên các thành viên phụ trách Tìm thêm dữ liệu Phạm Quang Huy Xử lý dữ liệu
Phạm Quang Huy (Bi-LSTM), Đỗ Văn Linh (LSTM)
Đề xuất, xây dựng và huấn luyện Nguyễn Văn Cường (LSTM,Bi-LSTM) mô hình
Tổng hợp kết quả và viết báo
Trần Ngọc Kính, Tống Văn Hùng cáo Tóm tắt
Bi-LSTM, Sentiment Analylis Problem)
Báo cáo này trình bày nghiên cứu thực I. GIỚI THIỆU
nghiệm về hiệu quả của các kỹ thuật học máy
Trong những năm gần đây, một số
trong việc phân loại cảm xúc trên website
lượng lớn các trang web cho phép người
Foody.vn về trạng thái tiêu cực hay tích cực.
dùng đóng góp, sửa đổi và chấm điểm nội
Nhóm sử dụng dữ liệu trong đó có 40000
dung. Người dùng có cơ hội thể hiện quan
mẫu (bao gồm testset và trainset) có 20000
điểm cá nhân về các chủ đề cụ thể. Ví dụ như
mẫu positive và 20000 mẫu negative để
các blog, diễn đàn hay các trang web đánh
training (food_train.vcs) đủ 40000 mẫu.
giá sản phẩm và mạng xã hội.
Nhóm sử dụng các đánh giá đồ ăn, hạn chế
Ý kiến có thể được thể hiện trong nhiều
tính từ và trạng từ, xử lý phủ định, giới hạn
hình thức khác nhau. Ví dụ như các sàn
tần số từ bằng ngưỡng và sử dụng kiến thức
thương mại điện tử như shopee hay lazada
từ đồng nghĩa WordNet. Nhóm đánh giá với
cho phép xếp hạng sản phẩm theo một
độ chính xác của 2 phương pháp học máy
thang điểm cố định cũng như là các ý kiến cá
LSTM và Bi-LSTM .Nhóm kết thúc nghiên cứu
nhân. Những đánh giá này ngày càng có xu
với những giải thích và kết luận về tỷ lệ chính
hướng dài hơn, thường bao gồm một vài xác của công việc.
đoạn văn bản, chúng có xu hướng giống với
các thông điệp trên blog hay các bình luận
(Keywords - Machine learning,LSTM,
ngắn trên mạng xã hội. lOMoAR cPSD| 59735516
Phân loại các cảm xúc của khách hàng
trình đọc data và chỉnh sửa data
trên foody nhằm khám phá thái độ của
(find_more_data.py).Sử dụng thư viện pyvi
khách hàng về các món ăn cụ thể được bán để cắt từ ghép.
từ các cửa hàng. Nó sử dụng kỹ thuật xử lý
2.2 Lựa chọn và sử dụng các tính năng Để
ngôn ngữ tự nhiên và học máy để tìm kiếm
thực hiện việc học, cần phải trích xuất đặc
các mẫu thống kê và ngôn ngữ trong đoạn
điểm từ văn bản để có thể phân loại chính
đánh giá phản hồi các sản phẩm.
xác. Trong hầu hết các phương pháp học máy,
Nhóm mong muốn có các nhận xét
các tính năng trong một vector được coi là
ngắn gọn, thể hiện cô đọng, trực tiếp về các
độc lập về mặt thống kê với nhau. Việc lựa
đánh giá của khách hàng. Nhóm đã tập trung
chọn các tính năng ảnh hưởng mạnh mẽ đến
vào hai thuộc tính chính của văn bản
việc học.Chúng ta nên chọn các đặc điểm
• Chủ quan: cho dù đánh giá là chủ
của văn bản gốc có liên quan cho nhiệm vụ quan hay khách quan.
phân tích cảm xúc. Thuật toán chính xác để
• Phân cực: cho dù đánh giá là tích cực
tìm các tính năng tốt nhất không tồn tại, nên hay tiêu cực.
cần phải dựa vào trực giác, và thử nghiệm để
Nhóm sử dụng phương pháp thống kê cho kết quả tốt nhất.
để nắm bắt các yếu tố và phong cách của câu 2.2.1 LSTM
chủ quan và phân cực. Phân tích thống kê
được thực hiện ở cấp độ câu. Nhóm đã áp
Long short-term memory (LSTM) là
dụng các kỹ thuật học máy để phân loại tập
một kiến trúc artificial recurrent neural tin nhắn.
network (RNN) được sử dụng trong lĩnh vực
Nhóm quan tâm đến các câu hỏi sau:
Deep learning. Nó được đề xuất vào năm •
1997 bởi Sepp Hochreiter và Jurgen
Chúng ta có thể trích xuất tính chủ
schmidhuber. Không giống như các
quan và phân cực từ các đánh giá
feedforward neural networks, LSTM có các ngắn ở mức độ nào? •
kết nối phản hồi. Nó có thể xử lý không chỉ
Những kỹ thuật học máy nào phù hợp
các điểm dữ liệu đơn lẻ (chẳng hạn như hình cho mục đích này
ảnh) mà còn toàn bộ chuỗi dữ liệu (chẳng
• Các thuộc tính của các đánh giá có hạn như speech hoặc video).
quan trọng đối với việc phân tích cảm
LSTM ứng dụng cho các tác vụ như
xúc tương tự như thuộc tính của một
phân dạng chữ viết tay hoặc nhận dạng số ngữ liệu hiện có?
giọng nói một đơn vị bao gồm một cell, input II. PHƯƠNG PHÁP
gate, output gate và forget gate.Cell ghi nhớ
Phương pháp phân tích của nhóm dựa trê
các giá trị trong khoảng thời gian tùy ý và 3
n Học Máy. Nhóm giải thích nguồn dữ liệu
gate điều chỉnh luồng thông tin.
mà nhóm đã sử dụng trong 2.1, Cách sử dụn
g các tính năng trong 2.2 và cách thực hiện p
Hình 2.2.1. Sơ đồ 3 gate của LSTM hân loại trong 2.3.
2.1 Nguồn dữ liệu
Nhóm sử dụng dữ liệu gốc được cung
cấp.Nhưng do dữ liệu gốc bị thiếu quá
nhiều nên nhóm có tìm thêm dữ liệu ở 1 site:
“https://github.com/congnghia0609/ntcscv /tree/master/data”
Nhóm đã dữ liệu ở site trên và lưu
Input gate – Nó phát hiện ra giá trị nào từ
chúng trong các tệp food_train.csv,
đầu vào sẽ được sử dụng để sửa đổi bộ nhớ.
more_food_cmt.csv và test.csv.Nhóm tạo ra
Hàm Sigmoid quyết định giá trị nào sẽ cho lOMoAR cPSD| 59735516
qua 0 hoặc 1. Và hàm tanh đưa ra trọng số
hạn như tính trung bình, tính tổng, nhân
cho các giá trị được truyền, quyết định mức hoặc nối.
độ quan trọng của chúng trong khoảng từ -1
Hình 2.2.2. Mô hình Bi-LSTM đến 1.
it=σ (W j .[ℎt −1,xt ]+bi)
Ct=tanℎ(WC . [ℎt −1, xt]+bc )
Forget gate – Nó khám phá các chi tiết cần
loại bỏ khỏi khối. Một hàm sigmoid quyết
Kiểu kiến trúc này có nhiều lợi thế
định nó. Nó xem xét trạng thái trước đó (ht1)
trong các vấn đề trong thế giới thực, đặc
và đầu vào nội dung (Xt) và xuất ra một số
biệt là trong NLP. Lý do chính là mọi thành
giữa 0 (bỏ qua điều này) và 1 (giữ nguyên
phần của chuỗi đầu vào đều có thông tin từ
điều này) cho mỗi số trong trạng thái ô Ct-1.
cả quá khứ và hiện tại. Vì lý do này, BiLSTM
có thể tạo ra đầu ra có ý nghĩa hơn, kết hợp
các lớp LSTM từ cả hai hướng. Chẳng hạn,
f t=σ .(Wf . [ℎt −1, xt]+bf ) câu: “Apple là thứ mà…”
Output gate – Đầu vào và bộ nhớ của khối
được sử dụng để quyết định đầu ra. Hàm
có thể là về trái táo như trái cây hoặc về
Sigmoid quyết định giá trị nào cho qua 0
công ty Apple. Do đó, LSTM không biết
hoặc 1. Và hàm tanh quyết định giá trị nào
“Apple” nghĩa là gì, vì nó không biết ngữ
cho qua 0, 1. Và hàm tanh đưa ra trọng số cảnh trong tương lai.
cho các giá trị được truyền, quyết định mức
Ngược lại, rất có thể trong cả hai câu
độ quan trọng của chúng trong khoảng từ -1
sau: “Apple là thứ mà các đối thủ cạnh
đến 1 và nhân lên với đầu ra là sigmoid.
tranh không thể sao chép được.” và
“Táo(apple) là thứ tôi thích ăn.” BiLSTM sẽ
có đầu ra khác nhau cho mọi thành phần
Ot=σ (W o[ℎt −1,xt ]+bo) ℎt=ot
(từ) của chuỗi (câu). Do đó , mô hình ∗tanℎ (Ct )
BiLSTM có lợi trong một số tác vụ NLP,
chẳng hạn như phân loại câu, dịch thuật và 2.2.2 Bi-LSTM
nhận dạng thực thể. Ngoài ra, nó còn tìm
thấy các ứng dụng của nó trong nhận dạng
LSTM hai chiều (Bi-LSTM) là mạng
giọng nói, dự đoán cấu trúc protein, nhận
thần kinh hồi quy được sử dụng chủ yếu
dạng chữ viết tay và các lĩnh vực tương tự.
trong xử lý ngôn ngữ tự nhiên. Không giống
như LSTM tiêu chuẩn, đầu vào chảy theo cả
hai hướng và nó có khả năng sử dụng thông
2.3 Cách phân loại
tin từ cả hai phía. Đây cũng là một công cụ
mạnh mẽ để lập mô hình phụ thuộc tuần tự
Thuật toán phân loại dự đoán nhãn
giữa các từ và cụm từ theo cả hai hướng
cho một câu đầu vào đã cho. Nhóm đã sử của chuỗi.
dụng thuật toán LSTM hoặc Bi-LSTM để xử
Tóm lại, Bi-LSTM bổ sung thêm một lý.
Nhận đầu vào là một chuỗi dữ liệu
lớp LSTM, giúp đảo ngược hướng của luồng
được xử lý mã hóa đầu ra có 1 đầu ra là xác
thông tin. Tóm lại, điều đó có nghĩa là chuỗi suất
đầu vào chảy ngược trong lớp LSTM bổ
• Nếu xác suất > 0.5: bình luận đánh
sung. Sau đó, chúng tôi kết hợp các đầu ra
giá trên 5 sao thì sẽ được dán nhãn
từ cả hai lớp LSTM theo một số cách, chẳng tích cực (positive) lOMoAR cPSD| 59735516
• Nếu xác suất < 0.5: bình luận đánh
sklearn.metrics để đánh giá chất lượng dự
giá dưới 5 sao thì sẽ được dán nhãn đoán mô hình. tiêu cực (negative)
Cách xử lý chuỗi thì sử dụng thư viện
Xây dựng mô hình LSTM với các thông số
pyvi để cắt từ , thư viện sẽ cắt các từ ghép như hình 3.1.2. để mình sử dụng.
Lọc dấu câu do có nhiều bình luận có
Hình 3.1.2. Các thông số của mô hình
ký tự đặc biệt ví dụ như: :)) , :((, -_-, … nên
nhóm chỉ lọc một số dấu sử dụng đa số. LSTM III. ĐÁNH GIÁ
3.1 Thiết lập thí nghiệm 3.1.1 Bi-LSTM
Chương trình sử dụng NLTK 0.9.9 bao
gồm kho văn bản đánh giá cảm xúc của nó,
cơ sở học máy và các ràng buộc WordNet. Cụ
3.2. Chuẩn bị dữ liệu Ta sẽ sử dụng dữ liệu
thể nhóm sử dụng các gói nltk.corpus,
được cung cấp sẵn trên Kaggle và dữ liệu
nltk.stem, bs4 và pyvi để tiền xử lý dữ liệu
crawl thêm ở bên ngoài về
đầu vào. Gói sklearn.model_selection,
keras.models, keras.layers và keras.utils để
xây dựng mô hình. Nhóm cũng đã sử dụng
python numpy và pandas để tính toán và
phân tích lệnh thông số dòng. Ngoài ra,
nhóm đã sử dụng gói matplotlib để vẽ các đồ
thị, gensim.models để tạo ngram và vectơ
hoá dữ liệu đầu vào. Cuối cùng là gói
sklearn.metrics để đánh giá chất lượng dự đoán mô hình.
Xây dựng mạng Bi-LSTM với các thông
python numpy và pandas để tính toán và
phân tích lệnh thông số dòng. Ngoài ra,
nhóm đã sử dụng gói matplotlib để vẽ các đồ
thị, gensim.models để tạo ngram và vectơ
hoá dữ liệu đầu vào. Cuối cùng là gói lOMoAR cPSD| 59735516
Hình 3.2.1 Dữ liệu được cung cấp sẵn trên
Do dữ liệu cung cấp sẵn hình 3.2.1 phân bố kaggle
không đồng đều nên ta sẽ crawl thêm và
Hình 3.2.2. Dữ liệu sau khi crawl thêm
được được bộ dữ liệu có phân bố như hình số như hình 3.1.1
Hình 3.1.1 Các thông số mạng Bi-LSTM 3.1.2 LSTM
Đối với LSTM thì nhóm đã sử dụng các
gói nltk.stem và pyvi để tiền xử lý dữ liệu đầu
vào. Gói sklearn.model_selection để xây
dựng mô hình. Nhóm cũng đã sử dụng 3.2.2.
3.3. Đánh giá mô hình *LSTM
LSTM model : độ chính xác trên tập train
khoảng 94.19% hình 3.2.1 Số liệu sử dụng
điểm AUC-ROC Điểm submission trên Kaggle là 0.90757 sử
dụng tập test như hình 3.3.3 *Bi-LSTM
Bi-LSTM model : độ chính xác trên tập train
khoảng 94.46% hình 3.2.2 Số liệu sử dụng điểm AUC-ROC
Điểm submission trên Kaggle 0.92775
Hình 3.3.1 Kết quả khảo sát mô hình LSTM lOMoAR cPSD| 59735516
Hình 3.3.2 Kết quả khảo sát mô hình Bi-LSTM
Hình 3.3.3. Tập data test được cho sẵn trên Kaggle IV. KẾT LUẬN
sử dụng giải pháp này để tích hợp vào các
Trong báo cáo này, nhóm đã phân tích
ứng dụng với mục đích khảo sát cảm xúc trải
cảm xúc bình luận trên website Foody.vn.
nghiệm khách hàng đối với tất cả sản phẩm
Nhóm sử dụng các bình luận trên Foody.vn dịch vụ khác nhau.
(food_train.vcs) để làm mẫu đầu vào. Nhóm
Trong các nghiên cứu tiếp theo, nhóm
đã sử dụng thuật toán để đánh giá sự phân
sẽ mở rộng bằng cách cài đặt hệ thống để tự
cực của chúng (Khen/ Chê). Kết quả cho thấy
động cập nhật dữ liệu. Dữ liệu sẽ tự trích
mô hình Bi-LSTM có thể thực hiện được xử
xuất dữ liệu từ trên website và loại bỏ dữ
lý đầu vào và đánh giá phân loại tốt hơn mô
liệu trùng lặp trước khi lưu vào cơ sở dữ liệu.
hình LSTM. Giải quyết được bài toán trong
Thu thập dữ liệu nhiều hơn nữa từ nhiều
thời kỳ bùng nổ dữ liệu đó là cung cấp các
nguồn, và phát triển nghiên cứu theo hướng
thông tin trải nghiệm khách hàng. Từ đó phân tích dữ liệu
doanh nghiệp trong lĩnh vực đồ ăn thức
lớn (Bigdata). Ứng dụng triển khai các báo
uống sẽ có chiến lược để phát triển dịch vụ
cáo phân tích ý kiến người dùng trên
sản phẩm tốt hơn nhằm thu hút và giữ chân
website, đặc biệt là trên thiết bị di động,
khách hàng tốt hơn. Ngoài ra nghiên cứu sẽ
giúp doanh nghiệp tiện lợi hơn trong việc
là tiền đề cho các ứng dụng phân tích dữ liệu,
xem báo cáo và ra quyết định tốt hơn. lOMoAR cPSD| 59735516
Link file code báo cáo được nhóm lưu trữ
https://www.baeldung.com/cs/bidirecti trên Drive : o
https://drive.google.com/drive/folders/1mf
nal-vs-unidirectional-lstm
BfrrZa6vwfL35a0W63WD4reFf88b3v? [3] Tài liệu về
fbclid=IwAR3wshZfMpZ_IXSf1iS17GM2
LSTM https://websitehcm.com/long-
PKl42TL30jqcjOIEJy6Js6GZwpyVnKe_R
shortterm-memory-lstm-la-gi/ Ss [4] Dữ liệu crawl thêm
https://github.com/congnghia0609/ntc
Tài Liệu Tham Khảo scv/tree/master/data [1] Trang web của
[5] Mô hình tiền xử lý word2vec
Foody https://www.foody.vn
https://machinelearningcoban.com/ [2] Tài liệu về Bi-
tabml_book/ch_embedding/ LSTM word2vec.html Phụ lục
Mô hình Bi-LSTM được sử dụng trong bài
Hàm tiền xử lý để tách các từ ra khỏi câu phục vị cho việc lập từ điển lOMoAR cPSD| 59735516
Ở đây ta sẽ dùng Word2Vec để xử lý chuyển các câu thành các vector embeding với 256 đặc trưng Mô hình LSTM
Tiền xử lý của khi dùng LSTM ở đây ta sẽ dùng hàm Tokenizer của keras để
chuyển chuỗi string về vector embeding để có thể sử lý bằng LSTM lOMoAR cPSD| 59735516