Tải bản đầy đủ (.pdf) (180 trang)

Bài giảng xử lý ngôn ngữ tự nhiên

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (10.55 MB, 180 trang )

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

×