Tải bản đầy đủ (.docx) (27 trang)

báo cáo sư lỹ ngôn ngữ tự nhiên đề tài xác định biên giới câu

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 (410.89 KB, 27 trang )

ĐẠI HỌC BÁCH KHOA HÀ NỘI
Viện Công Nghệ Thông Tin Và Truyền Thông
BÁO CÁO BÀI TẬP LỚN
Môn: Xử Lý Ngôn Ngữ Tự Nhiên
Đề tài: Xác định biên giới câu
Nhóm sinh viên thực hiện:
Phạm Khương Duy SHSV: 20080459
Đặng Vũ Hạnh SHSV: 20080899
Chu Gia Khôi SHSV: 20081409
Lê Công Quyền SHSV: 20082136
Trần Bá Tùng SHSV: 20083041
Hà Nội, 5/2012
Mục Lục
Mở đầu…………………………………………………………………………………………………………………3
Mở đầu
Trong một văn bản bằng tiếng Anh hay bằng bất kỳ một ngôn ngữ thông
dụng nào khác, thông thường thì người ta dùng dấu chấm (.), chấm than (!),
chấm hỏi (?) và một số dấu khác nữa để nhận biết kết thúc câu (ta gọi những
dấu này là những dấu báo hiệu kết thúc câu hay dấu chấm câu). Tuy nhiên do
tính nhập nhằng của dấu báo hiệu kết thúc câu (chẳng hạn như dấu kết thúc câu
trong từ viết tắt, …) nên việc xác đònh ranh giới câu không đơn giản như chúng
ta nghó. Ví dụ như dấu chấm, nó có thể biểu thò như một dấu chấm thập phân,
một cụm từ viết tắt, sự kết thúc câu văn hoặc ngay cả từ viết tắt nằm ở cuối câu
văn. Một dấu chấm hỏi hay dấu chấm than có thể xuất hiện trong dấu ngoặc
đơn, ngoặc kép hay cũng như ở cuối câu. Sự mập mờ của các dấu chấm câu này
được minh họa qua các ví dụ sau:
• The group included Dr. J.M. Freeman and T. Boone Pickens Jr.
2
• “This issue crosses party lines and crosses philosophical lines!” said
• Rep. John Rowland (R., Conn.).
• It was due Friday 5 p.m. Saturday would be too late.


• She has an appointment at 5 p.m. Saturday to get her car fixed.
Trong trường hợp 1 và 2, từ nằm ngay trước hoặc nằm ngay sau dấu chấm
câu cho ta những thông tin quan trọng về vai trò của dấu trong câu. Tuy nhiên,
bộ phận tách câu cần phải có nhiều thông tin về ngữ cảnh hơn trong trường hợp
việc chấm câu xuất hiện ở một câu con trong dấu ngoặc đơn hoặc dấu ngoặc
kép, như trong trường hợp 2; hay khi chữ viết tắt xuất hiện ở cuối câu như trong
trường hợp 3 và 4. Để nhận diện dấu chấm câu, người ta có thể dùng các
heuristics hoặc các mô hình học phức tạp hơn, như: mạng neural, TBL,
Maximum Entropy.
3
1. TÁCH CÂU BẰNG CÁC HEURISTICS
Sau khi nhận được đoạn văn đã được lọc các ký tự dư thừa, các ký tự phụ,
bộ phận tách câu bắt đầu phân tích dựa trên cách chấm câu và ngữ nghóa của
một số từ để tách các câu ra riêng biệt.
1.1 Xử lý dấu chấm
Dấu chấm “.” là dấu có nhiều trường hợp mơ hồ nhất. Sau đây là các
trường hợp dấu chấm xuất hiện:
1. Dấu chấm kết thúc câu văn.
2. Dấu chấm thập phân trong chữ số (1,234.567)
3. Dấu chấm biểu thò sự viết tắt (Mr., Dr.,…)
4. Dấu chấm trong các trường hợp khác như số tài khoản, đòa chỉ Internet,
email… (www.abc.com hay )
4
Để có thể phân biệt các trường hợp trên, ta có thể dựa vào một số đặc
trưng riêng trong cách trình bày của từng trường hợp sau:
1. Nếu dấu chấm không thuộc các trường hợp còn lại (trường hợp 2,3 và
4), thì dấu hiệu để nhận biết kết thúc câu sẽ là: “luôn có ít nhất một khoảng
trắng sau dấu chấm và ký tự tiếp theo nếu là chữ cái sẽ được viết hoa.”
2. Ta có thể nhận biết dấu chấm thập phân bằng cách đọc toàn bộ phần
liền trước và liền sau dấu chấm để phát hiện số có dấu chấm thập phân.

