1
1
Xử lý ngôn ngữ tự nhiên
(Natural Language Processing)
Bộ môn Hệ thống Thông tin
Viện CNTT &TT – Trường ĐHBKHN
2
Mục đích môn học
Hiểu các nguyên tắc cơ bản và các cách tiếp cận trong XLNNTN
Học các kỹ thuật và công cụ có thể dùng để phát triển các hệ thống
hiểu văn bản hoặc nói chuyện với con người
Thu được một số ý tưởng về các vấn đề mở trong XLNN
Tài liệu tham khảo
Christopher Manning and Hinrich Schütze. 1999. Foundations of
Statistical Natural Language Processing. The MIT Press.
Dan Jurafsky and James Martin. 2000. Speech and Language
Processing. PrenticeHall.
James Allen. 1994. Natural Language Understanding. The
Benjamins/Cummings Publishing Company Inc.
3
Thông tin chung
Đánh giá
Giữa kỳ: 30%
Kiểm tra viết: 20%
BTL: 10%
Cuối kỳ: thi viết 70%
Điều kiện được thi cuối kỳ:
Có tất cả các loại điểm giữa kỳ
Bài tập lớn:
Viết tiểu luận hoặc cài đặt chương trình theo nhóm (4sv)
Bảo vệ kết quả trong 3 tuần cuối của học kỳ
Website:
2
4
Xử lý NNTN là gì?
Âm thanh
Ý nghĩa
5
Xử lý NNTN = chuyển đổi âm
thanh thành ngữ nghĩa
NNTN là trung tâm của trí tuệ con người
6
Xử lý NNTN là gì?
Mục đích: hiểu được nhiều ngôn ngữ
Không chỉ đơn giản là xử lý xâu hoặc so khớp từ khoá
3
Các ứng dụng của XLNNTN
4
Trích rút thông tin
12
12
Martin Baker, a person
Genomics job
Employers job posting form
5
13
Trích rút thông tin
October 14, 2002, 4:00 a.m. PT
For years, Microsoft Corporation CEO Bill Gates
railed against the economic philosophy of open-
source software with Orwellian fervor, denouncing
its communal licensing as a "cancer" that stifled
technological innovation.
Today, Microsoft claims to "love" the open-source
concept, by which software code is made public to
encourage improvement and development by
outside programmers. Gates himself says
Microsoft will gladly disclose its crown jewels the
coveted code behind the Windows operating
system to select customers.
"We can be open source. We love the concept of
shared source," said Bill Veghte, a Microsoft VP.
"That's a super-important shift for us in terms of
code access.“
Richard Stallman, founder of the Free Software
Foundation, countered saying…
NAME TITLE ORGANIZATION
Bill Gates CEO Microsoft
Bill Veghte VP Microsoft
Richard Stallman founder Free Soft
IE
Newsinessence [Radev & al. 01]
6
16
Google News [02]
7
19
ELIZA
/>ogaff/eliza/
20
Nói chuyện với Eliza
E: how are you today?
H: not so good
E: why do you say not so good?
H: i suffer from allergies?
E: that’s interesting
H: i come out in spots
E: i’m not sure i know what you’re talking about
H: spots on my face
E: your face
H: that’s right
E: is it really that right?
21
Nói chuyện với Eliza
H: you’re a program, aren’t you?
E: does it please you to believe i am a program, am not i?
H: it sure does
E: i see
H: yup
E: a while back you talk about your face
H: what about your face?
E: what is it you really want to know?
H: are you my kind of girl?
E: perhaps in your fantasies i am your kind of girl
H: in my fantasies you are blonde
8
22
Nói chuyện với Eliza
E: what makes you think i am blonde?
H: i don’t know
E: don’t you really know?
H: no
E: are you saying no just to be negative?
H: no
E: you are being a bit negative
H: no i’m not
E: how long have you been not?
Các kết quả đạt được
Tại sao nghiên cứu XLNNTN
Nghiên cứu cách con người xác định từ
Nghiên cứu cách con người phân tích câu
Nghiên cứu cách con người học một ngôn
ngữ
Nghiên cứu cách ngôn ngữ tiến hóa
24
9
25
Các chủ đề trong XLNNTN
Mức phân tích: cú pháp, ngữ nghĩa, diễn ngôn, thực
chứng, …
Các bài toán con: gán nhãn từ loại, PTCP, phân giải
nhập nhằng từ, phânt ích cấu trúc diễn ngôn, …
Thuật toán và phương pháp: dựa trên tập ngữ liệu,
dựa trên tri thức, …
Các ứng dụng: trích rút thông tin, phản hồi thông tin,
dịch máy, hỏi đáp, hiểu ngôn ngữ tự nhiên, …
26
Các mức phân tích
Morphology (hình thái học): cách từ được xây dựng,
các tiền tố và hậu tố của từ
Syntax (cú pháp): mối liên hệ về cấu trúc ngữ pháp
giữa các từ và ngữ
Semantics (ngữ nghĩa): nghĩa của từ, cụm từ, và
cách diễn đạt
Discourse (diễn ngôn): quan hệ giữa các ý hoặc các
câu
Pragmatic (thực chứng): mục đích phát ngôn, cách
sử dụng ngôn ngữ trong giao tiếp
World Knowledge (tri thức thế giới): các tri thức về
thế giới, các tri thức ngầm
27
Hình thái học
Tiếng Anh: ngôn ngữ biến hình, đa âm tiết
kick, kicks, kicked, kicking
sit, sits, sat, sitting
murder, murders
Nhưng không phải luôn thêm và xóa đuôi.
gorge, gorgeous
arm, army
Tiếng Việt: ngôn ngữ không biến hình, đơn âm tiết cần tách từ
rực rỡ
Cánh tay
Quân đội
v: nhồi nhét; n: những cái đã ăn, hẻm núi
10
28
Tách từ
Một câu có thể có n khả năng tách từ, nhưng chỉ 1
trong chúng là đúng
Giải pháp đơn giản: lấy chuỗi âm tiết dài nhất bắt
đầu từ vị trí hiện tại và có trong từ điển từ
Vấn đề: chồng chéo từ
Học sinh | học sinh | học.
Học sinh | học | sinh học.
Liệt kê tất cả các khả năng có thể và thiết kế một
giải pháp để lựa chọn cái tốt nhất
29
Gán nhãn từ loại
The boy threw a ball to the brown dog.
The/DT boy/NN threw/VBD a/DT ball/NN to/IN
the/DT brown/JJ dog/NN./.
DT – determiner từ chỉ định
NN – noun, danh từ, số ít hoặc số nhiều
VBD – verb, past tense động từ, quá khứ
IN – preposition giới từ
JJ – adjective tính từ
. – dấu chấm câu
Gán nhãn từ loại
30
Con ngựa đá con ngựa đá.
Con ngựa/DT đá/ĐgT con ngựa/DT đá/DT.
Ông/ĐaT già/TT đi/Phó_từ nhanh/TT
quá/trạng_từ.
Ông già/DT đi/ĐgT nhanh/TT quá/trạng_từ.
11
31
Ngữ pháp: nhập nhằng cấu
trúc (từ loại)
Time flies like an arrow.
Time // flies like an arrow.
VBZ IN (giới từ so sánh)
Time flies // like an arrow.
NNS VBP
32
Ngữ pháp: nhập nhằng cấu
trúc (từ loại)
Ông già // đi nhanh quá.
Ông // già đi nhanh quá.
33
Ngữ pháp: nhập nhằng cấu
trúc (liên kết)
S
VP
NP
NP V NP PP PP
I saw the man on the hill with a telescope.
I saw the man on the hill with a
telescope.
12
34
Ngữ pháp: nhập nhằng cấu trúc
(liên kết)
S
VP
NP
NP V NP PP PP
I saw the man on the hill with a telescope.
35
Ngữ pháp: nhập nhằng cấu trúc
(liên kết)
S
VP
NP V NP PP PP
I saw the man on the hill with a telescope.
36
Nhưng ngữ pháp không nói
lên nhiều điều…
Colorless green ideas sleep furiously.
[Chomsky]
fire match arson hotel
plastic cat food can cover
13
37
Ngữ nghĩa: nhập nhằng mức
từ vựng
I walked to the bank
of the river.
to get money.
The bug in the room
was planted by spies.
flew out the window.
I work for John Hancock
and he is a good boss.
which is a good company.
38
Diễn ngôn: đồng tham chiếu
President John F. Kennedy was assassinated.
The president was shot yesterday.
Relatives said that John was a good father.
JFK was the youngest president in history.
His family will bury him tomorrow.
Friends of the Massachusetts native will hold a
candlelight service in Mr. Kennedy’s home
town.
39
Thực chứng
Bạn rút ra điều gì từ những điều tôi nói? Bạn
phản ứng thế nào?
Luật hội thoại
Bạn ơi mấy giờ rồi?
Anh đưa cho em lọ muối được không?
Nói kèm theo diễn tả
Tôi cá với bạn 500.000 là đội Việt Nam sẽ
thắng.
14
40
Tri thức thế giới
Mai đi ăn tối. Cô ấy gọi món bít tết. Cô ấy để lại
tiền boa và về nhà.
Mai ăn gì vào bữa tối?
Ai mang bữa tối đến cho Mai?
Ai làm bít tết?
Mai có trả tiền không?
41
Tri thức về ngôn ngữ: Chúng ta biết
gì về câu này?
Các từ phải xuất hiện theo một trình tự nhất định:
a. Chó kem ăn. b. Chó ăn kem
Các bộ phận cấu thành câu:
chó = chủ ngữ (subject); ăn kem = vị ngữ (predicate)
Ai làm gì cho ai:
chủ thể(chó), hành động(ăn), đối tượng(kem)
42
Các vấn đề khác?
Hai câu “Mai nói chó ăn kem” và “Mai phủ nhận chó ăn
kem” không logic với nhau
Câu và thế giới: biết 1 câu là đúng hay sai – có thể trong
một vài trường hợp cụ thể nó đúng.
“Tôi uống cà phê espresso sáng nay, nhưng Mai thông
minh” không hợp lý
15
Tri thức ẩn
1. I want to solve the problem
I wanna solve the problem
2. I understand these students
These students I understand
I want these students to solve the problem
These students I want [x] to solve the
problem
[x]=these students
43
44
Đặc trưng của ngôn ngữ
Một số có thể nhớ được:
Singing Sing+ing; Bringing bring+ing
Duckling ?? Duckl +ing
Cần phải biết duckl không phải là từ
Nhưng không thể nhớ tất cả vì quá nhiều
45
Ngoài bộ nhớ, ta cần gì?
Số nhiều trong tiếng Anh:
Toy+s -> toyz ; add z
Book+s -> books ; add s
Church+s -> churchiz ; add iz
Box+s-> boxiz ; add iz
Cần có hệ thống luật để sinh/xử lý các
trường hợp này
16
46
“Phân tích” = gắn bề ngoài với
cách biểu diễn trong của nó
Vì sao XLNNTN khó: không có tương ứng 1-
1 với bất kỳ cách biểu diễn nào.
Ta cần biết cấu trúc dữ liệu và thuật toán để
thực hiện, mặc dù có thể xảy ra bùng nổ tổ
hợp ở bất cứ công đoạn xử lý nào
47
Phân tích câu hỏi
LSAT / (former) GRE
Sáu tượng điêu khắc – C, D, E, F, G, H – được triển lãm trong các
phòng 1, 2, 3 của một triển lãm.
Tượng C và E có thể không trong cùng phòng.
Tượng D và G phải trong một phòng.
Nếu tượng E và F trong cùng phòng thì không có tượng nào khác
trong phòng đó
Có ít nhất 1 tượng triển lãm trong một phòng, không có nhiều hơn
3 tượng trong bất cứ phòng nào
Nếu tượng D được triển lãm trong phòng 3 và các tượng E, F trong
phòng 1, trong các phát biểu dưới đây, phát biểu nào đúng:
A. Tượng C trong phòng 1
B. Tượng H trong phòng 1
C. Tượng G trong phòng 2
D. Tượng C và H trong cùng phòng
E. Tượng G và F trong cùng phòng
48
U: A Bug’s Life được chiếu tại chỗ nào của Mountain
View?
S: A Bug’s Life được chiếu ở rạp Summit.
U: Khi nào nó được chiếu ở đó?
S: Nó được chiếu lúc 2pm, 5pm, và 8pm.
U: Tôi muốn 1 người lớn, 2 trẻ con cho buổi chiếu đầu
tiên. Nó giá bao nhiêu?
Giải quyết đồng tham chiếu
Các nguồn tri thức:
Tri thức miền (Domain knowledge)
Tri thức về diễn ngôn (Discourse knowledge)
Tri thức thế giới (World knowledge)
17
49
Tại sao XLNNTN lại khó?
NNTN:
Nhập nhằng tại mọi mức
Phức tạp và mờ
Liên quan lập luận về thế giới
50
Giải pháp
Ta cần các công cụ nào?
Tri thức về ngôn ngữ
Tri thức về thế giới
Cách kết hợp các tri thức
Giải pháp tiềm năng:
Các mô hình xác suất xây dựng từ dữ liệu
P(“maison” “house”) cao
P(“L’avocat general” “the general avocado”) thấp
Nhắc lại các bài toán trong
XLNNTN
51
18
Phân tích hình thái từ
Vào: chuỗi ký tự
Ra: các cặp (gốc từ, thẻ hình thái từ )
Các vấn đề:
Kết hợp các thành phần cấu tạo nên từ
Loại hình thái từ (từ biến tố, từ phái sinh, từ ghép)
Ví dụ: quotations ~ quote/V + -ation(der.V->N) +
NNS.
52
Phân tích cú pháp
Vào: chuỗi các cặp (từ/từ loại)
Ra: cấu trúc ngữ pháp của câu với các nút
được gán nhãn (từ, từ loại, vai trò ngữ pháp)
Vấn đề:
Quan hệ giữa từ, từ loại, và cấu trúc câu
Sử dụng nhãn cú pháp (Chủ ngữ, vị ngữ, bổ ngữ,
….)
Ví dụ: Tôi/ĐaT nhìn thấy/ĐgT Mai/DT
((Tôi/ĐaT)CN ((nhìn thấy/ĐgT) (Mai/DT)OBJ)VN)C
53
Ngữ nghĩa
Vào: cấu trúc ngữ pháp của câu
Ra: cấu trúc ngữ nghĩa của câu
Vấn đề:
Quan hệ giữa các đối tượng như chủ thể
(Subject), đối tượng (Object), tác nhân (Agent),
hậu quả (Effect) và các loại khác
((Học sinh/DT)CN ((học/ĐgT sinh học/DT)ĐgN)VN)C
(Học sinh/DT)Sbj (học/ĐgT)action (sinh học/DT)Obj
54
Tách từ tiếng Việt
Bộ môn Hệ thống Thông tin
Viện CNTT &TT – Trường ĐHBKHN
1
Tách từ
Mục đích: xác định ranh giới của các từ trong câu.
Là bước xử lý quan trọng đối với các hệ thống XLNNTN,
đặc biệt là đối với các ngôn ngữ đơn lập, ví dụ: âm tiết
Trung Quốc, âm tiết Nhật, âm tiết Thái, và tiếng Việt.
Với các ngôn ngữ đơn lập, một từ có thể có một hoặc
nhiều âm tiết.
Vấn đề của bài toán tách từ là khử được sự nhập nhằng
trong ranh giới từ.
2
Từ vựng
tiếng Việt là ngôn ngữ không biến hình
Từ điển từ tiếng Việt (Vietlex): >40.000 từ,
trong đó:
81.55% âm tiết là từ : từ đơn
15.69% các từ trong từ điển là từ đơn
70.72% từ ghép có 2 âm tiết
13.59% từ ghép ≥ 3 âm tiết
1.04% từ ghép ≥ 4 âm tiết
3
Từ vựng
Độ dài
# từ
%
1
6,303
15.69
2
28,416
70.72
3
2,259
5.62
4
2,784
6.93
5
419
1.04
Tổng
40,181
100
4
Bảng 1. Độ dài của từ tính theo âm tiết
Qui tắc cấu tạo từ tiếng Việt
Từ đơn: dùng một âm tiết làm một từ.
Ví dụ: tôi, bác, người, cây, hoa, đi, chạy, vì, đã, à, nhỉ, nhé
Từ ghép: tổ hợp (ghép) các âm tiết lại, giữa các âm tiết
đó có quan hệ về nghĩa với nhau.
Từ ghép đẳng lập. các thành tố cấu tạo có quan hệ bình đẳng với
nhau về nghĩa.
Ví dụ: chợ búa, bếp núc
Từ ghép chính phụ. các thành tố cấu tạo này phụ thuộc vào thành
tố cấu tạo kia. Thành tố phụ có vai trò phân loại, chuyên biệt hoá
và sắc thái hoá cho thành tố chính.
Ví dụ: tàu hoả, đường sắt, xấu bụng, tốt mã, ngay đơ, thằng
tắp, sưng vù
5
Qui tắc cấu tạo từ tiếng Việt
Từ láy: các yếu tố cấu tạo có thành phần ngữ âm được lặp
lại; nhưng vừa lặp vừa biến đổi. Một từ được lặp lại cũng cho
ta từ láy.
Biến thể của từ: được coi là dạng lâm thời biến động hoặc
dạng "lời nói" của từ.
Rút gọn một từ dài thành từ ngắn hơn
ki-lô-gam → ki lô/ kí lô
Lâm thời phá vỡ cấu trúc của từ, phân bố lại yếu tố tạo từ với
những yếu tố khác ngoài từ chen vào. Ví dụ:
khổ sở → lo khổ lo sở
ngặt nghẽo → cười ngặt cười nghẽo
danh lợi + ham chuộng → ham danh chuộng lợi
6
Qui tắc cấu tạo từ tiếng Việt
Các diễn tả gồm nhiều từ (vd, “bởi vì”) cũng được coi là
1 từ
Tên riêng: tên người và vị trí được coi là 1 đơn vị từ
vựng
Các mẫu thường xuyên: số, thời gian
7
Các hướng tiếp cận
Tiếp cận dựa trên từ điển
Tiếp cận theo phương pháp thống kê
Kết hợp hai phương pháp trên.
8
Các phương pháp
So khớp từ dài nhất (Longest Matching)
Học dựa trên sự cải biến (Transformation-based
Learning – TBL)
Chuyển đổi trạng thái trọng số hữu hạn (Weighted Finite
State Transducer – WFST)
Độ hỗn loạn cực đại (Maximum Entropy – ME)
Học máy sử dụng mô hình Markov ẩn (Hidden Markov
Models- HMM)
Học máy sử dụng vectơ hỗ trợ (Support Vector
Machines)
Kết hợp các phương pháp trên
9
Tiếp cận dựa trên từ điển
<Lê Thanh Hương, Phân tích cú pháp tiếng Việt, Luận văn
cao học, 1999>
Xây dựng từ điển
Mỗi mục từ lưu thông tin về từ, từ loại, nghĩa loại
Tổ chức sao cho tốn ít bộ nhớ và thuận tiện trong việc
tìm kiếm
Mã hóa từ điển: Từ loại và nghĩa loại kiểu byte được lưu
dưới dạng một ký tự.
VD: danh từ -112 – p, <loại từ> - 115 – s
10
Tiếp cận dựa trên từ điển
Phân trang theo hai chữ cái đầu của từ, sắp tăng. Với mỗi trang,
các từ lại được sắp theo vần ABC.
11
ba bà xe
. . . . . .
bao
bà ngoại bài tập
xe cộ xe đạp
Content
Paragraph
1
2
n
1
2
n
Tìm từ trong từ điển
Độ dài tối đa của từ? 3? 4? 5?
Vấn đề: nếu ngắn (vd 3), không xử lý được
các tổ hợp từ cố định, vd "ông chẳng bà
chuộc“
Đưa ra tất cả các từ ghép có trong từ điển
trùng với phần đầu của xâu vào
12
Tìm từ trong từ điển
Nếu nhà máy nghỉ thì ta về
Vị trí từ: 0 1 2 3 4 5 6 7
Ta có bảng sau:
Ký hiệu:
<liên từ> - LT <danh từ> - DT
<động từ> - ĐgT <đại từ> - ĐaT
13
Phân giải nhập nhằng
Lấy tất cả các cách phân tích, nếu phân tích
cú pháp cho ra cây đúng thì đó là cách phân
tích đúng.
14
Cách tiếp cận lai
<Phuong Le-Hong et al., A hybrid approach to word
segmentation of Vietnamese texts, Proceedings of the
2nd International Conference on Language and Automat
Theory and Applications, LATA 2008, Tarragona, Spain,
2008.>
Kết hợp phân tích automat hữu hạn + biểu thức chính
quy + so khớp từ dài nhất + thống kê (để giải quyết nhập
nhằng)
15
Biểu thức chính qui
là một khuôn mẫu được so sánh với một chuỗi
Các ký tự đặc biệt:
* - bất cứ chuỗi ký tự nào, kể cả không có gì
x – ít nhất 1 ký tự
+ - chuỗi trong ngoặc xuất hiện ít nhất 1 lần
Ví dụ:
Email: *@x(.*)+
dir *.txt
‘*John’ -> ‘John’, ‘Ajohn’, “Decker John”
Biểu thức chính quy được sử dụng đặc biệt nhiều trong:
* Phân tích cú pháp
* Xác nhận tính hợp lệ của dữ liệu
* Xử lý chuỗi
* Tách dữ liệu và tạo báo cáo
16
a) 0(0 + 1)* 0
00,000, 0000, 010, 0110, 01110, 010100
b) (0+ 1)*0(0 + 1) (0 + 1)
000, 001,010,011
c) (11+ 0)*(00+ 1)
1100, 111, 000,01, 0111, … 0100
d) (1+ 01+ 001)*(ε + 0 + 00)
1, 01, 001, 101,….
1010011100, 1010101, 1111, 1010000
e) [ 00 + 11 + (01+ 10) (00+ 11)*(01+ 10)]*
e) [ 00 + 11 + (01+ 10) (00+ 11)*(01+ 10)]*
0011, 000011, 001111,
001100
001101001101
0101010010101101
0101, 1010, 1001, 0110, 01101, 101101
(01)* (00+ ε) (10)* (11+ ε) (01)*
011011
(11+ ε) (00+ ε)
Automat hữu hạn
Lớp ngôn ngữ chính qui, được đoán nhận bởi máy ảo,
gọi tên là automat hữu hạn.
Automat hữu hạn đơn định (Deterministic Finite Automat a– DFA
Automat hữu hạn không đơn định (Nondeterministic Finite
Automat a– NFA)
Automat hữu hạn không đơn định, chấp nhận phép truyền rỗng
(ε-NFA)
19
Giới thiệu phi hình thức về
automat hữu hạn
Một bài toán trong automat là nhận diện
chuỗi w có thuộc về ngôn ngữ L hay không.
Chuỗi nhập được xử lý tuần tự từng ký hiệu
một từ trái sang phải.
Trong quá trình thực thi, automat cần phải
nhớ thông tin đã qua xử lý.
20
Ví dụ về automat hữu hạn
L = {w {0, 1}* | w kết thúc bằng chuỗi con 10}.
21