Đặt vấn đề nghiên cứuGiới thiệu về đề tài Giới thiệu về xử lý ngôn ngữ tự nhiên Giới thiệu Một trong những mong muốn mãnh liệt, xuất hiện từ rất sớm của các nhà khoa học máy tính compute
Trang 1TR ƯỜ NG Đ I H C KINH TẾẾ QUỐẾC DÂN Ạ Ọ
Trang 2Mục lục
Đặt vấn đề nghiên cứu -2
Giới thiệu về đề tài -2
Giới thiệu về xử lý ngôn ngữ tự nhiên -2
Lịch sử phát triển xử lý ngôn ngữ tự nhiên -3
Tầm quan trọng của xử lý ngôn ngữ tự nhiên -3
Thách thức và khó khăn của NLP -3
Ứng dụng của NLP -4
Cơ sở lý thuyết và phương pháp luận -6
Đôi nét về học máy -6
Phương pháp luận -7
Các bước xử lý ngôn ngữ tự nhiên -7
So sánh Lemmatization và Stemming -13
Ứng dụng thử nghiệm -14
GIới thiệu -14
Ngôn ngữ cài đặt và ứng dụng -14
So sánh với các thư viện khác -14
Khái niệm sử dụng trong CoreNLP -15
Kiến trúc hệ thống -18
Sử dụng CoreNLP -20
Documents -22
Trang 3Đặt vấn đề nghiên cứu
Giới thiệu về đề tài
Giới thiệu về xử lý ngôn ngữ tự nhiên
Giới thiệu
Một trong những mong muốn mãnh liệt, xuất hiện từ rất sớm của các nhà khoa học máy tính (computer science) nói chung và trí tuệ nhân tạo nói riêng là xây dựng thành công các hệ thống, chương trình máy tính có khả năng giao tiếp với con người thông qua ngôn ngữ tự nhiên, tức ngôn ngữ chúng ta sử dụng hàng ngày thay vì các ngôn ngữ lập trình hay ngôn ngữ máy bậc thấp
Do đó ngay từ khi trí tuệ nhân tạo mới ra đời (năm 1956), các nhà nghiên cứu đã đặt xử lý ngôn ngữ tự nhiên là một trong hai nhiệm vụ trọng tâm của trí tuệ nhân tạo, bên cạnh việc phát triển các chương trình máy tính có khả năng chiến thắng con người trong các trò chơi trí tuệ đối kháng
Định nghĩa
Xử lý ngôn ngữ tự nhiên (Natural Language Processing – NLP) là một nhánh quan trọng của ngành trí tuệ nhân tạo, tập trung vào việc nghiên cứu tương tác giữa máy tính và ngôn ngữ tự nhiên của con người, với mục tiêu giúp máy tính có thể thực hiện những nhiệm vụ liên quan đến ngôn ngữ
NLP là lĩnh vực duy nhất kết hợp khoa học máy tính, khoa học dữ liệu và ngôn ngữ học cùng với nhau, cho phép máy tình hiểu và sử dụng ngôn ngữ của con người
Ngôn ngữ của con người được thể hiện trên từ ngữ là dữ liệu được biểu diễn dưới dạng phi cấu trúc Do vậy, để máy tính có thể hiểu và xử lý được ngônngữ của con người, chúng ta cần có quy trình được gọi là xử lý ngôn ngữ tự nhiên
Xử lý ngôn ngữ tự nhiên có thể được chia ra thành hai nhánh lớn: Xử lý tiếng nói (speech processing) và xử lý văn bản (text processing)
Trang 4Lịch sử phát triển xử lý ngôn ngữ tự nhiên
Xử lý ngôn ngữ tự nhiên ra đời từ những năm 40 của thế kỷ 20, trải qua các giai đoạn phát triển với nhiều phương pháp và mô hình xử lý khác nhau Có thể kể tới các phương pháp sử dụng ô-tô-mát và mô hình xác suất (những năm 50), các phương pháp dựa trên ký hiệu, các phương pháp ngẫu nhiên (những năm 70), các phương pháp sử dụng học máy (machine learning) truyền thống (những năm đầu thế kỷ 21), và đặc biệt là sự bùng nổ của học sâu (deep learning) trong thập kỷ vừa qua
Tầm quan trọng của xử lý ngôn ngữ tự nhiên
Ngày nay, mục tiêu sử dụng máy tính của con người không chỉ dừng lại
để hiểu các con số, mà đang dần phát triển để hiểu các chữ viết của con người.Chữ viết là công cụ con người sử dụng để giao tiếp với nhau hàng ngàn năm nay Chúng được truyền từ đời này qua đời khác Nó là nguồn dữ liệu dồi dào và rất có ích
Từ khi máy tính tồn tại cho đến nay, các lập trình viên đã cố gắng viết ra các chương tình có thể hiểu được ngôn ngữ tiếng Anh Lý do khá rõ ràng: con người đã có lịch sử về chữ viết hàng ngàn năm và sẽ thực sự hữu ích nếu một máy tính có thể đọc và hiểu được tất cá dữ liệu từ lượng bài viết đã được viết trong ngàn ấy năm đó
Máy tính ngày nay chưa thực sự hiểu được ngôn ngữ tự nhiên như con người Thách thức và khó khăn của NLP
Quá trình đọc và hiểu được ngôn ngữ tự nhiên thực sự rất phức tạp Ngônngữ không có những quy tắc và logic xác định
Bên cạnh đó, kho từ vựng của một ngôn ngữ thường được cập nhật thường xuyên và không cố định Cấu trúc ngữ pháp của câu linh hoạt và đôi khi khá lỏng lẻo
Ngôn ngữ đôi khi thể hiện cảm xúc, ẩn ý của người viết
Trang 5Tính nhập nhằng của ngôn ngữ
Tính nhập nhằng của ngôn ngữ (ambiguity) là hiện tượng xảy ra khi ngônngữ có thể được hiểu theo nhiều cách khác nhau, tùy thuộc vào ngữ cảnh mà nó xuất hiện Trong NLP, sự nhập nhằng có thể xảy ra ở nhiều cấp độ từ vựng, ngữ pháp, ngữ nghĩa, dẫn tới khó khăn trong việc xử lý trên máy tính
- Ví dụ về tính nhập nhằng của ngôn ngữ tự nhiên – từ đồng âm:
They book that hotel
They read that book
- Nhận diện tiếng nói (Automatic Speech Recognition/Speech-To-Text): Giúp thao tác của con người trên các thiết bị nhanh và đơn giản hơn Đây cũng là bước đầu tiên phải thực hiện trong hiện thực hóa giao tiếp giúp con người với robot Nhận dạng tiếng nói có khả năng trợ giúp người khiếm thị rất nhiều
- Tổng hợp tiếng nói (Speech synthesis hoặc Text to Speech – TTS): Từ một văn bản tự động tổng hợp thành tiếng nói thay vì cách đọc bằng mắt truyền thống Giống như nhận diện tiếng nói, tổng hợp tiếng nói trợ giúp cho người khiếm thị Là bước cuối cùng trong giao tiếp robot với người
- Dịch tự động (Machine Translate - MT): Dịch tự động từ ngôn ngữ này
Trang 6- Tìm kiếm thông tin (Information Retrieval): Chương trình tự tìm nội dung phù hợp nhất cho câu hỏi được đặt ra.
o Việc lượng thông tin ngày càng dầy lên theo cấp số nhân, đặt ra bàitoán tìm đúng thông tin cần thiết và đáng tin cậy
- Tóm tắt văn bản (Automatic Text Summarization): Từ một văn bản dài tóm tắt thành một văn bản ngắn hơn theo mong muốn nhưng vẫn chứa những thông tin thiết yếu nhất
- Khai phá dữ liệu và phát hiện tri thức (Knowledge discovery and data mining): Tri thức mới có thể được tìm thấy ở nhiều tài liệu khác nhau Ở mức độ đơn giản khi kết hợp với máy tìm kiếm cho phép người dùng đặt câu hỏi để từ đó công cụ từ tìm ra câu trả lời dữa trên các thông tin trên web Để làm được điều này cần mô phỏng quá trình học tập, khám phá khoa học của con người, đây là lĩnh vực đang trong giai đoạn phát triển
- Kiểm tra lỗi chính tả (Auto-correcting): Tự phát hiện và sửa lỗi chính tả, ngữ pháp và thậm chí là ngữ nghĩa dựa trên ngữ cảnh
- Chatbot: Chương trình máy tính có khả năng trò chuyện (chat), hỏi đáp với con người qua hình thức hội thoại dưới dạng băn bản (text) Chatbot thường được sử dụng trong ứng dụng hỗ trợ khách hàng, giúp người dùngtìm kiếm thông tin sản phẩm và giải đáp thắc mắc
- Trợ lý ảo (Virtual Assistant)
Công nghệ xử lý ngôn ngữ tự nhiên ngày càng có nhiều ứng dụng tốt, dần phổ biến, và gần gũi với cuộc sống hàng ngày
Trang 7Cơ sở lý thuyết và phương pháp luận
Đôi nét về học máy
Định nghĩa
Học máy (tiếng Anh: machine learning) là một lĩnh vực của trí tuệ nhân tạo liên quan đến việc phát triển các kĩ thuật cho phép các máy tính có thể "học"được các khái niệm
Trong những năm gần đây, Máy học (Machine Learning) đang trở thành 1phần không thể thiếu trong quá trình xử lý ngôn ngữ tự nhiên
Các phương pháp học máy
1 Phương pháp quy nạp
- Máy học/phân biệt các khái niệm dựa trên dữ liệu thu nhập được trước
đó, cho phép tận dụng được nguồn dữ liệu dồi dào tước đó
2 Phương pháp suy diễn
- Máy học/phân biệt các khái niệm dựa trên các luật, cho phép tận dụng các kiến thức chuyên ngành để hỗ trợ máy tính
Phân loại giải thuật học máy
1 Học có giảm sát: Thuật toán tạo ra một hàm ánh xạ dữ liệu vào tới kết quả mong muốn Máy được xem trước một số mẫu (đầu vào và ra) Sau đó quan sát đầu vào mới và cho ra kết quả
2 Học không giảm sát: Chỉ cung cấp các mẫu không có đầu ra Máy phải
tự tìm cách phân loại các mẫu, mô hình hóa và nhận diện các mẫu mới
3 Học bán (nửa) giám sát: Kết hợp các ví dụ có gắn nhãn và không gắn nhãn để sinh một hàm hoặc một bộ phân loại thích hợp
4 Học tăng cường: Tự đưa ra quyết định hành động và nhận biết kết quả phản hồi từ môi trường và tìm cách chỉnh sửa cách ra quyết định hành động Môi trường cung cấp thông tin phản hồi để hướng dẫn cho thuậttoán của quá trình học
5 Học cách học: Thuật toán học thiên kiến quy nạp của chính mình, dựa theo các kinh nghiệm đã gặp
Trang 8 P(A): Xác suất của sự kiện A xảy ra.
P(B): Xác suất của sự kiện B xảy ra
P(B | A): Xác suất (có điều kiện) của sự kiện B xảy ra, nếu sự kiện
Các bước xử lý ngôn ngữ tự nhiên
Thực tế, ranh giới giữa các bước xử lý này rất mong manh Các bước có thể được tiến hành một cách đơn lẻ hoặc song song – tùy thuộc vào giải thuật và ngữ cảnh cụ thể
Nhìn chung, việc xử lý ngôn ngữ tự nhiên cần hoàn thành những nhiệm vụ
cơ bản như sau: Phân tích hình thái, phân tích cú pháp, Phân tích ngữ nghĩa, tíchhợp văn bản và phân tích thực nghĩa (thông dịch)
1 Tách câu
Tách câu (Sentence Segmentation) giúp phân nhỏ đoạn văn và làm bài toán dễ dàng hơn Viết một chương trình có thể hiểu một câu đơn sẽ dễ dàng hơn là hiểu liền một lúc cả một đoạn văn
Các câu được ngăn cách bởi dấu chấm câu “.”
Dựa vào chấm câu và định dạng của văn bản, chúng ta có thể xây dựng chương trình tách câu
2 Tách từ
Tách từ (hay còn được gọi là Tokenization) là công việc tách các thành phần của câu thành các từ (token)
Trang 9Việc Tokenization khá đơn giản trong tiếng Anh bằng việc nhận biết dấu cách (khoảng trống).
Các dấu câu cũng được coi là một mã thông báo riêng biệt vì dấu câu thông báo câu có ý nghĩa
Với những ngôn ngữ khác (như tiếng Việt) thì việc tách từ sẽ phức tạp hơn
- Nếu chúng ta có một câu: “London is the capital and most populous city
of England and the United Kingdom.”, thì kết quả của bước này sẽ là:
- “London”, “is”, “ the”, “capital”, “and”, “most”, “populous”, “city”, “of”,
“England”, “and”, “the”, “United”, “Kingdom”, “.”
- Một điều đáng lưu ý đó là một token không nhất thiết phải là một từ; ví
dụ, “rock ‘n’ roll”, “3D printer” đều là những token và chúng được hợp thành bởi nhiều từ
- Ngoài ra, token có thể là ký tự hoặc từ con (sub-word)
3 Gắn nhãn cho mỗi từ
- Gẵn nhãn cho mỗi từ (Part Of Speech Tagging – POS Tagging)
- Các nhãn (label) đơn giản nhất là loại từ: bao gồm động từ, danh từ, tính
mô hình
- Mô hình gán nhãn từ vựng có thể được huấn luyện bằng cách cung cấp
dữ liệu đầu vào gồm hàng triệu những câu tiếng Anh (và một số từ xung quanh nó) với mỗi từ đã được gán nhãn trước
- Model được huấn luyện dựa trên phương pháp thống kê Do đó, nó chưa thực sự hiểu được ý nghĩa từ ngữ như con người Mô hình chỉ có thể xác định được nhãn từ giống với những từ trước đó thuật toán đã được huấn luyện qua
Trang 10- Thông qua bước gán nhãn, chúng ta có thể xác định được chủ thể trong câu.
- Trong NLP, quá trình đồng nhất từ vựng này được gọi là quá trình tìm ra định dạng cơ bản của mỗi từ (Lemmatization) trong một câu văn
- “Việc bổ ngữ (Lemmatization) tức là đưa ra các từ về định dạng gốc đượcthực hiện bằng cách sử dụng một bảng tra cứu các từ vựng gốc của các từ trong câu văn”
- Trong NLP, những từ như vậy có thể được gán cờ là từ dừng: những từ cóthể sẽ muốn lọc ra trước khi thực hiện bất kỳ các phân tích thống kê nào
Trang 11- Thông thường, kết quả phân tích mối quan hệ thường được biểu diễn dưới dạng cây.
- Mục tiêu là xây dựng một cây có thể gán một từ đơn duy nhất làm cha (parent) cho mỗi từ trong câu Từ gốc (root) của cây này là động từ chính trong câu
o Bên cạnh việc xác định từ cha của mỗi từ, chúng ta có thể phân loạiđược mỗi quan hệ, mối tương quan giữa hai từ đó
o Sử dụng thông tin từ cây phân tích sự phụ thuộc, chúng ta có thể nhóm các từ liên quan thành một cụm danh từ
Trang 12- Việc nhóm các từ thành cụm danh từ làm đơn giản hóa cấu trúc của câu, giúp tập trung vào việc trích xuất ý tưởng hoàn chỉnh của câu
- Vào năm 2016, Google đã phát hành một trình phân tích phụ thuộc mang tên Parsey McParseface Nó vượt troojih[n các phương pháp trước đó bằng các sử dụng học sâu Mô hình được phát triển thành ParseySaurus
- Kỹ thuật phân tích cú pháp là một lĩnh vực được nghiên cứu tích cực và liên tục thay đổi và cải tiến
7 Nhận dạng thực thể có tên
- Nhận dạng thực thể có tên (Named Entity Recognition – NER) là việc phát hiện và gán nhãn cho các danh từ riêng với các khái niệm trong thế giới thực mà chúng đại diện
- Hệ thống NER không chỉ thực hiện tra cứu từ điển đơn thuần mà còn sử dụng bối cảnh và cấu trúc ngữ pháp xuất hiện trong câu và sử dụng mô hình thống kê để đoán loại danh từ mà từ vựng đó đại diện
Trang 13- Một hệ thống NER điển hình có thể gắn thẻ các thực thể: tên người, tên công ty, vị trí địa lý (vật lý và chính trị), tên các sản phẩm, ngày và thời gian, số tiền, sự kiện
8 Xử lý mối quan hệ giữa các câu
- Xử lý mối quan hệ giữa các câu là xác định mối quan hệ ngữ pháp giữa hai hay nhiều từ cùng ám chỉ một vật trong các câu khác nhau
(Coreference Resolution – CR)
- Ngôn ngữ có các đại từ thay thế tùy theo ngữ cảnh (he, she, it trong tiếng Anh, “nó” trong tiếng Việt) Đây là những đại từ được sử dụng thay thế thay vì phải viết đi viêt lại tên riêng của người/vật
- Con người có thể biết được những đại từ thay thế, nhưng trước bước này,
mô hình chỉ có thể kiểm tra danh từ trong phạm vi một câu cụ thể
- Ví dụ với câu “It was founded by the Romans, who named it
Londinium.”:
o Nếu phân tích với mô hình NLP hiện tại, chúng ta chỉ biết rằng “it”được thành lập bởi “Romans”
o Con người có thể nhận biết được rằng “it” ám chỉ tới “Londinium”
o Mục tiêu của bước này đó là tìm ra ánh xạ tương tự bằng cách theo dõi các đại từ qua các câu
- CR là một trong những bước khó khăn nhất trong quy trình xử lý ngôn ngữ tự nhiên (khó hơn phân tích cú pháp câu)
Trang 15So sánh Lemmatization và Stemming
Trong NLP, chúng ta sẽ có nhu cầu so sánh các từ (token) với nhau Với các từ có nhiều biến thể, Lemmatization và Stemming là 2 kỹ thuật cụ thể thường được sử dùng cho việc này
Stemming
Giới thiệu
Stemming là kỹ thuật dùng để biến đổi 1 từ về dạng gốc (stem/root form) bằng cách loại bỏ một số ký tự ở cuối từ mà nó nghĩ rằng là biến thể của từ (tiếng Anh)
- Ví dụ như chúng ta thấy các từ như walked walking walks, , chỉ khác nhau
ở những ký tự cuối cùng
o Bằng cách bỏ đi các hậu tố -ed -ing -s, , chúng ta sẽ có được từ nguyên gốc
Các bộ xử lý stemming được gọi là các Stemmer
Do nguyên lý hoạt động đơn giản, tốc độ của Stemmer khá là nhanh Vì vậy chúng được sử dụng phổ biến trong NLP
“Khác với Stemming là xử lý bằng cách loại bỏ các ký tự cuối từ một cách heuristic, Lemmatization sẽ xử lý thông minh hơn bằng một bộ từ điển hoặc một bộ ontology nào đó”
Trong các ứng dụng xử lý NLP mà cần độ chính xác cao, Lemmatization thường được sử dụng
Trang 16 Các công cụ phân tích phần lớn được dựa trên các cấu trúc ngữ pháp, học máy và các hàm thành phần học sâu (deep learning).
Standford CoreNPL cung cấp các công cụ phân tích ngôn ngữ tự nhiên bằng Java Cung cấp các khả năng chú thích cho văn bản, thông dịch, nhận diện giọng nói, các thành phần cấu trúc ngữ pháp của câu và dán nhãn như tên riêng, giá trị thời gian và số, phép ẩn dụ quan hệ trong câu
So sánh với các thư viện khác
- Standford CoreNLP cung cấp các mô hình (model) có hiệu suất cao Tốc
độ nhanh hơn nhiều so với Redshift nhưng độ chính xác lại thấp hơn
- Bên trong thư viện Standford CoreNLP là thuật toán tìm kiếm tham lam (tương tự như spaCy), nó cung cấp kết quả gần như tương đương với tốc
độ nhanh hơn spaCy Độ chính xác của CoreNLP ngày càng được cải thiện nhờ việc sử dụng mạng neuron nhân tạo
Trang 17-Parser Độ chính
xác
Tốc độ (w/s)
Ngôn ngữ
LOC Code)
- Thư viện nổi tiếng với tính dễ sử dụng, dễ làm quen với người mới.Khái niệm sử dụng trong CoreNLP
Pipeline
- Nẳm ở trung tâm của CoreNLP là pipeline Pipeline này nhận tham số đầu vào là một đoạn văn bản hoặc XML và cho kết quả đầu ra là các đối tượng chú giải