3. Để nhận biết dấu chấm trong trường hợp các từ viết tắt, ta xây dựng
một danh sách các từ viết tắt để tra cứu khi cần.
4. Trường hợp này là trường hợp có các cách trình bày đa dạng nhất,
nhưng vẫn có tính chất chung là dấu chấm không bao giờ nằm cuối từ, luôn ở
giữa hai ký tự nào đó (nghóa là không có khoảng trắng liền sau) nên có thể dễ
dàng phân biệt.
Những quy luật trên đây là những quy luật chung nhất trong cách trình
bày văn bản tiếng Anh. Do dựa chủ yếu vào cách trình bày văn bản nên có
điểm yếu là dễ nhầm lẫn khi văn bản đưa vào có cách trình bày khác chuẩn; và
do không hiểu nghóa câu nên không thể phân biệt một số trường hợp mơ hồ như
trong ví dụ:
1- It was due Friday 5 p.m. Saturday would be too late.
2- She has an appointment at 5 p.m. Saturday to get her car fixed.
Để xác đònh được dấu chấm (in đậm) trong 2 trường trên có phải là dấu
chấm hết câu hay không cũng là 1 việc không đơn giản đối với máy, thậm chí
đối với người mà trình độ tiếng Anh chưa vững. Trong cả hai trường hợp, từ
ngay trước hoặc ngay sau dấu chấm câu cho ta những thông tin quan trọng về
5
vai trò của dấu trong câu. Tuy nhiên, bộ phận tách câu sẽ phải cần nhiều thông
tin về ngữ cảnh và cú pháp hơn trong trường hợp sự chấm câu xuất hiện ở một
câu con như trong trường hợp 1.
1.2 Xử lý dấu câu trong ngoặc
Khi bộ tách câu gặp dấu mở ngoặc đơn, hoặc ngoặc kép, thì nó sẽ quét
trong đoạn văn đang xét để tìm dấu đóng tương ứng. Nếu tìm thấy, toàn bộ
phần trong ngoặc sẽ được giữ nguyên, và tìm dấu kết thúc câu tiếp theo ngoài
dấu ngoặc. Nếu không tìm thấy dấu đóng tương ứng, dấu mở sẽ bò bỏ qua và xử
lý tiếp ký tự sau dấu mở như bình thường.
2. TÁCH CÂU BẰNG MẠNG NEURAL
Đây là cách tiếp cận do D.Palmer đưa ra với độ chính xác rất cao (cỡ 99,5
%) bằng cách sử dụng một mạng neural với thông tin đầu vào là những từ xung

quanh dấu báo hiệu kết thúc câu (gọi là ngữ cảnh của dấu báo hiệu đó) và đầu
ra là một giá trò cho phép xác đònh đó có phải là kết thúc câu hay không. Với
cách tiếp cận này, chúng ta sẽ biễu diễn ngữ cảnh xung quanh một dấu chấm
câu (chẳng hạn từ và từ loại của 3 từ trước và 3 từ sau dấu chấm) bằng một dãy
các vector xác suất, mỗi vector xác suất đại diện cho một từ thuộc ngữ cảnh đó.
Xác suất sử dụng cho mỗi từ trong ngữ cảnh là xác suất lớn nhất trong số các
xác suất của các từ loại có thể có của từ đó, xác suất này có được từ một tự
điển chứa dữ liệu về tần suất của từng từ loại cho mỗi từ. Vector ngữ cảnh hay
6
còn được gọi là mảng mô tả được sử dụng làm đầu vào cho một mạng neural
với các trọng số đã được huấn luyện trên ngữ liệu đã tách câu. Đầu ra của
mạng neural sau đó được sử dụng để xác đònh vai trò của dấu chấm câu trong
câu (là kết thúc câu hay không). Gọi f là giá trò của hàm sigmoid đầu ra của
mạng neural. Nếu f < t1 thì ta kết luận dấu chấm này không phải là chấm câu,
còn nếu f > t2 thì đây là dấu chấm câu (với 0 < t1 ≤ t2 < 1 ). Còn nếu t1 ≤ f ≤ t2
thì ta không thể kết luận đây có là dấu chấm câu hay không. Lúc này, ta có thể
nhờ đến tầng xử lý khác để quyết đònh, như mô hình dưới:
Cấu trúc tổng quát của mô hình tách câu sử dụng mạng neural như sau:
Hình : Tách câu bằng mạng neural.
Như vậy, hệ thống sẽ bao gồm 4 tầng xử lý là: tách token, xác đònh từ
loại, xây dựng mảng mô tả và tính giá trò kết quả đầu ra bằng mạng neural:
2.1 Bộ phận tách token
7
Token là một dãy tuần tự các ký tự trong bảng chữ cái, hoặc dãy tuần tự
các con số (một chữ số có chứa dấu chấm là dấu chấm thập phân được xem như
là một token), hoặc một ký tự không nằm trong bảng chữ cái (như dấu chấm
câu, dấu ngoặc kép, các ký tự mở rộng, …). Nhiệm vụ của bộ phận tách token là
chia văn bản đầu vào (là một dãy các ký tự) ra thành các token rời rạc, các
token này được dùng để làm đầu vào cho bộ phận tìm kiếm từ loại để nó tính
vector xác suất.

