Thảo luận về các ứng dụng quan trọng của NLP: Tập trung vào các ứng dụng quan trọng như xử lý ngôn ngữ trong văn bản và âm thanh, nhận diện giọng nói, dịch máy và tổng hợp giọng nói, vớ
Trang 1ĐẠI HỌC BÁCH KHOA HÀ NỘI TRƯỜNG CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
─────── * ───────
BÀI TẬP LỚN
HỌC PHẦN: Technical Writing and Presentation
(Mã học phần: IT2030)
Đề tài: Ứng dụng của Xử lý ngôn ngữ tự nhiên
Giảng viên hướng dẫn: PGS.TS Nguyễn Khanh Văn
Lớp: 149447
Nhóm: 6
Sinh viên thực hiện: Nguyễn Chí Hiếu - 20224982
Hoàng Trần Minh Đức - 20224834
Trang 2Lời mở đầu
Trước sự gia tăng vượt bậc của thông tin dưới dạng văn bản và âm thanh trong thế giới kỹ thuật số hiện nay, việc phân tích và xử lý dữ liệu ngôn ngữ tự nhiên đang đặt ra những thách thức đáng
kể Xử lý ngôn ngữ tự nhiên (NLP) đã trở thành một công cụ cốt lõi giúp máy tính hiểu và tương tác với ngôn ngữ con người một cách tự nhiên và hiệu quả Sự tiến bộ của các mô hình học sâu và kỹ thuật
xử lý dữ liệu lớn đã mở ra không chỉ việc áp dụng NLP trong xử lý văn bản mà còn trong xử lý âm thanh, mang đến những tiến bộ đáng kể trong nhiều lĩnh vực như dịch vụ khách hàng, y tế, giáo dục
và thương mại điện tử
Bài báo cáo sẽ cung cấp thông tin về quá trình hình thành, khái niệm và các nhành nghiên cứu
cơ bản của NLP, đồng thời tập trung vào những ứng dụng nổi bật của lĩnh vực này
Mục tiêu của Báo cáo:
1 Tìm hiểu quá trình hình thành và phát triển của NLP
2 Cung cấp thông tin nền tảng về NLP: Giới thiệu các khái niệm cơ bản và tiên tiến trong
lĩnh vực xử lý ngôn ngữ tự nhiên, từ các phương pháp truyền thống đến các mô hình học sâu hiện đại
3 Thảo luận về các ứng dụng quan trọng của NLP: Tập trung vào các ứng dụng quan trọng
như xử lý ngôn ngữ trong văn bản và âm thanh, nhận diện giọng nói, dịch máy và tổng hợp giọng nói, với các ví dụ minh họa và điểm mạnh của mỗi ứng dụng
Hy vọng bài báo cáo sẽ mang lại cái nhìn sâu sắc và chi tiết về Xử lý Ngôn ngữ Tự nhiên, đồng thời cung cấp các thông tin hữu ích cho quý độc giả quan tâm đến lĩnh vực này
Trang 3Mục lục
1.Giới thiệu 4
Lịch sử hình thành 4
Khái niệm 4
Các thành phần của xử lý ngôn ngữ tự nhiên ( NLU và NLG) 5
Vai trò của NLP 5
2 Các bước xử lý ngôn ngữ tự nhiên trong văn bản 7
Các bước xử lý dữ liệu: 7
Các bước trong phát triển thuật toán: 10
3.Một số ứng dụng quan trọng của NLP 14
Ứng dụng NLP trong thiết kế chatbot 14
Ứng dụng của NLP trong nhận dạng giọng nói 16
4 Kết luận 18
5 Tài liệu tham khảo 19
6 Phân công thực hiện 19
Trang 41.Giới thiệu
- Lịch sử hình thành
Lịch sử của ngành ngôn ngữ học bắt đầu vào những năm 1900 bởi giáo sư ngôn ngữ học người Thụy
Sĩ - Ferdinand de Saussure Từ năm 1906 đến năm 1911, ông đã cho ra đời cuốn giáo trình Ngôn ngữ
học Đại cương (tiếng Pháp: Cours de linguistique génerale) tại Đại học Genève và đặt nền móng cho
các công trình nghiên cứu về ngôn ngữ đương thời Trong giáo trình, giáo sư Saussure đã nhìn nhận ngôn ngữ như một hệ thống, trong đó âm thanh biểu thị một khái niệm và khái niệm đó thay đổi ý nghĩa theo bối cảnh Ý nghĩa được tạo ra bên trong ngôn ngữ thông qua các mối liên hệ và sự khác biệt giữa các thành phần của nó
Signifier và Signified là hai khái niệm cốt lõi trong lý thuyết ngôn ngữ học của Saussure và được ông
sử dụng để giải thích về cơ chế hình thành ý nghĩa trong ngôn ngữ Trong đó, Signifier (cái biểu đạt)
là phần vật chất, vật lý của dấu hiệu ngôn ngữ, đại diện cho âm thanh, hình ảnh hoặc dạng hình thức bên ngoài của từ hoặc biểu tượng Signified (cái được biểu đạt) là khái niệm, ý tưởng hoặc nội dung trừu tượng mà signifier đang biểu thị, đại diện cho nghĩa của từ hoặc ý nghĩa mà con người gắn liền
với signifier [1][6] Ví dụ, signifier của từ “quả táo” có thể là hình dạng chữ viết và hình ảnh của quả
táo và signified của “quả táo” là khái niệm về một loại trái cây có vỏ màu đỏ, xanh hoặc vàng, thường
có hình cầu với nhiều hạt bên trong Theo Saussure, ông cho rằng ý nghĩa không phải là một thuộc tính tự nhiên của signifier hay signified mà là kết quả của mối quan hệ tương tác giữa chúng
Có 2 đặc điểm quan trọng trong mối quan hệ của signifier và signified Thứ nhất, mối quan hệ giữa cái biểu đạt và cái được biểu đạt là tùy ý, không có một sự liên kết tự nhiên hay logic nào giữa âm thanh hoặc hình ảnh của từ và khái niệm mà nó biểu thị Thứ hai, cái biểu đạt có tính tuyến tính, nghĩa
là nó được biểu thị qua một chuỗi các âm thanh hoặc ký tự theo thứ tự nhất định trong không gian
hoặc thời gian [1][6] Ban đầu, có thể nghĩ đơn giản rằng dấu hiệu để nhận biết một sự vật, hiện tượng,
hình ảnh, âm thanh,… chỉ là từ ngữ Tuy nhiên, hình ảnh âm thanh hoặc từ ngữ tự nó không phải là dấu hiệu Nó chỉ trở thành dấu hiệu khi nó gợi lên một khái niệm Tương tự, dễ dàng nhầm lẫn rằng signified là đối tượng mà từ ngữ ám chỉ Tuy nhiên trong quan điểm của Saussure, signified không
phải là đối tượng mà là khái niệm hoặc ý nghĩa của từ ngữ [1]
Xuất phát từ nghiên cứu của Saussure làm cơ sở, Alan Turing đã đề xuất khái niệm về một "cỗ máy vạn năng" có khả năng hiểu và tạo ra ngôn ngữ của con người vào năm 1950 Đề xuất của ông về mô hình máy Turing là bước đầu tiên để định nghĩa rõ ràng về khả năng của máy tính trong việc thực hiện các thuật toán và xử lý dữ liệu, tuy nhiên đề xuất của ông chủ yếu dừng lại ở lĩnh vực lý thuyết Và
phải đến những năm 1960, những bước tiến nổi bật về NLP mới dần được xuất hiện [5]
Tiếp nối đề xuất của Turing, các nghiên cứu đầu tiên về dịch máy đã bắt đầu với Dự án Georgetown-IBM được thành lập vào năm 1954 nhằm nghiên cứu về phương pháp dịch máy bằng máy tính Trong cùng khoảng thời gian này, Noam Chomsky đưa ra các lý thuyết quan trọng về cú pháp và ngữ nghĩa học, đóng vai trò quan trọng trong việc xây dựng các mô hình NLP sau này
Từ những năm 1970, lĩnh vực NLP bắt đầu phát triển mạnh mẽ hơn, đặc biệt trong các ứng dụng dịch máy, phân tích ngôn ngữ tự nhiên và các hệ thống trả lời câu hỏi đơn giản Các mô hình ngôn ngữ thống kê cũng cùng được phát triển nhằm cải thiện khả năng xử lý ngôn ngữ tự nhiên bằng cách sử dụng dữ liệu lớn và các phương pháp thống kê
Từ những năm 1990 đến nay, sự phát triển của máy tính và công nghệ nói chung và sự ra đời của deep learning nói riêng đã tạo ra một cuộc cách mạng trong phát triển NLP Các mô hình deep learning như mạng nơ-ron hồi quy (RNNs), mạng nơ-ron dài ngắn (LSTMs) và đặc biệt là mạng nơ-ron biến thể chứa cơ chế chú ý (transformers) đã mang lại những tiến bộ đáng kể trong các ứng dụng như dịch máy, phân tích cảm xúc, sinh tổng hợp văn bản và hỗ trợ ra quyết định
Ngày nay, NLP đã trở thành một lĩnh vực rộng lớn và phát triển nhanh chóng với các ứng dụng như Google Translate, chatbot, phân tích cảm xúc trên mạng xã hội, tự động phát hiện tin giả, Các công
Trang 5cụ dịch máy như Google Translate giúp dịch văn bản và lời nói giữa nhiều ngôn ngữ một cách chính xác và nhanh chóng Trợ lý ảo như Siri, Alexa, và Google Assistant cũng sử dụng NLP để hiểu và phản hồi yêu cầu của người dùng Đặc biệt các mô hình tiên tiến như GPT đã mang lại những đột phá lớn với chatbot ChatGPT, ứng dụng có thể tương tác với người dùng theo cách sử dụng ngôn ngữ rất
tự nhiên và linh hoạt
Từ những ý tưởng ban đầu của Alan Turing, NLP đã trải qua một hành trình phát triển dài và phong phú, xuất phát từ những nghiên cứu cơ bản tiến đến trở thành các ứng dụng tiềm năng
- Khái niệm
Xử lý ngôn ngữ tự nhiên (NLP) là sự giao thoa của trí tuệ nhân tạo và ngôn ngữ học, bao gồm tất cả
những gì máy tính cần để hiểu và tạo ra ngôn ngữ tự nhiên [4] NLP sử dụng các ứng dụng từ nhiều
lĩnh vực khác nhau như khoa học máy tính, trí tuệ nhân tạo, ngôn ngữ học và khoa học dữ liệu để giúp máy tính hiểu ngôn ngữ con người ở cả dạng văn bản và lời nói Khác với ngôn ngữ học tính toán tập trung nhiều hơn vào các khía cạnh của ngôn ngữ, NLP chủ yếu nhấn mạnh việc sử dụng các kỹ thuật
học máy và học sâu để hoàn thành các nhiệm vụ như dịch thuật hoặc trả lời câu hỏi [2]
Nhiệm vụ chính của NLP là tập trung vào cải thiện tương tác giữa máy tính và con người thông qua ngôn ngữ đời thường Vai trò chính của NLP bao gồm một loạt các nhiệm vụ từ việc hiểu nghĩa của văn bản và lời nói đến việc tạo ra văn bản mới, dịch ngôn ngữ, tóm tắt văn bản, trả lời câu hỏi và nhận dạng ý kiến
Các thành phần của xử lý ngôn ngữ tự nhiên ( NLU và NLG)
Hiểu ngôn ngữ tự nhiên (NLU) và Tạo ngôn ngữ tự nhiên (NLG) là 2 thành phần con được
nghiên cứu của NLP, trong đó:
• NLU tập trung vào khả năng đọc hiểu của máy móc thông qua ngữ pháp và ngữ cảnh, cho phép nó xác định ý nghĩa dự định của một câu Bằng cách xác định mối quan hệ giữa các từ
và cụm từ trong văn bản, NLU giúp máy móc hiểu được ý nghĩa của các tài liệu khác nhau, tương tự như cách con người làm trong giao tiếp hàng ngày Ví dụ:
"Cô ấy đang ngồi đọc sách trên bàn."
"Bàn kế hoạch của chúng tôi đã được chuẩn bị kỹ lưỡng."
Trường hợp đầu tiên, từ "bàn" là danh từ, mô tả một đồ đạc để đặt đồ và người có thể ngồi hoặc đứng lên nó Trong ngữ cảnh này, "đọc sách trên bàn" chỉ ra vị trí cụ thể cô ấy đang ngồi
để đọc sách Nhưng trong trường hợp thứ hai, từ "bàn" là một phần của cụm từ "bàn kế
hoạch", trong đó nó là danh từ mô tả một tài liệu hoặc một bản kế hoạch được chuẩn bị hoặc thảo luận
• NLG tập trung vào việc tạo văn bản hoặc xây dựng văn bản bằng tiếng Anh hoặc các ngôn ngữ khác bằng máy móc và dựa trên tập dữ liệu nhất định Thay vì chỉ đơn thuần đọc hiểu, NLG cho phép máy tính tạo ra các câu chữ, đoạn văn, hoặc thậm chí là tóm tắt từ dữ liệu đầu vào Ban đầu, các hệ thống NLG phải sử dụng đến các mẫu cụ thể để tạo ra văn bản và dần được thay thế bởi hệ thống tiên tiến hơn có áp dụng chuỗi Markov ẩn, mạng nơ-ron hồi tiếp
và transformers vào khoảng thời gian sau đó
NLU và NLG luôn được thiết kế song hành để làm việc cùng nhau và thường được sử dụng kết hợp trong các ứng dụng yêu cầu xử lý ngôn ngữ tự nhiên, chẳng hạn như trợ lý ảo và chatbot dịch vụ khách hàng
Trang 6Vai trò của NLP
Xử lý ngôn ngữ tự nhiên cho phép máy tính hiểu, diễn giải và tương tác với ngôn ngữ bao gồm 2
nhánh lớn là văn bản và âm thanh [3] Trong đó:
• Xử lý văn bản: tập trung phát triển khả năng đọc, phân tích văn bản viết của máy tính, ứng
dụng vào trích xuất các thông tin quan trọng, tự động phân loại tài liệu vào các danh mục khác nhau, xác định tính chất biểu đạt trong văn bản, Và nếu kết hợp với Machine Learning
và Deep Learning thì máy tính sẽ có khả năng tạo ra văn bản để phục vụ mục đích khác nhau trong đa dạng các lĩnh vực
• Xử lý âm thanh: tập trung phát triển khả năng phân tích, tổng hợp, biến đổi tín hiệu âm
thanh và hiểu được ngôn ngữ nói để vận dụng vào nhận dạng, xác thực, chuyển đổi giọng nói thành văn bản hoặc ngược lại, Nâng cao hơn thì xử lý âm thanh có thể áp dụng vào xác định cảm xúc của người nói dựa trên giọng điệu, tốc độ nói và các yếu tố âm thanh khác, có thể vận dụng vào lĩnh vực hỗ trợ khách hàng hoặc phân tích tâm lý và cũng là cơ sở để xây dựng các trợ lý giọng nói như Siri, Google Assistant, Amazon Alexa,
Nhìn chung, NLP hướng đến việc phá vỡ rào cản ngôn ngữ giữa con người và máy tính, giúp con người giao tiếp với máy tính một cách tự nhiên và hiệu quả khiến cho công nghệ trở nên thông minh hơn và dễ tiếp cận hơn đối với người dùng, đồng thời cải thiện tính linh hoạt và chính xác trong khả năng hiểu và xử lý thông tin từ ngôn ngữ tự nhiên của máy tính
Trang 72 Các bước xử lý ngôn ngữ tự nhiên trong văn bản
Để giải quyết một bài toán NLP, thông thường sẽ có 2 quá trình: Xử lý dữ liệu và phát triển thuật toán.[7]
Xử lý dữ liệu bao gồm các công đoạn tiền xử lý các dữ liệu dạng text và cả dạng âm thanh, sau đó kết hợp việc tách từ và gán nhãn từ loại để sẵn sàng đưa vào quá trình phát triển thuật toán
Phát triển thuật toán là quá trình mà ta huấn luyện các model bằng dữ liệu đã được xử lý trước đó thể thực hiện các công việc liên quan Từ đó máy tính có thể hiểu ngôn ngữ mà thực hiện những điều chúng ta muốn
Dưới đây sẽ đi vào chi tiết hơn để hiểu rõ từng quá trình hoạt động của xử lý ngôn ngữ tự nhiên dạng văn bản
Các bước xử lý dữ liệu:
Bước đầu trong xử lý ngôn ngữ là Tokenization (tách từ) Đây là quá trình tách một cụm
từ, câu, đoạn văn, một hoặc nhiều văn bản thành các đơn vị nhỏ hơn như là từng từ, kí tự Mỗi đơn vị nhỏ này được gọi là Tokens Đây là một bước quan trọng trong quá trình tiền xử
lý văn bản Cho dù là trong bất cứ phương pháp xử lý ngôn ngữ tự nhiên dù là truyền thống hay các kỹ thuật nâng cao hơn thì đều phải có bước này.[8]
Ví dụ: “Hôm nay trời mưa” sau quá trình trên sẽ đưa thành 4 tokens là “Hôm”,
“nay”,”trời”,”mưa”
Sau khi đưa các đoạn văn bản thành các tokens chúng ta sẽ phải biến đổi các từ về
dạng gốc vì chúng ta chỉ cần hiểu nghĩa của văn bản thay vì phải quan tâm đến các biến thể
của từ bằng 2 phương pháp chính sau:
- Stemming: là kỹ thuật dùng để biến đổi 1 từ về dạng gốc (được gọi là stem hoặc root
form) bằng cách cực kỳ đơn giản là loại bỏ 1 số ký tự tiền tố và hậu tố mà nó nghĩ rằng là biến thể của từ.[8]
Ví dụ: buffered, buffered, buffers chỉ khác nhau là ở những ký tự cuối cùng, bằng cách bỏ đi các hậu tố -ed, -ing hoặc -s, chúng ta sẽ được từ nguyên gốc là buffer
Bởi vì nguyên tắc hoạt động của stemmer rất là đơn giản như vậy cho nên tốc độ xử lý của nó rất là nhanh, tuy nhiên kết quả đôi khi không được như chúng ta mong muốn Có 2 lỗi thường gặp đó là over stemming (cắt quá mức) và under stemming (cắt chưa đủ)
Ví dụ dưới đây là một đoạn code sử dụng stemming để tìm nghĩa gốc của từ
Trang 8Kết quả thu được cho thấy 2 từ ‘university’ và ‘universe’ đều trở thành ‘univers’ trong khi đó 2 từ này hoàn toàn khác nghĩa nhau và từ ‘happily’ trở thành từ ‘happili’ là một
từ không tồn tại
Vì vậy chúng ta sẽ cần phương pháp chính xác hơn để có thể đưa từng từ về dạng gốc của
nó đó là lemmatization
- Lemmatization: khác với cách cắt bỏ các tiền tố, hậu tố để tìm dạng gốc thì lemmatization
sẽ xử lý thông tin dựa theo một bộ từ điển được cấp sẵn từ đó bộ xử lý có thể tìm lại dạng gốc của từ trong đó nên từ được đa ra sẽ không bao giờ bị rơi vào tình trạng vô nghĩa hoặc sai nghĩa Tuy nhiên tốc độ xử lý sẽ diễn ra tương đối chậm vì phải thực thi tra cứu từ trong
cơ sở dữ liệu.[8]
Ví dụ với cùng một bộ từ đã sử dụng như trên phương pháp stemming
Kết quả đưa ra hoàn toàn chuẩn xác và khác so với phương pháp Stemming
Tuy nhiên hai kỹ thuật trên thường không phổ biến trong việc xử lý Tiếng Việt do ngôn ngữ của chúng ta thường không có những biến thể của từ
- Part of Speech - POS tagging: là thao tác gán nhãn thẻ từ loại tương ứng với mỗi tokens
tùy thuộc theo định nghĩa và ngữ cảnh (danh từ, tính từ, động từ, trạng từ,…) Vì một từ có thể có nhiều ý nghĩa khác nhau tùy vào ngữ cảnh lúc đó, chẳng hạn như từ “đá” trong tiếng việt có thể là danh từ hoặc động từ tùy thuộc vào câu muốn nói theo ý nào Thế nên gán nhãn làm cho việc phân tích văn bản có thể hiểu được cấu trúc ngữ pháp và giải nghĩa câu văn tốt hơn Thao tác này có thể giúp chúng ta trong một số tác vụ như sửa lỗi chính tả, dự đoán mẫu câu, tìm kiếm từ khóa,…[8]
Tuy nhiên đôi khi việc gán nhãn có thể ra kết quả không theo ý nghĩa do nhiều lúc ngôn ngữ chúng ta sử dụng có thể sẽ được biến đổi theo cách hiểu chứ không theo từ điển
Ví dụ trong trường hợp dưới đây thì chúng ta sử dụng từ “Google” như một động từ với hàm
ý là lên mạng tra cứu nhưng đối với máy thì từ này là tên của một công ty nên nó sẽ được gán nhãn là một danh từ
Trang 9Dưới đây là tập nhãn gán thường được sử dụng trong xử lý ngôn ngữ tự nhiên Tiếng Anh [9]:
Sau khi các dữ liệu đã được xử lý qua thì dữ liệu đã sẵn sàng được đưa vào để sử dụng trong các mô hình ngôn ngữ để có thể phát triển nhằm thực hiện được yêu cầu của các nhà phát triển
Trang 10Các bước trong phát triển thuật toán:
- Name Entity Recognition – NER: là thao tác phân biệt, phân loại các từ, cụm từ có trong
đoạn văn vào các nhóm có sẵn như tên người, tên địa danh, tên tổ chức, sản phẩm, thời gian, phần trăm,… NER giúp cho thao tác gán nhãn từ loại trở nên rõ ràng và chính xác hơn Kỹ thuật này có ý nghĩa lớn trong việc trích xuất văn bản, xây dựng biểu đồ, trả lời câu hỏi, dịch máy,…Ngoài ra, NER nếu được huấn luyện để nhận dạng được nhiều loại tài liệu khác nhau như hóa đơn, biên lai, hộ chiếu,…
Cách thức hoạt động của NER [10]:
● Hệ thống NER sẽ phân tích văn bản đầu vào để xác định và định vị các thực thể
● Sau đó hệ thống sẽ phân tách ranh giới câu bằng cách phân tích quy tắc viết hoa Việc tạo ranh giới trong câu giúp bộ xử lý dễ hiểu ngữ cảnh của câu từ đó phân tích
ra cấu trúc và nghĩa của văn bản
● Khi đã có các thể nhận biết được các thực thể thì hệ thống NER sẽ bắt đầu phân biệt vào các mẫu có sẵn trong cơ sở dữ liệu bằng cách áp dụng các thuật toán học máy, bao gồm học có giám sát để phân tích các mẫu dữ liệu có gán nhãn Bộ dữ liệu bao gồm các ví dụ về thực thể có chú thích đi kèm nhằm hướng dẫn mô hình để nhận dạng được các loại dữ liệu tương đương dù chưa gặp qua bao giờ
● Sau nhiều trải qua huấn luyện như vậy mô hình sẽ được tinh chỉnh giúp nâng cao sự hiểu biết về cách đọc ngữ cảnh, cấu trúc câu và nhận dạng thực thể theo thời gian Khả năng thích ứng của mô hình với các nguồn dữ liệu mới càng cao thì mô hình sẽ
xử lý được các biến thể ngôn ngữ, ngữ cảnh, nhận dạng thực thể càng hiệu quả hơn
Ví dụ: Đoạn code dưới đây kiểm tra thử một mô hình NER có sẵn và chưa qua huấn luyện
Có thể thấy kết quả phần “Google Translate” và “over 100 billion” không được đúng , điều này xảy ra là do NER được chạy theo một thuật toán nhất định nào đó khiến cho nó nhận định đây là “ORG” và “MONEY” trong khi đúng ra phải là “PRODUCT” và
“CARDINAL” Tuy nhiên điều này hoàn toàn có thể khắc phục được do đây là mô hình chưa qua huấn luyện
Dưới đây là một số nhãn thường được sử dụng trong NER:
CARDINAL: Nhãn này được sử dụng cho các số đếm, bao gồm cả số lượng và thứ tự (ví dụ: một, hai, ba, thứ nhất, thứ hai, thứ ba)