Máy học hay machine learning là một lĩnh vực của trí tuệ nhân tạo liên quan đến việc nghiên cứu và xây dựng các kĩ thuật cho phép các hệ thống "học" tự động từ dữ liệu để giải quyết nhữn
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
ĐỂ DỰ ĐOÁN ĐÁNH GIÁ CỦA SẢN PHẨM
Giảng viên hướng dẫn:
Nguyễn Hồng Thủy
Sinh viên thực hiện:
Nguyễn Xuân Cường- 17520308 Nguyễn Tiến Hoàng – 17520515
TP HỒ CHÍ MINH, 2022
Trang 2ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
ĐỂ DỰ ĐOÁN ĐÁNH GIÁ CỦA SẢN PHẨM
Giảng viên hướng dẫn:
Nguyễn Hồng Thủy
Sinh viên thực hiện:
Nguyễn Xuân Cường- 17520308 Nguyễn Tiến Hoàng – 17520515
TP HỒ CHÍ MINH, 2022
Trang 3ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC
CÔNG NGHỆ THÔNG TIN
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc Lập - Tự Do - Hạnh Phúc
TP HCM, ngày tháng năm 2022
NHẬN XÉT ĐỒ ÁN 2 (CỦA CÁN BỘ HƯỚNG DẪN)
Tên đồ án:
Tìm hiểu Selenium để lấy dữ liệu từ trang web và sử dụng máy học để dự đoán đánh
giá của sản phẩm
Nhóm sinh viên thực hiện: Cán bộ hướng dẫn:
NGUYỄN TIẾN HOÀNG 17520515
Đánh giá đồ án:
1 Về cuốn báo cáo:
Một số nhận xét về hình thức cuốn báo cáo:
Trang 4- Điểm từng sinh viên:
NGUYỄN XUÂN CƯỜNG: ……… /10
NGUYỄN TIẾN HOÀNG: ……… /10
Người nhận xét
(Ký và ghi rõ họ tên)
Nguyễn Hồng Thủy
Trang 5LỜI CẢM ƠN
Để hoàn thành đồ án này, chúng em xin gửi lời cảm ơn chân thành đến:
Ban Giám hiệu trường Đại học Công nghệ Thông tin – ĐHQG TP.HCM vì đã tạo điều kiện về cơ sở vật chất với hệ thống thư viện hiện đại, đa dạng các loại sách, tài liệu thuận lợi cho việc tìm kiếm, nghiên cứu thông tin
Chúng em xin gửi lời cảm ơn chân thành đến cô Nguyễn Hồng Thủy đã tận tình giúp
đỡ, định hướng cách tư duy và cách làm việc khoa học Đó là những góp ý hết sức quý báu không chỉ trong quá trình thực hiện đồ án này mà còn là hành trang tiếp bước cho chúng em trong quá trình học tập và lập nghiệp sau này
Và cuối cùng, chúng em xin gửi lời cảm ơn đến gia đình, tất cả thầy cô trong khoa, bạn
bè, tập thể lớp KTPM2017 là những người luôn sẵn sàng sẻ chia và giúp đỡ trong học tập và cuộc sống Mong rằng, chúng ta sẽ mãi mãi gắn bó với nhau
Trong quá trình làm đồ án này chúng em không tránh khỏi được những sai sót, chúng
em kính mong nhận được sự chỉ dẫn và góp ý của quý thầy cô để đồ án được hoàn thiện hơn
Chúng em xin chân thành cảm ơn Xin chúc những điều tốt đẹp nhất sẽ luôn đồng hành cùng mọi người
Thành phố Hồ Chí Minh, … tháng … năm 2022
Sinh viên
NGUYỄN XUÂN CƯỜNG NGUYỄN TIẾN HOÀNG
Trang 6ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC
CÔNG NGHỆ THÔNG TIN
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc Lập - Tự Do - Hạnh Phúc
TP HCM, ngày… tháng … năm 2022
ĐỀ CƯƠNG CHI TIẾT
TÊN ĐỀ TÀI: Tìm hiểu Selenium để lấy dữ liệu từ trang web và sử dụng máy
học để dự đoán đánh giá của sản phẩm
TÊN ĐỀ TÀI (TIẾNG ANH):
Cán bộ hướng dẫn: Nguyễn Hồng Thủy
Thời gian thực hiện: Từ ngày 05/09/2022 đến ngày 28/12/2022
Sinh viên thực hiện:
Nguyễn Xuân Cường – 17520308
Nguyễn Tiến Hoàng – 17520515
Nội dung đề tài
I Lý do chọn đề tài:
Selenium là công cụ tự động hóa trình duyệt web ban đầu được thiết kế để tự
động hóa các ứng dụng web cho mục đích thử nghiệm (testing) Nó hiện được
sử dụng cho nhiều ứng dụng khác như tự động hóa các tác vụ quản trị dựa trên
web, tương tác với các nền tảng không cung cấp API, cũng như để thu thập
Trang 7thông tin web (web crawling) Với Selenium, chúng ta có thể tự động hóa quá trình sử dung trình duyệt giống người dùng bình thường trên browser Từ việc truy cập vào trang chủ, next page, submit form, click button, link đều được tiến hành một cách tự động
Máy học hay machine learning là một lĩnh vực của trí tuệ nhân tạo liên quan đến việc nghiên cứu và xây dựng các kĩ thuật cho phép các hệ thống "học" tự động từ dữ liệu để giải quyết những vấn đề cụ thể Tuy nhiên với những người chưa tiếp xúc với máy học sẽ cảm thấy máy học là một lĩnh vực khó hiểu, khó học, khó tiếp cận Trong khi đó máy học là một lĩnh vực chiếm lĩnh thế giới công nghệ trong hiện tại và tương lai
Chính vì đó chúng em quyết định chọn đề tài này để hiểu thêm về Selenium, cách lấy và xử lý dữ liệu từ trang web bằng Selenium và ứng dụng máy học vào việc thể hiện kết quả đạt được
Tình trạng hiện nay:
- Hệ thống đánh giá sản phẩm bằng số sao có nhiều bất cập
- Người tiêu dùng có nhu cầu mua hàng khó có thể xác định chất lượng sản phẩm chỉ dựa vào số sao và các bình luận hàng đầu
⇒ Vì những lý do đó nhóm quyết định xây dựng một mô hình xử lý bình luận sản phẩm trên các trang thương mại điện tử
II Mục tiêu: bao gồm 2 mục tiêu chính:
1 Tìm hiểu về Selenium:
- Tìm hiểu về cách lấy dữ liệu từ trang web với Selenium
- Dùng Selenium để lấy dữ liệu từ các trang thương mại điện tử
2 Tìm hiểu về máy học
Trang 8- Tìm hiểu về python và một số thư viện cần thiết
- Tìm hiểu về xử lý ngôn ngữ tự nhiên
- Tìm hiểu cách tạo ra một mô hình hình máy học
III Đối tượng sử dụng:
- Người dân có nhu cầu tham khảo đánh giá sản phẩm
IV Phương pháp thực hiện:
Phương pháp làm việc:
- Làm việc nhóm 2 thành viên thông qua phương thức online dưới sự hướng dẫn của giảng viên hướng dẫn
Phương pháp nghiên cứu:
- Nguyên cứ tài liệu Selenium, machine learning và các công nghệ liên quan
- Thu thập dữ liệu về sản phẩm cụ thể trên các trang web
Phương pháp công nghệ:
- Tìm hiểu cách thức xây dựng một mô hình máy học
- Xây dựng ứng dụng Web để thể hiện kết quả đạt được
V Nền tảng công nghệ:
- Frontend: HTML, CSS, Javascript
- Backend: Django
- Database: MySQL
VI Kết quả mong đợi:
- Dữ liệu thu thập có độ chính xác cao, đến từ nhiều nguồn
Trang 9- Kết quả đánh giá cố độ chính xác cao
- Trang web thể hiện được kết quả nghiên cứu đầy đủ, trực quan
VII Hướng phát triển của đề tài:
- Tăng độ chính xác của mô hình
VIII Kế hoạch làm việc:
Thời gian thực hiện từ ngày 05/09/2022 đến ngày 28/12/2022
Nhóm chia thành 3 giai đoạn cụ thể:
Giai đoạn 1: Tìm hiểu về Selenium và lấy dữ liệu từ trang web
Thời gian: 05/09/2022 -09/10/2022
1 Tìm hiểu về Selenium, webdriver
2 Dùng Selenium để xấy dựng một script crawl bình luận của sản phẩm từ các trang thương mại điện tử
Giai đoạn 2: Tìm hiểu về xử lý ngôn ngữ tự nhiên và xây dựng mô hình
Thời gian: 09/10/2022 - 15/11/2022
1 Tìm hiểu về python và các thư viện cần thiết
2 Tìm hiểu về quá trình xử lý ngôn ngữ tự nhiên
3 Tìm hiểu về một số mô hình máy học
4 Xây dựng mô hình xử lý đánh giá sản phẩm
Giai đoạn 3: Xây dựng website thể hiện kết quả nghiên cứu
Thời gian: 15/11/2021-28/12/2022
Trang 10Xác nhận của CBHD
(Ký tên và ghi rõ họ tên)
TP HCM, ngày tháng năm 2022
Trang 11MỤC LỤC
MỤC LỤC 11
DANH MỤC HÌNH ẢNH 13
1 Lý do chọn đề tài 14
2 Mục tiêu của đề tài 14
3 Phương pháp thực hiện 15
4 Ý nghĩa và kết quả hướng tới 15
a Về mặt sản phẩm 15
b Về mặt tài liệu 15
Chương 2: TÌM HIỂU VỀ SELENIUM 16
1 Tổng quát về Selenium 16
a Selenium là gì 16
b Selenium IDE 17
c Selenium RC 17
d WebDriver 17
e Selenium Grid 17
2 Các bước cơ bản để crawl data từ web bằng Selenium 18
Chương 3: TÌM HIỂU VỀ MÁY HỌC VÀ XỬ LÝ NGÔN NGỮ TỰ NHIÊN 18 1 Tổng quát về máy học 18
a Máy học là gì 18
b Các bước thực hiện máy học 18
c Phân loại 19
d Một số khái niệm 19
2 Tổng quát về xử lý ngôn ngữ tự nhiên 21
a Giới thiệu về xử lý ngôn ngữ tự nhiên (NLP) 21
b Các nhiệm vụ chính trong xử lý ngôn ngữ tự nhiên 22
c Một số ứng dụng của xử lý ngôn ngữ tự nhiên 23
Chương 4: MỘT SỐ MODEL XỬ LÝ NGÔN NGỮ TỤ NHIÊN PHỔ BIẾN 25 1 Support Vector Machine (SVM) 25
Trang 12a SVM là gì 25
b SVM làm việc như thế nào 26
c Ưu điểm của SVM 31
d Nhược điểm của SVM 31
2 Convolutional Neural Network (CNN) 31
a CNN là gì 31
b Các lớp cơ bản của mạng CNN 32
c Cấu trúc của mạng CNN 33
d Ưu điểm của CNN 35
e Nhược điểm của CNN 35
3 Bidirectional Encoder Representations from Transformers (BERT) 36
a BERT là gì 36
b Nền tảng của BERT 36
c Phương pháp Fine-tuning BERT 38
d Ưu điểm của BERT 39
e Nhược điểm của BERT 39
Chương 5: SỬ DỤNG SELENIUM ĐỂ LẤY DỮ LIỆU TỪ TRANG WEB 40
Chương 6: SỬ DỤNG MÁY HỌC ĐỂ ĐÁNH GIÁ SẮC THÁI CỦA BÌNH LUẬN 42 1 Xử lý dữ liệu 42
2 Dùng dữ liệu để train một số mô hình nhằm giải bài toán Sentiment analysis 43
Chương 7: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 44
1 Kết quả đạt được 44
2 Ưu điểm 44
3 Khuyết điểm 44
4 Hướng phát triển 44
Trang 13DANH MỤC HÌNH ẢNH
Hình 1 Các thành phần của Selenium 16
Hình 2 SVM trong không gian hai chiều và ba chiều 25
Hình 3 Siêu phẳng tối ưu có lề cực đại 26
Hình 4 Cách chọn siêu phẳng tối ưu 27
Hình 5 Trường hợp dữ liệu có nhiều điểm gây nhiễu 29
Hình 6 Trường hợp dữ liệu không tuyến tính 30
Hình 7 Minh họa CNN 32
Hình 8 CNN trong xử lý ngôn ngữ tự nhiên 33
Hình 9 Cấu trúc của mạng CNN 34
Hình 10 Mô hình Encoder 37
Hình 11 Hàm khởi tạo và cấu hình WebDriver 40
Hình 12 Lấy link sản phẩm 40
Hình 13 Lưu bình luận và số sao 40
Hình 14 Lấy dữ liệu đánh giá và số sao cho từng sản phẩm 41
Hình 15 Bộ dữ liệu chưa xử lý 42
Hình 16 Thông tin Dataframe 42
Hình 17 Bộ dữ liệu sau xử lý 43
Hình 18 Tách bộ dữ liệu thành train set và test set 43
Trang 14Chương 1: TÌM HIỂU CHUNG
- Machine learning gây nên cơn sốt công nghệ trên toàn thế giới trong vài năm nay Trong giới học thuật, mỗi năm có hàng ngàn bài báo khoa học về đề tài này Trong giới công nghiệp, từ các công ty lớn như Google, Facebook, Microsoft đến các công ty khởi nghiệp đều đầu tư vào machine learning Hàng loạt các ứng dụng sử dụng machine learning ra đời trên mọi lĩnh vực của cuộc sống, từ khoa học máy tính đến những ngành ít liên quan hơn như vật lý, hóa học, y học, chính trị
- Tình trạng hiện nay:
+ Hệ thống đánh giá sản phẩm bằng số sao có nhiều bất cập
+ Người tiêu dùng có nhu cầu mua hàng khó có thể xác định chất lượng sản phẩm chỉ dựa vào số sao và các bình luận hàng đầu
⇒ Vì những lý do đó nhóm quyết định xây dựng một mô hình xử lý bình luận sản phẩm trên các trang thương mại điện tử
2 Mục tiêu của đề tài
- Tìm hiểu các kiến thức cơ bản về Selenium
- Dùng Selenium để crawl dữ liệu từ trang web
- Tìm hiểu các kiến thức cơ bản về máy học và một số các mô hình phổ biến
- Xây dựng mô hình máy học có thể ứng dụng trong thực tế
Trang 15- Xây dựng trang web thể hiện hết quả nghiên cứu
3 Phương pháp thực hiện
- Tìm hiểu về Selenium và các thư viện hỗ trợ
- Tìm hiểu về một số trang thương mại điên tử nổi tiếng, dùng Selenium để crawl
dữ liệu bình luận từ các trang web đó
- Tìm hiểu về một số mô hình phổ biến trong xử lý ngôn ngữ tự nhiên
- Xử lý dữ liệu đã crawl được và dùng chúng để xây dựng một số mô hình xử lý ngôn ngữ tự nhiên
- Xây dựng trang web thể hiện kết quả đạt được và đánh giá mô hình
4 Ý nghĩa và kết quả hướng tới
a Về mặt sản phẩm
- Dữ liệu đầy đủ, phong phú, chính xác
- Mô hình máy học có độ chính xác cao
- Trang web thể hiện rõ ràng, trực quan kết quả đạt được
b Về mặt tài liệu
- Bản báo cáo của đề tài sẽ trở thành tài liệu nghiên cứu, tham khảo nhanh, dễ hiểu cho các bạn quan tâm đến Selenium cũng như máy học hoặc trí tuệ nhân tạo
Trang 16Chương 2: TÌM HIỂU VỀ SELENIUM
- Bộ công cụ Selenium gồm Selenium IDE, Selenium Remote Control (Selenium RC), WebDriver và Selenium Grid Hiện tại, Selenium RC và WebDriver đã được hợp nhất thành một framework duy nhất để tạo ra Selenium 2 Còn Selenium 1 chính là Selenium RC
Hình 1 Các thành phần của Selenium
Trang 17b Selenium IDE
- Là khuôn khổ đơn giản nhất trong bộ Selenium và là cách đơn giản nhất để học Đây là một plugin của trình duyệt mà bạn có thể cài đặt dễ dàng như các plugin khác Tuy nhiên, vì tính đơn giản của nó, Selenium IDE chỉ nên được sử dụng như là một công cụ tạo mẫu Nếu bạn muốn tạo các trường hợp thử nghiệm nâng cao hơn, bạn sẽ cần phải sử dụng Selenium RC hoặc WebDriver
c Selenium RC
- Selenium RC là framework thử nghiệm hàng đầu của toàn bộ dự án Selenium trong một thời gian dài Đây là công cụ kiểm tra web tự động đầu tiên cho phép người dùng sử dụng ngôn ngữ lập trình mà họ thích Tính đến phiên bản 2.25.0,
RC có thể hỗ trợ các ngôn ngữ lập trình sau: Java, C#, PHP, Python, Perl, Ruby
d WebDriver
- WebDriver chứng tỏ bản thân nó tốt hơn cả Selenium IDE và Selenium RC về nhiều mặt Nó thực hiện tiếp cận hiện đại và ổn định hơn trong tự động hoá các hành động của trình duyệt WebDriver, không giống như Selenium RC, không phụ thuộc vào JavaScript cho Tự động hóa Nó điều khiển trình duyệt bằng cách liên lạc trực tiếp với nó Các ngôn ngữ được hỗ trợ giống với Selenium
RC
e Selenium Grid
- Selenium Grid là một công cụ được sử dụng cùng với Selenium RC để chạy thử nghiệm song song trên các máy khác nhau và các trình duyệt khác nhau cùng một lúc Thực hiện song song có nghĩa là chạy nhiều kiểm thử cùng một lúc Tính năng:
+ Cho phép chạy đồng thời các thử nghiệm trong nhiều trình duyệt và môi trường
+ Tiết kiệm thời gian to lớn
Trang 18+ Sử dụng khái niệm hub-and-nodes Hub hoạt động như một nguồn chính của Selenium lệnh cho mỗi nút kết nối với nó
2 Các bước cơ bản để crawl data từ web bằng Selenium
- Bước 1: cài đặt Selenium và driver cho trình duyệt cần sử dụng
- Bước 2: import các thư viện cần thiết và thêm một số tùy chọn cho trình duyệt, sau đó khởi tạo đối tượng
- Bước 3: tạo request đến trang web cần lấy dữ liệu và đợi response từ trang Bản chất Javascript là không đồng bộ, vì vậy một số phần tử có thể không được tải đầy đủ và hiển thị ngay lập tức Trong thực tế, nên thêm một số thời gian trễ trước khi nhận được phản hồi
- Bước 4: tương tác với dữ liệu Selenium cung cấp một số cách để truy cập các phần tử trên trang Các phương pháp thường được sử dụng là:
+ Elements by id: cách này bạn sẽ cần kiểm tra mã nguồn và tìm id của phần
tự động từ dữ liệu để giải quyết những vấn đề cụ thể
b Các bước thực hiện máy học
- Thu thập dữ liệu
- Chuẩn bị dữ liệu
Trang 19- Huấn luyện mô hình
+ Classification (Phân loại)
+ Regression (Hồi Quy)
- Unsupervised Learning (Học không giám sát)
+ Clustering (Phân nhóm)
+ Association (kết hợp)
- Semi-Supervised Learning (Học bán giám sát): Là các bài toán khi chúng ta có một lượng lớn dữ liệu X nhưng chỉ một phần trong chúng được gán nhãn
- Reinforcement Learning (Học củng cố): Là các bài toán giúp cho một hệ thống
tự động xác định hành vi dựa trên hoàn cảnh để đạt được lợi ích cao nhất
d Một số khái niệm
- Overfitting
Mô hình rất hợp lý, rất khớp với tập huấn luyện nhưng khi đem ra dự đoán với
dữ liệu mới thì lại không phù hợp Nguyên nhân có thể do ta chưa đủ dữ liệu để đánh giá hoặc do mô hình của ta quá phức tạp Mô hình bị quá phức tạp khi mà
mô hình của ta sử dụng cả những nhiễu lớn trong tập dữ liệu để học, dẫn tới mất tính tổng quát của mô hình
- Underfitting
Trang 20Mô hình chưa được chưa phù hợp với tập dữ liệu huấn luyện và cả các mẫu mới khi dự đoán Nguyên nhân có thể là do mô hình chưa đủ độ phức tạp cần thiết để bao quát được tập dữ liệu
- Train/Test/Val set
Hầu hết các mô hình machine learning đều yêu cầu việc phân chia dataset thành các tập nhỏ hơn
+ Train set: là một tập các cặp input và output, có kích thước lớn, được dùng
để training trong quá trình huấn luyện máy học
+ Test set: là tập các giá trị input và được dùng để kiểm thử độ chính xác của những mô hình máy học sau khi được huấn luyện
+ Val set (validation set): được tách từ train set để đánh giá độc lập hiệu suất của mô hình và kiểm tra các hiện tượng overfitting và underfitting Mục đích của train set là huấn luyện mô hình nên tập train cần chiếm tỷ lệ lớn
để giúp mô hình học bao quát được các trường hợp của dữ liệu Val set là tập dữ liệu sử dụng để đánh giá lại mô hình xem có xảy ra các hiện tượng overfitting và underfitting hay không? Những hiện tượng này cần được khắc phục nhằm giúp
mô hình dự báo tốt hơn trên dữ liệu thực tế
- Loss function
Loss function trả về một số thực không âm thể hiện sự chênh lệch giữa hai đại lượng: y' (label được dự đoán) và y (label đúng) Loss function giống như một hình thức để bắt model đóng phạt mỗi lần nó dự đoán sai, và số mức phạt tỉ lệ thuận với độ trầm trọng của sai sót Trong mọi bài toán supervised learning, mục tiêu của ta luôn bao gồm giảm thiểu tổng mức phạt phải đóng Trong trường hợp
lý tưởng loss function sẽ trả về giá trị cực tiểu bằng 0
- Bagging
Xây dựng một lượng lớn các model (thường là cùng loại) trên những subsamples khác nhau từ tập training dataset (random sample trong 1 dataset để tạo 1 dataset
Trang 21mới) Những model này sẽ được train độc lập và song song với nhau nhưng đầu
ra của chúng sẽ được trung bình cộng để cho ra kết quả cuối cùng
- Boosting
Xây dựng một lượng lớn các model (thường là cùng loại) Mỗi model sau sẽ học cách sửa những errors của model trước (dữ liệu mà model trước dự đoán sai) -> tạo thành một chuỗi các model mà model sau sẽ tốt hơn model trước bởi trọng
số được update qua mỗi model
- Stacking
Xây dựng một số model (thường là khác loại) và một meta model (supervisor model), train những model này độc lập, sau đó meta model sẽ học cách kết hợp kết quả dự báo của một số mô hình một cách tốt nhất
2 Tổng quát về xử lý ngôn ngữ tự nhiên
a Giới thiệu về xử lý ngôn ngữ tự nhiên (NLP)
- Xử lý ngôn ngữ tự nhiên là một nhánh của Trí tuệ nhân tạo, tập trung vào việc nghiên cứu sự tương tác giữa máy tính và ngôn ngữ tự nhiên của con người, dưới dạng tiếng nói (speech) hoặc văn bản (text) Mục tiêu của lĩnh vực này là giúp máy tính hiểu và thực hiện hiệu quả những nhiệm vụ liên quan đến ngôn ngữ của con người như: tương tác giữa người và máy, cải thiện hiệu quả giao tiếp giữa con người với con người, hoặc đơn giản là nâng cao hiệu quả xử lý văn bản và lời nói
- Xử lý ngôn ngữ tự nhiên có thể được chia ra thành hai nhánh lớn, không hoàn toàn độc lập, bao gồm xử lý tiếng nói (speech processing) và xử lý văn bản (text processing) Xử lý tiếng nói tập trung nghiên cứu, phát triển các thuật toán, chương trình máy tính xử lý ngôn ngữ của con người ở dạng tiếng nói (dữ liệu
âm thanh) Các ứng dụng quan trọng của xử lý tiếng nói bao gồm nhận dạng tiếng nói và tổng hợp tiếng nói Nếu như nhận dạng tiếng nói là chuyển ngôn ngữ từ dạng tiếng nói sang dạng văn bản thì ngược lại, tổng hợp tiếng nói chuyển ngôn ngữ từ dạng văn bản thành tiếng nói Xử lý văn bản tập trung vào phân tích
dữ liệu văn bản Các ứng dụng quan trọng của xử lý văn bản bao gồm tìm kiếm
Trang 22và truy xuất thông tin, dịch máy, tóm tắt văn bản tự động, hay kiểm lỗi chính tả
tự động Xử lý văn bản đôi khi được chia tiếp thành hai nhánh nhỏ hơn bao gồm hiểu văn bản và sinh văn bản Nếu như hiểu liên quan tới các bài toán phân tích văn bản thì sinh liên quan tới nhiệm vụ tạo ra văn bản mới như trong các ứng dụng về dịch máy hoặc tóm tắt văn bản tự động
b Các nhiệm vụ chính trong xử lý ngôn ngữ tự nhiên
- Phân tích hình vị: là sự nhận biết, phân tích, và miêu tả cấu trúc của hình vị trong một ngôn ngữ cho trước và các đơn vị ngôn ngữ khác, như từ gốc, biên từ, phụ
tố, từ loại, v.v Trong xử lý tiếng Việt, hai bài toán điển hình trong phần này là tách từ (word segmentation) và gán nhãn từ loại (part-of-speech tagging)
- Phân tích cú pháp: là quy trình phân tích một chuỗi các biểu tượng, ở dạng ngôn ngữ tự nhiên hoặc ngôn ngữ máy tính, tuân theo văn phạm hình thức Văn phạm hình thức thường dùng trong phân tích cú pháp của ngôn ngữ tự nhiên bao gồm Văn phạm phi ngữ cảnh (Context-free grammar – CFG), Văn phạm danh mục kết nối (Combinatory categorial grammar – CCG), và Văn phạm phụ thuộc (Dependency grammar – DG) Đầu vào của quá trình phân tích là một câu gồm một chuỗi từ và nhãn từ loại của chúng, và đầu ra là một cây phân tích thể hiện cấu trúc cú pháp của câu đó
- Phân tích ngữ nghĩa: là quá trình liên hệ cấu trúc ngữ nghĩa, từ cấp độ cụm từ, mệnh đề, câu và đoạn đến cấp độ toàn bài viết, với ý nghĩa độc lập của chúng Nói cách khác, việc này nhằm tìm ra ngữ nghĩa của đầu vào ngôn từ Phân tích ngữ nghĩa bao gồm hai mức độ: Ngữ nghĩa từ vựng biểu hiện các ý nghĩa của những từ thành phần, và phân biệt nghĩa của từ; Ngữ nghĩa thành phần liên quan đến cách thức các từ liên kết để hình thành những nghĩa rộng hơn
- Phân tích diễn ngôn: là phân tích văn bản có xét tới mối quan hệ giữa ngôn ngữ
và ngữ cảnh sử dụng (context-of-use) Phân tích diễn ngôn, do đó, được thực hiện ở mức độ đoạn văn hoặc toàn bộ văn bản thay vì chỉ phân tích riêng ở mức câu