Như vậy, từ một văn bản đưa vào, đầu tiên bộ phận tách token sẽ dựa vào
các khoảng trống có trong văn bản để tách ra thành các chuỗi con, những chuỗi
con này có thể là một token theo đònh nghóa ở trên, cũng có thể là hợp của
nhiều token. Chính vì thế cho nên chúng ta không thể sử dụng nó ngay được mà
với mỗi chuỗi con như vậy, chúng ta phải xác đònh xem nó có đúng là token hay
không, nếu đúng thì sử dụng nó để đưa vào cho tầng sau, nếu không thì chúng
ta phải chia nhỏ nó ra thành các token trước khi đưa vào cho tầng sau. Ví dụ
chuỗi con “that’s” không phải là một token mà chúng ta phải chia nó ra thành 2
token là “that” và “is”. Đó là trường hợp người ta sử dụng lược (apostrophe).
Nếu trong văn bản có thể người ta đánh câu trước và câu sau liền nhau chẳng
hạn như: “… on the drive.Specify a minus…” thì khi đó chúng ta cũng phải chia
chuỗi “drive.Specify” thành 3 token là “drive”, “.” và “specify”.
Nhưng nếu có một chuỗi con như: “e.g” thì chúng ta không thể tách thành
3 token là “e”, “.” và “g” được mà phải giữ nguyên đó là một token. Làm thế
nào để nhận biết ra được điều này? Để đơn giản, bộ phận tách token có chứa
một danh sách các từ viết tắt thông dụng, nếu một chuỗi con nào đó thuộc một
8
trong các từ viết tắt này thì nó được xem là một token và chúng ta khỏi phải
tách nhỏ nó ra. Hơn nữa, các token sau khi được tách ra phải có ý nghóa, nghóa
là chúng phải có trong từ điển, lợi dụng đặc điểm này, chúng ta biết được khi
nào thì phải chia nhỏ thành nhiều token, khi nào thì không.
Ta có thể mô tả vắn tắt thuật toán tách văn bản thành các token như sau:
• Bước 1: Tách một chuỗi con từ văn bản đầu vào (nhờ vào khoảng trắng).
• Bước 2: Nếu chuỗi con không tồn tại (hết văn bản) thì kết thúc.
• Bước 3: Kiểm tra xem chuỗi con tồn tại trong từ điển hay không. Nếu có
trong từ điển thì ta được một token và chuyển đến bước 5.
• Bước 4: Tách chuỗi con thành n chuỗi con (n >= 1) nhờ vào các dấu câu
trong chuỗi con. Nếu tồn tại một chuỗi con có trong từ điển thì ta được n
token, nếu không thì ta được một token.
• Bước 5: Quay lại bước 1.

