Giới thiệu dự án
Sự bùng nổ của thương mại điện tử và thị trường thiết bị di động thông minh tại Việt Nam đã tạo ra khối lượng dữ liệu phản hồi khổng lồ từ người tiêu dùng. Theo số liệu thống kê từ Cục Viễn thông (Bộ TT-TT), Việt Nam ghi nhận hơn 93,5 triệu thuê bao di động với tỷ lệ người trưởng thành sử dụng smartphone đạt 73,5%, đưa Việt Nam vào top 10 quốc gia có mật độ sử dụng điện thoại thông minh cao nhất toàn cầu. Song song với sự tăng trưởng này, hành vi mua sắm đã chuyển dịch mạnh mẽ: người tiêu dùng phụ thuộc vào các bài đánh giá trực tuyến trên các sàn bán lẻ như Thế Giới Di Động, FPT Shop, Shopee hay Lazada trước khi đưa ra quyết định mua hàng.
Tuy nhiên, phần lớn các hệ thống thương mại điện tử hiện nay tại Việt Nam chỉ dừng lại ở cơ chế xếp hạng sao tổng thể (1 đến 5 sao) và các bình luận phân cực chung chung. Một bài đánh giá có thể mang sắc thái khen ngợi về thời lượng pin nhưng đồng thời chê bai gay gắt về camera hoặc hiệu năng xử lý. Việc phân tích cảm xúc mức độ câu/văn bản truyền thống (Document/Sentence-level Sentiment Analysis) không thể giải quyết được bài toán bóc tách chi tiết từng khía cạnh sản phẩm.
[Khía cạnh: PIN] [Khía cạnh: CAMERA] [Khía cạnh: GIÁ]
- Sắc thái: TÍCH CỰC - Sắc thái: TIÊU CỰC - Sắc thái: TRUNG LẬP
Đề tài "Hệ thống phân tích cảm xúc theo khía cạnh phản hồi khách hàng về điện thoại thông minh" (Aspect-Based Sentiment Analysis - ABSA) do nhóm nghiên cứu tại Trường Đại học Công nghệ Thông tin - ĐHQG TP.HCM thực hiện nhằm giải quyết triệt để rào cản này.
Mục tiêu cụ thể của dự án
- Xây dựng Pipeline thu thập và tiền xử lý dữ liệu thời gian thực: Tự động crawl và làm sạch dữ liệu bình luận tiếng Việt từ các nền tảng thương mại điện tử lớn với cơ chế xử lý nội dung động (Dynamic JavaScript Rendering).
- Nghiên cứu, thực nghiệm và tối ưu hóa mô hình học sâu ABSA: Đánh giá các kiến trúc mạng nơ-ron hồi quy và tích chập (CNN, LSTM, BiLSTM, BiGRU) kết hợp biểu diễn từ FastText trên bộ dữ liệu chuẩn
UIT-ViSFD (11.122 nhận xét), nâng cao Macro F1-score so với các nghiên cứu công bố trước đó.
- Phát triển hệ thống phần mềm hoàn chỉnh: Đóng gói mô hình AI vào một ứng dụng web đa tầng với kiến trúc Microservices/RESTful API, cung cấp dashboard trực quan hóa dữ liệu theo thời gian thực phục vụ người tiêu dùng và bộ phận nghiên cứu thị trường (R&D).
Phạm vi và giới hạn
- Phạm vi đối tượng: Phân loại cảm xúc dựa trên 10 khía cạnh cốt lõi của smartphone: Màn hình (Screen), Camera, Tính năng (Features), Pin (Battery), Hiệu suất (Performance), Bộ nhớ (Storage), Thiết kế (Design), Giá (Price), Đánh giá chung (General), Dịch vụ & Phụ kiện (Service & Accessories).
- Giới hạn kỹ thuật: Hệ thống tập trung tối ưu hóa ngôn ngữ tiếng Việt (bao gồm tiếng Việt biến thể, teencode, từ viết tắt đặc thù công nghệ); giới hạn thử nghiệm trực tiếp trên dữ liệu smartphone, chưa mở rộng sang các ngành hàng gia dụng hoặc thời trang.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Tại thị trường Việt Nam, hầu hết nền tảng bán lẻ công nghệ áp dụng mô hình đánh giá truyền thống, chưa tích hợp khai phá dữ liệu chuyên sâu (Opinion Mining):
| Nền tảng |
Cơ chế đánh giá |
Ưu điểm |
Nhược điểm / Lỗ hổng kỹ thuật |
| Thế Giới Di Động / FPT Shop |
Xếp hạng 1-5 sao, bình luận tự do kèm ảnh |
Giao diện đơn giản, lượng dữ liệu đánh giá khổng lồ |
Không thể lọc theo khía cạnh phần cứng; người dùng phải đọc thủ công hàng trăm bình luận |
| Vntrip / TripAdvisor |
Đánh giá điểm theo từng tiêu chí cố định (1-10) |
Định lượng được các khía cạnh (vị trí, dịch vụ, giá) |
Đòi hỏi người dùng tự điền nhiều biểu mẫu, tỷ lệ bỏ dở đánh giá cao; không tự động phân tích văn bản tự do |
| Hệ thống ABSA Đề xuất |
Tự động phân tích văn bản tự do thành 10 khía cạnh + 3 sắc thái |
Tự động hóa hoàn toàn, xử lý ngôn ngữ tự nhiên sâu, trực quan hóa radar chart thời gian thực |
Đòi hỏi tài nguyên tính toán inference và pipeline xử lý dữ liệu chuẩn hóa cao |
Phân loại yêu cầu hệ thống (MoSCoW Framework)
- Must-Have: Module crawl dữ liệu đa luồng từ TGDD/FPTShop; Pipeline tiền xử lý văn bản tiếng Việt (khử HTML, teencode, tokenize VnCoreNLP); Mô hình AI phân loại đa nhãn khía cạnh và cảm xúc; Giao diện Dashboard so sánh trực quan 2 smartphone.
- Should-Have: Tính năng in/xuất báo cáo phân tích định dạng PDF/CSV; Module xác thực người dùng JWT (Đăng ký, Đăng nhập, Profile, Lịch sử tra cứu).
- Could-Have: Bộ lọc tìm kiếm thông minh theo khía cạnh đơn lẻ (ví dụ: tìm smartphone có Pin "Tích cực" và Camera "Tích cực" trong tầm giá dưới 7 triệu VNĐ).
- Won't-Have: Tính năng tự động phát hiện phản hồi giả mạo (Fake Review Detection) trong giai đoạn hiện tại.
Thiết kế kiến trúc hệ thống
Hệ thống được thiết kế theo mô hình phân tầng hướng dịch vụ (Multi-tier Decoupled Architecture), tách biệt giữa tầng hiển thị, tầng xử lý trung gian API Gateway và tầng tính toán trí tuệ nhân tạo (AI Engine):
Chi tiết Tech Stack và Phiên bản công nghệ
- Client Tier (Frontend): ReactJS 18.2+, TailwindCSS, Chart.js / Recharts (vẽ biểu đồ phân cực cảm xúc), Axios.
- Business Logic Tier (Backend API): Node.js 18 LTS, Express.js 4.18+, Mongoose ODM, JWT Authentication.
- AI & Data Crawler Tier: Python 3.10+, PyTorch 2.0+ / Keras 2.12+, Scrapy 2.9+, Playwright 1.35+, VnCoreNLP 1.1+.
- Database Tier: MongoDB 6.0+ Community Server (Lưu trữ NoSQL document linh hoạt cho schema bình luận và khía cạnh).
Thiết kế Database Schema (MongoDB Document Model)
{
"_id": { "$oid": "64f1a2b3c4d5e6f7a8b9c0d1" },
"product_id": "samsung-galaxy-a53-5g",
"product_name": "Samsung Galaxy A53 5G 128GB",
"source_url": "https://thegioididong.com/dtdd/samsung-galaxy-a53-5g",
"crawl_timestamp": { "$date": "2023-11-20T08:30:00Z" },
"reviews": [
{
"review_id": "rev_001",
"raw_text": "Xài một ngày mà pin vẫn chưa xuống đến 20%, nhưng camera chụp tối hơi vỡ nét.",
"processed_text": "xài một ngày mà pin_vẫn_chưa xuống đến 20 % , nhưng camera chụp tối hơi vỡ nét .",
"aspects": [
{ "aspect_name": "BATTERY", "polarity": "Positive", "confidence": 0.942 },
{ "aspect_name": "CAMERA", "polarity": "Negative", "confidence": 0.887 }
]
}
],
"aggregate_metrics": {
"total_reviews": 362,
"aspect_scores": {
"BATTERY": { "positive": 240, "neutral": 32, "negative": 15 },
"CAMERA": { "positive": 180, "neutral": 45, "negative": 68 }
}
}
}
Đặc tả API RESTful cốt lõi
POST /api/v1/analysis/crawl-and-predict: Kích hoạt crawler thu thập URL sản phẩm, đưa qua pipeline NLP và lưu kết quả.
GET /api/v1/products/:id/aspect-summary: Trả về dữ liệu phân phối cảm xúc 10 khía cạnh phục vụ render biểu đồ radar.
POST /api/v1/products/compare: So sánh tỷ lệ phần trăm phân cực theo khía cạnh giữa 2 model smartphone (ví dụ: iPhone 14 vs Galaxy S23).
Implementation và kết quả
Development Process & Pipeline kỹ thuật
Quy trình xử lý dữ liệu và huấn luyện mô hình được chuẩn hóa thành một pipeline khép kín gồm 6 bước nghiêm ngặt:
[Raw Crawled Text]
1. Pipeline Tiền xử lý dữ liệu Tiếng Việt
Dữ liệu mạng xã hội và đánh giá thương mại chứa lượng lớn nhiễu, từ lóng (slang), teencode và sai lệch mã Unicode (dựng sẵn vs tổ hợp). Module tiền xử lý được lập trình giải quyết triệt để các vấn đề này:
import re
import unicodedata
from vncorenlp import VnCoreNLP
# Khởi tạo VnCoreNLP cho tác vụ Word Segmentation
rdrsegmenter = VnCoreNLP("/opt/vncorenlp/VnCoreNLP-1.1.1.jar", annotators="wseg", max_heap_size='-Xmx500m')
# Bảng từ điển ánh xạ Teencode chuẩn hóa (Dang et al., 2021)
TEENCODE_DICT = {
"oki": "ok", "sp": "sản phẩm", "dt": "điện thoại", "pin trau": "pin lâu",
"sop": "cửa hàng", "shop": "cửa hàng", "tl": "trả lời", "mik": "mình",
"tgdd": "thế giới di động", "ko": "không", "k": "không", "nhank": "nhanh"
}
def preprocess_vietnamese_text(text: str) -> str:
# 1. Loại bỏ các thẻ HTML
text = re.sub(r'<.*?>', '', text)
# 2. Loại bỏ ký tự đặc biệt lặp lại, giữ lại cấu trúc câu cơ bản
text = re.sub(r'[?!\\/\[\]{}()=+\-_*&^%$#@~`]', ' ', text)
# 3. Chuẩn hóa bảng mã Unicode sang UTF-8 NFC chuẩn
text = unicodedata.normalize('NFC', text)
# 4. Chuyển chữ thường
text = text.lower().strip()
# 5. Thay thế Teencode & từ viết tắt
words = text.split()
normalized_words = [TEENCODE_DICT.get(w, w) for w in words]
normalized_text = " ".join(normalized_words)
# 6. Tách từ tiếng Việt bằng VnCoreNLP
segmented_sentences = rdrsegmenter.tokenize(normalized_text)
processed_text = " ".join([" ".join(sent) for sent in segmented_sentences])
return processed_text
# Minh họa chạy thử nghiệm
raw_sample = "<p>Dùng oki, hàng chính hãng có khác, sẽ tiếp tục ủng hộ sop!!! Pin trâu xài 2 ngày.</p>"
clean_sample = preprocess_vietnamese_text(raw_sample)
# Kết quả: "dùng ok , hàng chính_hãng có khác , sẽ tiếp_tục ủng_hộ cửa_hàng . pin lâu xài 2 ngày ."
2. Kiến trúc Mô hình Đề xuất: BiGRU + FastText
Mô hình sử dụng mạng nơ-ron hồi quy hai chiều Gated Recurrent Unit (BiGRU) kết hợp lớp vector nhúng từ n-gram FastText nhằm giải quyết từ chưa từng xuất hiện trong tập huấn luyện (Out-Of-Vocabulary - OOV):
import tensorflow as tf
from tensorflow.keras.layers import Input, Embedding, SpatialDropout1D, Bidirectional, GRU, Conv1D, GlobalMaxPooling1D, GlobalAveragePooling1D, concatenate, Dense
from tensorflow.keras.models import Model
def build_bigru_absa_model(vocab_size: int, embedding_dim: int, max_seq_len: int, embedding_matrix, num_classes: int = 3):
# Đầu vào văn bản đã được vector hóa chỉ mục
input_layer = Input(shape=(max_seq_len,), name="input_token_ids")
# Lớp nhúng từ FastText Pretrained
embedding_layer = Embedding(
input_dim=vocab_size,
output_dim=embedding_dim,
weights=[embedding_matrix],
input_length=max_seq_len,
trainable=False,
name="fasttext_embedding"
)(input_layer)
# Giảm Overfitting với SpatialDropout1D
dropout = SpatialDropout1D(0.2)(embedding_layer)
# Lớp BiGRU trích xuất ngữ cảnh 2 chiều (Forward + Backward)
bigru_out = Bidirectional(GRU(128, return_sequences=True, recurrent_dropout=0.1))(dropout)
# Trích xuất đặc trưng cục bộ bằng Convolution 1D
conv_feat = Conv1D(64, kernel_size=3, padding="valid", activation="relu")(bigru_out)
# Gộp đặc trưng lớn nhất và trung bình (Max Pooling & Average Pooling)
max_pool = GlobalMaxPooling1D()(conv_feat)
avg_pool = GlobalAveragePooling1D()(conv_feat)
merged_features = concatenate([max_pool, avg_pool])
# Tầng ẩn kết nối đầy đủ và phân loại đầu ra cảm xúc
dense_1 = Dense(128, activation="relu")(merged_features)
output_layer = Dense(num_classes, activation="softmax", name="sentiment_polarity_output")(dense_1)
model = Model(inputs=input_layer, outputs=output_layer)
model.compile(loss="categorical_crossentropy", optimizer=tf.keras.optimizers.Adam(learning_rate=1e-3), metrics=["accuracy"])
return model
Testing và Đánh giá Benchmark Thực nghiệm
Các mô hình được huấn luyện trên bộ dữ liệu UIT-ViSFD gồm 11.122 nhận xét chuẩn hóa, chia theo tỷ lệ Train/Dev/Test, thiết lập batch_size = 32 và epochs = 20. Đánh giá so sánh trực tiếp trên tác vụ phân loại cảm xúc theo khía cạnh (Aspect-Based Sentiment Polarity Classification) sử dụng các thang đo chuẩn: Precision ($P$), Recall ($R$) và Macro F1-score ($F1_{macro}$):
$$Precision = \frac{TP}{TP + FP}, \quad Recall = \frac{TP}{TP + FN}, \quad F1_{macro} = 2 \times \frac{Precision \times Recall}{Precision + Recall}$$
| Nhóm mô hình |
Thuật toán & Cấu hình |
Precision (%) |
Recall (%) |
Macro F1-Score (%) |
Độ trễ suy luận (ms/câu) |
| Machine Learning |
Naïve Bayes (Không tiền xử lý - Phan et al.) |
47.10 |
38.50 |
39.80 |
1.2 ms |
| Machine Learning |
Naïve Bayes + CountVectorizer (Có tiền xử lý) |
66.82 |
49.31 |
56.47 |
1.8 ms |
| Deep Learning |
SA2SL (BiLSTM + FastText - Phan et al. [23]) |
65.48 |
61.20 |
63.06 |
14.5 ms |
| Deep Learning |
CNN + LSTM + FastText |
73.12 |
69.80 |
71.42 |
11.2 ms |
| Deep Learning |
BiLSTM + FastText (Cải tiến tiền xử lý) |
72.90 |
71.30 |
72.09 |
15.1 ms |
| Deep Learning (Best) |
BiGRU + FastText (Đề xuất hệ thống) |
73.15 |
72.52 |
72.83 |
8.6 ms |
Macro F1-Score Comparison Across Models (%)
Phân tích kết quả:
- Pipeline tiền xử lý văn bản chuyên sâu giúp mô hình Naive Bayes tăng vọt +16.67% F1-score so với dữ liệu thô.
- Kiến trúc BiGRU + FastText đạt F1-Score cao nhất (72.83%), vượt qua nghiên cứu cơ sở SA2SL đến +9.77%. Đồng thời, nhờ cơ chế tinh giản số cổng điều khiển (2 gates thay vì 3 gates như LSTM), BiGRU giảm 28% số lượng tham số tính toán, giúp giảm độ trễ suy luận xuống chỉ còn 8.6 ms/câu, hoàn toàn tối ưu cho việc tích hợp vào hệ thống web thời gian thực.
Đổi mới và đóng góp
- Cải tiến vượt bậc hiệu năng phân loại cảm xúc khía cạnh: Bằng việc kết hợp tầng tiền xử lý tiếng Việt hoàn chỉnh với kiến trúc kết hợp BiGRU, Conv1D và Dual-Pooling (Max + Avg Pooling), nhóm nghiên cứu đã nâng Macro F1 từ 63.06% lên 72.83% trên tập dữ liệu chuẩn UIT-ViSFD.
- Xây dựng Crawler lai (Hybrid Crawler) hiệu năng cao: Tích hợp Scrapy cùng headless browser Playwright, giải quyết bài toán cào dữ liệu từ các trang Single Page Application (SPA) render bằng JavaScript phức tạp như Thế Giới Di Động mà các công cụ scraping tĩnh (BeautifulSoup, Requests) không thể thực hiện được.
- Đóng gói giải pháp End-to-End ứng dụng thực tiễn: Chuyển hóa toàn bộ quy trình nghiên cứu thuật toán từ môi trường thí nghiệm thành một ứng dụng web thương mại hoàn chỉnh với đầy đủ tính năng: Tra cứu sản phẩm, So sánh đối đầu giữa 2 thiết bị (Head-to-head Aspect Comparison), Xuất báo cáo trực quan cho người tiêu dùng và doanh nghiệp.
Ứng dụng thực tế và triển khai
Kịch bản ứng dụng thực tế (Use Cases)
- Người tiêu dùng thông minh: Người mua đang phân vân giữa hai dòng máy cùng phân khúc (ví dụ: Samsung Galaxy A54 vs Xiaomi Redmi Note 12 Pro). Thay vì đọc hàng ngàn review, người dùng chọn so sánh trên hệ thống để thấy rõ: Galaxy A54 vượt trội về Màn hình (88% tích cực) và Dịch vụ (91%), trong khi Redmi Note 12 Pro chiếm ưu thế về Hiệu suất chơi game (85%) và Giá (82%).
- Bộ phận Quản trị Chất lượng & R&D của Hãng sản xuất: Trích xuất nhanh các phản hồi tiêu cực về một khía cạnh cụ thể sau khi tung ra bản cập nhật phần mềm (ví dụ: khía cạnh Pin bị giảm 30% đánh giá tích cực do lỗi hao pin ngầm).
[Thu thập dữ liệu Đa nguồn] (Scrapy + Playwright)
[Hệ thống Phân tích ABSA] (BiGRU Engine)
[Dashboard Khách hàng] [Báo cáo R&D / Doanh nghiệp]
- So sánh 2 thiết bị - Phát hiện lỗi phần cứng sớm
- Lọc điện thoại theo - Phân tích đối thủ cạnh tranh
tiêu chí (Pin/Camera) - Tối ưu hóa chuỗi dịch vụ bán lẻ
Chiến lược Triển khai và Yêu cầu Hệ thống
- Hạ tầng máy chủ tối thiểu:
- CPU: 4 Cores (Intel Xeon / AMD EPYC hoặc tương đương).
- RAM: 8 GB (Phục vụ load embedding FastText và model inference).
- Storage: 50 GB SSD NVMe.
- OS: Ubuntu 22.04 LTS, Docker & Docker-Compose.
- Mô hình triển khai Containerized:
version: '3.8'
services:
frontend:
image: absa-frontend:1.0.0
ports: ["80:80"]
depends_on: [backend-api]
backend-api:
image: absa-node-api:1.0.0
ports: ["5000:5000"]
environment:
- MONGO_URI=mongodb://db:27017/absa_db
- AI_SERVICE_URL=http://ai-engine:8000
depends_on: [mongodb, ai-engine]
ai-engine:
image: absa-ai-service:1.0.0
ports: ["8000:8000"]
mongodb:
image: mongo:6.0
volumes: ["mongo_data:/data/db"]
volumes:
mongo_data:
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại
- Mất cân bằng nhãn trong tập dữ liệu: Khía cạnh GENERAL (Đánh giá chung) chiếm 6.936 mẫu trong khi khía cạnh STORAGE (Bộ nhớ) chỉ có 132 mẫu, dẫn đến độ chính xác nhận diện các khía cạnh thiểu số chưa cao.
- Ngữ cảnh đảo ngược ngữ nghĩa phức tạp: Các câu chứa cấu trúc mỉa mai, châm biếm sâu ("Dùng máy này mùa đông khỏi cần mua lò sưởi") đôi khi bị mô hình phân loại nhầm thành khía cạnh tích cực do chứa từ vựng mang năng lượng cao.
Hướng nâng cấp và nghiên cứu tương lai
- Chuyển giao công nghệ sang Pre-trained Transformers: Nghiên cứu fine-tune các mô hình ngôn ngữ lớn chuyên sâu tiếng Việt như
PhoBERT, ViBERT hoặc kiến trúc DeBERTa kết hợp cơ chế Span-level Extraction để đồng thời giải quyết bài toán trích xuất thực thể ý kiến (Opinion Target Expression - OTE).
- Mở rộng đa miền (Cross-domain ABSA): Tích hợp kỹ thuật Transfer Learning để mở rộng hệ thống sang phân tích ý kiến về Máy tính xách tay (Laptop), Thiết bị đeo thông minh (Smartwatch) và Dịch vụ khách sạn.
Đối tượng hưởng lợi
[NGƯỜI TIÊU DÙNG] [SINH VIÊN & NC] [LẬP TRÌNH VIÊN] [DOANH NGHIỆP]
- Tiết kiệm 80% - Kế thừa bộ dữ - Source code kiến - Insight thị trường
thời gian đọc liệu & pipeline trúc Microservice chuẩn xác, cải thiện
review tiền xử lý chuẩn production-ready R&D & CSKH
- Sinh viên và Nhà nghiên cứu NLP: Cung cấp tài liệu tham khảo chi tiết, quy trình thực nghiệm rõ ràng về bài toán ABSA tiếng Việt và kinh nghiệm xử lý dữ liệu mạng xã hội phi cấu trúc.
- Kỹ sư phát triển phần mềm (Software Engineers): Cung cấp mã nguồn tham khảo về việc tích hợp mô hình Deep Learning viết bằng Python vào hệ sinh thái ứng dụng Web viết bằng Node.js và ReactJS.
- Doanh nghiệp bán lẻ và Hãng sản xuất: Cung cấp giải pháp trích xuất Customer Insights tự động với độ chính xác cao, cắt giảm hơn 70% chi phí khảo sát thị trường truyền thống.
Câu hỏi thường gặp
1. Cần cấu hình phần cứng tối thiểu nào để deploy hệ thống này vào môi trường Production?
Hệ thống yêu cầu máy chủ chạy hệ điều hành Linux (Ubuntu 20.04/22.04 LTS), tối thiểu 4 CPU Cores, 8GB RAM và 20GB dung lượng ổ cứng. Nếu sử dụng GPU (như NVIDIA T4 / RTX 3060), tốc độ suy luận batch có thể tăng gấp 5–8 lần, đáp ứng hàng ngàn lượt truy vấn đồng thời.
2. Giới hạn khả năng mở rộng (Scalability) của hệ thống là gì và giải pháp khắc phục?
Giới hạn lớn nhất nằm ở độ trễ khi crawl dữ liệu thời gian thực từ các trang thương mại điện tử bằng Playwright do tốn RAM trình duyệt. Giải pháp là chuyển sang cơ chế Crawl bất đồng bộ theo lịch trình (Scheduled Cron Tasks), lưu trữ dữ liệu phân tích sẵn vào MongoDB và thiết lập tầng đệm Redis Cache cho các sản phẩm hot.
3. Làm thế nào để tích hợp hệ sinh thái AI (Python) với Backend quản lý (Node.js)?
Hệ thống tách biệt hai thành phần thông qua kiến trúc Microservices. Tầng AI Engine được bao bọc bởi framework FastAPI (Python), cung cấp các API RESTful nội bộ (Internal Endpoints). Backend chính (Node.js/Express) giao tiếp với AI Service qua các HTTP request bất đồng bộ bằng thư viện Axios.
4. Hệ thống cần bảo trì định kỳ những hạng mục nào?
- Cập nhật cấu trúc DOM của Crawler: Khi các website như TGDD hay FPT Shop thay đổi class HTML hoặc cơ chế chặn bot (Cloudflare/Anti-scraping), script Playwright cần được cập nhật selectors.
- Cập nhật từ điển Teencode: Định kỳ 3–6 tháng bổ sung các từ lóng công nghệ mới của giới trẻ vào bộ từ điển chuẩn hóa.
5. Chi phí vận hành ước tính và thời gian hoàn vốn (ROI) cho doanh nghiệp?
Chi phí thuê Cloud VPS (4 Core, 8GB RAM trên DigitalOcean/AWS/Linode) dao động từ 40$ – 60$/tháng (xấp xỉ 1.000.000 – 1.500.000 VNĐ). So với việc thuê nhân sự phân tích dữ liệu thủ công (tốn 15.000.000 – 20.000.000 VNĐ/tháng), hệ thống mang lại điểm hòa vốn và ROI dương ngay trong tháng đầu tiên vận hành.
Kết luận
Đồ án khóa luận tốt nghiệp của sinh viên Lê Thị Phương Thanh và Ngô Hồ Bích Trâm dưới sự hướng dẫn của TS. Đỗ Trọng Hợp và ThS. Lưu Thanh Sơn đã giải quyết xuất sắc bài toán phân tích cảm xúc theo khía cạnh (ABSA) cho ngôn ngữ tiếng Việt trong lĩnh vực điện thoại thông minh. Với việc ứng dụng thành công mô hình học sâu BiGRU kết hợp FastText đạt Macro F1-Score 72.83%, công trình đã tạo ra một bước đột phá rõ nét về độ chính xác và tối ưu thời gian xử lý so với các nghiên cứu trước.
Hệ thống web hoàn chỉnh không chỉ chứng minh tính khả thi về mặt kỹ thuật mà còn mở ra tiềm năng thương mại hóa mạnh mẽ, đóng vai trò cầu nối dữ liệu thông minh giữa người tiêu dùng và các doanh nghiệp bán lẻ công nghệ tại Việt Nam.