2.2 Bộ phận xác đònh từ loại
* Biễu diễn ngữ cảnh:
Ngữ cảnh xung quanh một dấu chấm câu có thể được biễu diễn bằng
nhiều cách khác nhau. Một cách đơn giản nhất và dễ nhận thấy nhất là sử dụng
những từ đơn ngay phía trước và phía sau dấu câu, chẳng hạn như trong ví dụ
sau, ta sử dụng ngữ cảnh gồm ba từ phía trước và ba từ phía sau dấu chấm câu:
at the plant. He had thought
Để xác đònh được dấu chấm câu trong ví dụ trên có thực sự là kết thúc
câu hay không, ta cần phải xem xét các từ trong ngữ cảnh đó có khả năng kết
thúc hay bắt đầu của một câu hay không. Cũng vậy, trong một ngôn ngữ nào đó
thì khi xem xét một dấu chấm câu, ta cũng phải xác đònh tất cả các từ thuộc ngữ
9
cảnh của dấu chấm câu đó và ta cần xác đònh rằng các từ đó có khả năng là kết
thúc hay bắt đầu của một câu hay không. Tuy nhiên để làm được việc này trong
mỗi ngôn ngữ thì sẽ mất rất nhiều thời gian và cần một lượng dữ liệu lưu trữ lớn
để chứa thông tin phục vụ cho việc xác đònh trên, mặc khác những thông tin này
lại không hữu ích cho việc xử lý ở những tầng tiếp theo của hệ thống như đã mô
tả ở trên.
Để giải quyết khó khăn trên, chúng ta đưa ra một cách tiếp cận khác là
xấp xỉ ngữ cảnh xung quanh một dấu chấm câu. Ngữ cảnh có thể được xấp xỉ
bằng việc sử dụng một từ loại duy nhất cho mỗi từ. Theo cách này thì ngữ cảnh
trong ví dụ trên được biễu diễn bằng một dãy tuần tự các từ loại như sau:
preposition article noun (trước dấu chấm)
pronoun verb verb (sau dấu chấm)
Việc yêu cầu xác đònh chỉ một từ loại duy nhất cho mỗi từ nảy sinh một
quá trình xử lý vòng, nguyên nhân là bởi vì phần lớn các bộ phận xác đònh từ
loại yêu cầu phải xác đònh trước ranh giới của từng câu trong văn bản, nghóa là
việc tách câu phải được làm xong trước khi xác đònh từ loại ! Trong khi ở đây,
ta mới bắt đầu thực hiện việc tác câu. Chính vì vậy yêu cầu xác đònh một từ
loại cho mỗi từ duy nhất là vô lý.

Để loại bỏ quá trình xử lý vòng này và loại bỏ sự cần thiết phải có một từ
loại duy nhất cho mỗi từ, mỗi từ trong ngữ cảnh có thể được xấp xỉ bằng xác
suất cao nhất trong tất cả các xác suất của từng từ loại có thể có của từ đó.
Chẳng hạn như từ một từ nào đó có các xác suất là: 10% xuất hiện như từ loại
A, 20% xuất hiện như từ loại B, 30% xuất hiện như từ loại C và 40% xuất hiện
10
như từ loại D thì ta sử dụng xác suất cao nhất là 40% (xác suất mà từ xuất hiện
như từ loại D). Vì vậy, mỗi từ trong ngữ cảnh sẽ được biễu diễn bằng một dãy
các từ loại có thể có của nó và kèm theo xác suất tương ứng của từ xuất hiện
như từ loại đó. Xét tiếp ví dụ ở trên, ngữ cảnh biễu diễn cho nó có dạng như
sau:
preposition(1.0) article(1.0) noun(0.8)/verb(0.2)
pronoun(1.0) verb(1.0) noun(0.1)/verb(0.9)
Ngữ cảnh này nói lên rằng “at” và “the” có xác suất xuất hiện như
preposition và article (theo thứ tự đó) là 1.0, “plant” có xác suất xuất hiện như
noun là 0.8, như verb là 0.2, tương tự như vậy “he” và “had” có xác suất xuất
hiện như pronoun và verb (theo thứ tự đó) là 1.0, “thought” có xác suất xuất
hiện như noun là 0.1, như verb là 0.9. Những xác suất này được tính dựa cơ sở
trên sự xuất hiện của các từ trong một văn bản đã được phân từ loại. Chính vì
vậy, nó phụ thuộc vào văn bản này. Những thông tin như vậy rất có ích vì nó
không những được dùng trong chương trình này, mà còn thường xuyên được sử
dụng bởi chương trình phân từ loại và chính vì vậy nó có thể đã có sẵn để ta có
thể sử dụng được và không cần lưu trước một lượng lớn. Chính vì lý do này, ta
chọn xấp xỉ ngữ cảnh trong hệ thống tách câu bằng cách sử dụng xác suất lớn
nhất.
* Từ điển dữ liệu:
Một thành phần quan trọng của hệ thống tách câu bằng mạng neural là từ
điển dữ liệu chứa tần suất xuất hiện của các từ loại của các từ. Những từ trong
tự điển bao gồm hình thái gốc và theo sau bằng một dãy các từ loại có thể có
11

cùng với tần suất xuất hiện tương ứng của nó. Bộ phận tìm kiếm từ loại của hệ
tiền xử lý có nhiệm vụ tìm một từ trong tự điển và nếu tìm thất thì nó trả về dãy
từ loại của từ đó cùng với tần suất xuất hiện tương ứng cho mỗi từ loại. Chẳng
hạn, với từ “well” trong tiếng Anh, bộ phận tìm kiếm sẽ trả về kết quả có dạng
như sau:
JJ/15 NN/18 QL/68 RB/634 UH/22 VB/5
Kết quả trên nói lên rằng từ “well” xuất hiện 15 lần như một adjective,
18 lần như một singular noun, 68 lần như một qualifier, 634 lần như một adverb,
22 lần như một interjection và 5 lần như một singular verb. Từ đây, ta có thể
tính được xác suất tương ứng của các từ loại của từ “well” như sau:
JJ = 15/(15+18+68+634+22+5) = 1.9%
NN = 18/(15+18+68+634+22+5) = 2.3%
QL = 68/(15+18+68+634+22+5) = 8.9%
RB = 634/(15+18+68+634+22+5) = 83.2%
UH = 22/(15+18+68+634+22+5) = 2.9%
VB = 5/(15+18+68+634+22+5) = 0.6%
Vì tự điển có giới hạn nên chắc chắn sẽ xảy ra trường hợp là một từ
không có trong từ điển. Để giải quyết trường hợp này, chúng ta đưa vào một tập
hợp các heuristics cho các từ không tìm thấy trong tự điển như sau:
Heuristics cho những từ không tìm thấy trong tự điển:
Nếu một từ không tìm thấy trong từ điển, hệ thống sẽ sử dụng các
heuristics sau để cố gắng tìm ra từ loại hợp lý nhất và gán cho từ đó. Các
heuristics đó bao gồm:
12
Những token chứa một con số (0 9) được giả đònh là chữ số
Bất kỳ token nào bắt đầu bằng một dấu chấm (.), chấm than (!), hoặc
chấm hỏi (?) thì được gán một nhãn: “dấu có khả năng kết thúc câu”. Phương
pháp này giải quyết được những dấu kết thúc câu dạng như “?!”.
Từ có chứa một dấu chấm (.) ở giữa được giả đònh là từ viết tắt (ví dụ:
e.g., Mr., Mrs., …)

Những từ viết hoa không phải luôn luôn là danh từ riêng (proper noun)
ngay cả khi nó xuất hiện ở một vò trí không phải là vò trí đầu câu (ví dụ từ
“American” thường được sử dụng như một tính từ). Những từ như vậy không có
trong tự điển được gán một xác suất là 0.9 cho danh từ riêng.
Những từ viết hoa xuất hiện trong tự điển nhưng không được xem như
danh từ riêng vẫn có thể là danh từ riêng. Do vậy những từ này được gán một
xác suất là 0.5 cho danh từ riêng.
Cuối cùng, từ sẽ được gán cho một danh sách tất cả các từ loại có thể có
của hệ thống với xác suất chia đều cho mỗi từ loại.
Những heuristics này có thể được thay đổi dễ dàng và thích hợp với từng
ngôn ngữ mới cụ thể. Chẳng hạn xác suất của một từ viết hoa là danh từ riêng
trong tiếng Anh cao hơn trong tiếng Đức.
2.3 Xây dựng mảng mô tả cho một từ
Với mỗi token trong văn bản đầu vào chúng ta cần xây dựng một vector
xác suất để số hóa việc mô tả token. Vector này còn được gọi là “mảng mô tả”.
Từ điển có thể chứa từ 70 đến 80 từ loại cho nên việc đầu tiên chúng ta cần làm
13
là ánh xạ những từ loại này thành những từ loại tổng quát hơn. Chẳng hạn
những từ loại như present tense verb, past participle và modal verb đều được ánh
xạ thành từ loại verb. Chính vì vậy, những từ loại trả về bởi bộ phận tìm kiếm
được ánh xạ thành 18 từ loại tổng quát hơn như sau:
Noun
Verb
Article
Modifier
Conjunction
Pronoun
Preposition
Proper noun
Number

Comma or semicolon
Left parentheses
Right parentheses
Non-punctuation character
Possessive
Colon or dash
Abbreviation
Sentence-ending punctuation
Others
Và khi đó tần suất cho mỗi từ loại được cộng lại từ các tần suất của các từ
loại ánh xạ về nó (ví dụ như khi 3 từ loại present tense verb, past participle và
14
modal verb được ánh xạ thành từ loại verb thì tần suất của từ loại verb sẽ bằng
tổng tần suất của các từ loại: present tense verb, past participle và modal verb).
Tần suất của 18 từ loại này sau đó được chuyển thành xác suất bằng cách chia
tần suất cho tổng tất cả các tần suất. Ngoài mười tám xác xuất này, mảng mô tả
của từ còn chứa thêm hai cờ cho biết từ đó có bắt đầu bằng một ký tự hoa hay
không và từ đó có đi sau một dấu chấm câu hay không. Như vậy có tất cả hai
mươi thành phần trong mỗi mảng mô tả cho một từ.
Ta có thể mô tả vắn tắt thuật toán xây dựng mảng mô tả cho một từ như
sau:
• Bước 1: Tìm kiếm từ trong từ điển.
• Bước 2: Kiểm tra xem từ có trong từ điển hay không. Nếu không có thì
chuyển sang bước 4.
• Bước 3: Ánh xạ các từ loại của từ tìm được thành 18 từ loại tổng quát.
Chuyển sang bước 5.
• Bước 4: Heuristics cho những từ không tìm thấy.
• Bước 5: Cộng thêm 2 cờ như đã trình bày ở trên và được mảng mô tả.
Tính kết quả bằng mạng neural
2.4 Kiến trúc của mạng

Đầu vào của mạng là k * 20 đơn vò nhập (input unit) với k là số từ của
ngữ cảnh xung quanh một dấu kết thúc câu (gọi là “ngữ cảnh - k”) và 20 là số
lượng phần tử của mỗi mảng mô tả cho một từ (như đã trình bày ở trên). Tầng
nhập (input) của mạng neural được kết nối hoàn toàn với một tầng ẩn bao gồm j
nút với một hàm “nén” là sigmoid. Những đơn vò ẩn này lại được kết nối hoàn
15
toàn với một tầng xuất (output) chỉ có một đơn vò xuất được dùng để xác đònh
kết quả.
Đầu ra của mạng là một giá trò đơn nằm trong khoảng từ 0 đến 1, nó biểu
thò cho khả năng kết thúc câu của dấu báo hiệu kết thúc câu xuất hiện trong
ngữ cảnh đó. Để xác đònh dấu chấm câu đó có thực sự là kết thúc câu hay
không, ta đònh nghóa 2 ngưỡng giá trò t
0
và t
1
dùng để xác đònh kết quả cho việc
xác đònh kết thúc câu với ý nghóa như sau: Nếu giá trò đầu ra nhỏ hơn t
0
, dấu
báo hiệu kết thúc câu không được xem là kết thúc câu còn nếu giá trò đầu ra lớn
hơn hay bằng t
1
, nó được xem là kết thúc câu và nếu giá trò đầu ra nằm trong
khoảng từ t
0
đến t
1
thì mạng vẫn chưa xác đònh được đó là kết thúc câu hay
không, nên nó sẽ được xử lý thêm ở những tầng sau đó. Rõ ràng là khi t
0

= t
1
thì
mọi dấu câu đều được xác đònh hoặc là kết thúc câu hoặc là không kết thúc
câu.
16
Hình: Kiến trúc mạng neural cho việc tách câu.
Để thực hiện việc tách câu cho một văn bản với “ngữ cảnh - k”, ta sử
dụng một cửa sổ có kích thước k+1 token và mảng mô tả của nó trượt trên văn
bản đầu vào, k/2 token trước và k/2 token sau của cửa sổ biểu thò cho ngữ cảnh
của token ở giữa. Nếu token ở giữa là một dấu câu có khả năng kết thúc câu
(dấu báo hiệu kết thúc câu) thì mảng mô tả cho các token của ngữ cảnh được
đưa vào mạng neural và kết quả đưa ra của mạng neural chỉ đònh rằng token ở
giữa có phải là kết thúc câu hay không nhờ vào hai ngưỡng t
0
và t
1
đã nói ở
trên.
• Huấn luyện mạng:
17
Dữ liệu huấn luyện bao gồm 2 văn bản mà ranh giới của tất cả các câu ở
trong đó đã được đánh dấu. Văn bản thứ nhất, được gọi là văn bản huấn luyện,
chứa khoảng từ 250 đến 500 trường hợp các dấu chấm câu mà ta chưa biết là nó
có kết thúc câu hay không (tức là “dấu chấm câu nhập nhằng”). Các trọng của
mạng neural được huấn luyện trên văn bản huấn luyện bằng cách sử dụng thuật
toán lan truyền ngược (backpropagation algorithm). Văn bản thứ 2 được dùng
cho việc huấn luyện được gọi là văn bản giám sát, nó bao gồm khoảng từ 125
đến 250 trường hợp dấu chấm câu nhập nhằng được trích ra từ văn bản huấn
luyện. Việc huấn luyện không thực hiện trên văn bản này mà nó được dùng để

tăng tính tổng quát của việc huấn luyện. Khi giá trò của tổng lỗi tính trên văn
bản giám sát đạt được một giá trò nhỏ nhất thì quá trình huấn luyện được dừng.
Sau đó việc kiểm tra được thực hiện trên một văn bản độc lập với văn bản huấn
luyện và văn bản giám sát.
2.5 Kết quả
Để đánh giả kết quả của bộ tiền xử lý, tác giả đã cài đặt bộ phận nói trên
vào trong hệ thống dòch tự động Anh-Việt, và đã đạt được kết quả sau:
Đầu tiên tác giả xây dựng một văn bản tiếng Anh thông thường dùng để
huấn luyện gồm có 573 trường hợp có dấu hết câu nhập nhằng và một văn bản
giám sát gồm có 258 trường hợp dấu hết câu nhập nhằng dùng để huấn luyện.
Sau đó tác giả tạo một văn bản với các câu đã được đánh dấu hết câu
sẵn, dùng để kiểm tra kết quả đạt được của chương trình. Văn bản này gồm có
18
27294 trường hợp dấu hết câu nhập nhằng mà trong đó có khoảng 75% trường
hợp thực sự là kết thúc câu.
• Độ rộng ngữ cảnh
Để xác đònh kích thước ngữ cảnh tối ưu cho việc tách câu, tác giả đã sử
dụng nhiều kích thước khác nhau của ngữ cảnh và có được kết quả sau:
Bảng : Xác đònh kích thước ngữ cảnh tối ưu.
Lỗi trên tập huấn luyện là giá trò nhỏ nhất của nửa tổng bình phương của
tất cả các lỗi của các mẫu trong tập huấn luyện. Lỗi trên tập giám sát cũng là
giá trò có ý nghóa tương tự như lỗi trên tập huấn luyện nhưng là lỗi của tất cả
các mẫu trong tập giám sát. Hai giá trò lỗi này dùng để xác đònh khi nào thì
mạng ngừng học từ dữ liệu huấn luyện, và cho được kết quả tốt nhất trong việc
tách câu trong các văn bản độc lập.
Từ dữ liệu thống kê được như trên, tác giả kết luận rằng kích thước của
ngữ cảnh là 6 token (3 token phía trước và 3 token phía sau) thì cho ra một kết
quả tốt nhất.
• Số nút tầng ẩn:
Để xác đònh số nút tối ưu của tầng ẩn cho việc tách câu, tác giả đã thử

kiểm tra nhiều giá trò khác nhau của kích thước tầng ẩn và có được kết quả
19
thống kê cho trong bảng dưới đây (Các khái niệm giống như trong phần Độ
rộng ngữ cảnh).
Bảng: Xác đònh số nút tối ưu.
• Nguyên nhân gây ra lỗi:
Như đã trình bày trong phần Độ rộng ngữ cảnh và Số nút tầng ẩn, ta
thấy rằng kết quả tốt nhất đạt được khi độ rộng ngữ cảnh là 6 token và số nút
tầng ẩn là 2 nút. Với các tham số này thì trong số 27294 trường hợp, mạng đưa
ra 409 trường hợp bò lỗi, tính ra theo phần trăm thì nó đạt được độ chính xác
khoảng 98.5%. Những lỗi này rơi vào một trong hai trường hợp sau:
- Lỗi thuận: Là lỗi mà một dấu chấm câu không phải là kết thúc câu nhưng nó
được đánh dấu là kết thúc câu
- Lỗi nghòch: Là lỗi mà một dấu chấm câu là kết thúc câu nhưng nó không được
đánh dấu là kết thúc câu.
Bảng sau đây cho biết kết quả thống kê được về số lỗi của hai loại trên:
20
Bảng: Số lỗi các loại.
Kết quả kiểm tra trên 27294 trường hợp, t0=t1=0.5, ngữ cảnh - 6, 2 nút ở
tầng ẩn.
Những lỗi này có thể được chia nhỏ thành những nhóm sau đây:
- 37.6% lỗi thuận tại một từ viết tắt ở giữa một tiêu đề hoặc một tên,
thường là vì từ đi theo sau dấu chấm câu cũng có mặt trong từ điển với một từ
loại khác (Mr. Gray, Col. North, Mr. Major, Dr. Carpenter, Mr. Sharp).
- 22.5% lỗi nghòch vì một từ viết tắt nằm tại vò trí cuối của câu như: Inc.,
Co., Corp., hay U.S. Khi những từ này nằm tại giữa câu thì mạng không mẵc
phải lỗi này.
- 11.0% lỗi thuận hoặc nghòch khi một dãy tuần tự các ký tự bao gồm dấu
chấm và dấu trích dẫn. Ngay cả khi dãy này xuất hiện ở giữa hay cuối của câu
thì mạng cũng bò lỗi.

- 9.2% lỗi nghòch nguyên nhân là một từ viết tắt đi theo sau là dấu trích
dẫn.
- 9.8% lỗi thuận hoặc nghòch nguyên nhân là do dấu “ ” xuất hiện tại
cuối hay giữa câu.
- 9.9% lỗi chung chung bao gồm những ký tự lạ (-, *, ), những câu
không đúng ngữ pháp, sai chính tả, và những câu chú thích.
21
Hai dạng lỗi đầu chỉ ra rằng hệ thống tách câu gặp nhiều khó khăn trong
việc nhận dạng chức năng của những từ viết tắt. Tác giả đã cố gắng xử lý
trường hợp này bằng cách chia từ viết tắt trong tự điển ra thành 2 nhóm: Nhóm
“từ viết tắt tiêu đề” như Mr. và Dr. phần lớn không bao giờ xuất hiện tại cuối
câu vànhóm “những từ viết tắt còn lại”. Tuy nhiên, với sự sắp xếp mới này,
thời gian huấn luyện tăng lên đáng kể mà chỉ loại bỏ được 12 trường hợp lỗi
trong tổng số 409 trường hợp lỗi đã nêu ở trên (2.9%). Hai dạng lỗi thứ 3 và thứ
4 minh họa cho sự khó khăn trong việc phân biệt một câu con ở bên trong một
câu. Vấn đề này có thể được xử lý bằng cách tạo một sự phân loại mới cho
những dấu chấm câu. Tương tự, các dạng lỗi còn lại cũng có thểõ được giải
quyết bằng cách tạo ra một sự phân loại mới cho những dấu chấm câu, và sau
đó cố gắng xác đònh vai trò của những dấu chấm câu không phụ thuộc vào giới
hạn của câu.
• Các ngưỡng giá trò khác nhau:
Như đã mô tả trong phần trước, giá trò đầu ra của mạng neural được sử
dụng để xác đònh vai trò của dấu chấm câu (kết thúc hay không kết thúc) dựa
cơ sở trên giá trò của nó và hai ngưỡng, khi mà giá trò đầu ra rơi trong khoảng
giữa hai ngưỡng thì nó biểu thò rằng dấu chấm câu đó vẫn chưa xác đònh được là
kết thúc câu hay không. Trường hợp này được biểu thò bằng cột “Không xác
đònh” trong bảng sau đây, nó cung cấp kết quả thí nghiệm của hệ thống với các
ngưỡng khác nhau. Khi 2 ngưỡng t
0
và t

1
đều có giá trò là 0.5 thì không có
trường hợp nào rơi vào cột “Không xác đònh”.
22
Bảng : Kết quả với các mức ngưỡng khác nhau.
2.6 Kết hợp bộ phân tích cú pháp
Trong trường hợp không xác đònh, hệ sẽ kết hợp thêm bộ phân tích cú
pháp để xác đònh tính hợp cú pháp cho từng phần ở hai bên dấu chấm. Bộ phân
tích cú pháp dùng ở đây dùng giải thuật Earley với bộ luật đơn giản, chủ yếu là
phân tích câu đơn. Ví dụ:
1- It was due Friday 5 p.m. Saturday would be too late.
2- She has an appointment at 5 p.m. Saturday to get her car fixed.
Nếu cả hai phần đều hợp cú pháp, thì dấu chấm đó đúng là dấu chấm câu
(trường hợp 1). Ngược lại, không phải là dấu chấm câu (trường hợp 2). Do đó tỉ
lệ câu nhận diện đúng sẽ được tăng lên. Kết quả được thống kê như sau:
23
Bảng: Kết hợp bộ phân tích cú pháp.
2.7 Nhận xét
Một điểm mạnh của phương pháp tiếp cận theo mạng neural để tách câu
như đã trình bày ở trên là nó có thể tương thích được với các loại văn bản không
có một thể thức chuẩn như văn bản chỉ toàn là chữ hoa hoặc văn bản chỉ toàn là
chữ thường. Để minh họa cho việc này, tác giả đã chuyển văn bản huấn luyện,
văn bản giám sát và văn bản kiểm tra thành dạng chỉ toàn là chữ thường. Sau
khi huấn luyện lại mạng với dạng chữ thường, hệ thống tách câu ở trên cho
được một kết quả là 96.2%. Tương tự như vậy, sau khi chuyển các văn bản trên
thành dạng chữ hoa, hệ thống cho ra kết quả là 97.4%.
24
KẾT LUẬN
Cách tách câu bằng mạng NEURAL do D.Palmer đưa ra với độ chính xác
rất cao (cỡ 99,5 %) với thông tin đầu vào là những từ xung quanh dấu báo hiệu

kết thúc câu (gọi là ngữ cảnh của dấu báo hiệu đó) và đầu ra là một giá trò cho
phép xác đònh đó có phải là kết thúc câu hay không.
Ngoài ra nó có thể tương thích được với các loại văn bản không có một
thể thức chuẩn như văn bản chỉ toàn là chữ hoa hoặc văn bản chỉ toàn là chữ
thường.
25

×