Tải bản đầy đủ (.doc) (25 trang)

Tóm tắt (nhận dạng văn bản một số ngôn ngữ la tinh)

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 (535.96 KB, 25 trang )

ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
--------------

LÊ MẠNH ĐOAN

NHẬN DẠNG VĂN BẢN MỘT SỐ
NGÔN NGỮ LA TINH

Chuyên nghành : Khoa học máy tính
Mã số : 60 48 01 01

TÓM TẮT LUẬN VĂN THẠC SĨ : KHOA HỌC MÁY TÍNH

THÁI NGUYÊN, NĂM 2017


Công trình được hoàn thành tại : Trường Đại học Công nghệ Thông tin và
Truyền thông - Đại học Thái Nguyên

Người hướng dẫn khoa học: TS. Hồ Văn Canh

Phản biện 1:

Phản biện 2:

Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn họp tại:
Trường Đại học Công nghệ Thông tin và Truyền thông - Đại học Thái Nguyên
Vào hồi …… giờ ngày ….. tháng ….. năm 2017

Có thể tìm hiểu luận văn tại trung tâm học liệu Đại học Thái Nguyên


Và thư viện Trường : Trường Đại học Công nghệ Thông tin và Truyền thông


MỞ ĐẦU
Nhận dạng là một lý thuyết toán học có nhiều ứng dụng trong thực tiễn, như nhận
dạng tiếng nói, nhận dạng hình ảnh, nhận dạng chữ ký, phân loại ngôn ngữ , xây dựng
tiêu chuẩn bản rõ ứng dụng trong phân tích các bản mã v.v..Thông qua mạng Internet,
tôi được biết trên thế giới cũng như trong nước đã có nhiều nhà nghiên cứu về vấn đề
này và đã có những phần mềm áp dụng cho nhiều lĩnh vực khác nhau: phần mềm nhận
dạng tiếng việt, phần mềm nhận dạng vân tay, phần mềm kiểm soát E-mail trên hệ
thống Internet…
Nhận dạng chữ là bài toán rất hữu ích, quen thuộc được ứng dụng nhiều trong thực
tế đặc biệt là trong lĩnh vực nhận dạng và phân loại văn bản vì thế đã thu hút nhiều tác
giả quan tâm nghiên cứu bằng các phương pháp nhận dạng khác nhau: logic mờ, giải
thuật di truyền, mô hình xác suất thống kê, mô hình mạng nơ ron. Đã có rất nhiều công
trình nghiên cứu thực hiện việc nhận dạng, phân loại văn bản La Tinh đã đạt tỷ lệ chính
xác cao, tuy nhiên các ứng dụng đó cũng chưa thể đáp ứng hoàn toàn nhu cầu của người
sử dụng nên ngày nay người ta vẫn tiếp tục nghiên cứu những phương pháp nhận dạng
tốt hơn hướng đến dùng cho các thiết bị di động, và các bài toán thời gian thực. Sau khi
tìm hiểu về sự tiến bộ của công nghệ nhận dạng chữ La Tinh cũng như các tính năng cơ
bản của các phần mềm nhận dạng chữ, được sự tư vấn của giáo viên hướng dẫn, tôi đã
lựa chọn được một hướng nghiên cứu thiết thực với đề tài: "Nhận dạng văn bản một số
ngôn ngữ La Tinh".
Trong khuôn khổ của luận văn, tôi tập trung nghiên cứu, giải quyết bài toán nhận
dạng ngôn ngữ (Recognition of language) tự nhiên dựa vào phân hoạch không gian
(nhận dạng theo thống kê toán học), trong đó một lớp ngôn ngữ tiêu biểu được nghiên
cứu đó là ngôn ngữ La Tinh như tiếng Anh, tiếng Pháp, v.v.
Việc nghiên cứu này là quan trọng và cần thiết, kết quả của nghiên cứu có khả
năng mở rộng ứng dụng trong việc xây dựng chương trình kiểm soát E-mail đặc biệt là
chương trình phân tích bản mã tự động. Cả hai chương trình này đang rất cần và thiếu

trong vấn đề an ninh quốc gia; trong khoa học, giúp ta nắm được kiến thức tốt và dễ
dàng hơn trong việc chuyển sang nghiên cứu các vấn đề khác trong lĩnh vực nhận dạng.
 Nội dung của luận văn và các vấn đề cần giải quyết
1. Nghiên cứu quá trình Markov hữu hạn trạng thái.
2. Nghiên cứu và xây dựng mô hình Markov ứng với các ngôn ngữ tự nhiên như:
Tiếng Anh, Tiếng Pháp, Tiếng Đức, Tiếng Tây Ban Nha.

1


3. Giải bài toán phân lớp các đối tượng cho trường hợp số lớp đã biết trước và số lớp
chưa biết.
4. Nghiên cứu xây dựng các ước lượng tham số của xích Markov
5. Ứng dụng bài toán kiểm định giả thiết thống kê (testing of statistic hypothesis) để
giải quyết bài toán nhận dạng ngôn ngữ.
6. Lập trình thử nghiệm.


Phương pháp nghiên cứu

Phương pháp cơ bản là nghiên cứu ứng dụng các phương pháp toán học, nhận dạng và
xử lý ngôn ngữ, nghiên cứu khảo sát lý thuyết và xây dựng các thuật toán, lập trình
kiểm thử thuật toán và đánh giá. Cụ thể:
- Tìm hiểu và cập nhật các kiến thức và phương pháp cơ bản về nhận dạng ngôn ngữ tự
nhiên, trí tuệ nhân tạo, khảo sát lý thuyết các mô hình, công cụ toán học, thiết kế và xây
dựng thuật toán, kỹ thuật tổ chức dữ liệu và ngôn ngữ lập trình.
- Tìm đọc các bài báo, các công trình nghiên cứu khoa học liên quan đến chủ đề nghiên
cứu trong nước và trên thế giới. Cụ thể là các tài liệu kỹ thuật thống kê toán học các quá
trình Markov; các quy luật ngôn ngữ như là một quá trình ngẫu nhiên dừng, không hậu
quả; các kỹ thuật nhận dạng ngôn ngữ tự nhiên. Hình thành được tổng quan tương đối

đầy đủ về tình hình nghiên cứu liên quan đến chủ đề hiện nay trên thế giới.
- Lập trình cài đặt một số kỹ thuật nhận dạng ngôn ngữ La Tinh và đánh giá kết quả.
 Cấu trúc luận văn được chia thành 3 chương:
Chương 1: " Tổng quan về nhận dạng ", trình bày tổng quan các hướng nghiên cứu
hiện nay về nhận dạng.
Chương 2: " Kỹ thuật nhận dạng bằng thống kê ", trình bày các ứng dụng kỹ thuật
thống kê Toán học để nhận dạng các ngôn ngữ tự nhiên và tìm hiểu đặc trưng
của một số ngôn ngữ tự nhiên tiêu biểu.
Chương 3: " Thực Nghiệm ", trình bày thuật toán nhận dạng văn bản La Tinh và đưa ra
kết quả với một số mẫu ngôn ngữ điển hình.

2


CHƯƠNG I
TỔNG QUAN VỀ NHẬN DẠNG
1.1. Tổng quan về nhận dạng
Nhận dạng là quá trình phân loại các đối tượng được biểu diễn theo một mô hình
nào đó và gán cho chúng vào một lớp (gán cho đối tượng một tên gọi) dựa theo những
quy luật và các mẫu chuẩn. Quá trình nhận dạng dựa vào những mẫu học biết trước gọi
là nhận dạng có giám sát hay học có giám sát (supervised learning); trong trường hợp
ngược lại là nhận dạng không có giám sát hay học không có giám sát (unsupervised
learning).
1.1.1. Không gian biểu diễn đối tượng, không gian diễn dịch
- Không gian biểu diễn đối tượng:
Các đối tượng khi quan sát hay thu thập được, thường được biểu diễn bởi tập các
đặc trưng hay đặc tính. Giả sử đối tượng X được biểu diễn bởi n thành phần (n đặc
trưng): X={x1,x2,...,xn}; mỗi xi biểu diễn một đặc tính. Không gian biểu diễn đối tượng
thường gọi tắt là không gian đối tượng X và được ký hiệu là: X ={X1,X2,...,Xn}
trong đó mỗi Xi biểu diễn một đối tượng. Không gian này có thể là vô hạn. Để tiện xem

xét chúng ta chỉ xét tập X là hữu hạn.
- Không gian diễn dịch:
Không gian diễn dịch là tập các tên gọi của đối tượng. Kết thúc quá trình nhận
dạng ta xác định được tên gọi cho các đối tượng trong tập không gian đối tượng hay nói
là đã nhận dạng được đối tượng. Một cách hình thức gọi Ω là tập tên đối tượng:
Ω={w1,w2,...,wk} với wi, i =1,2,...,k là tên các đối tượng
1.1.2. Mô hình và bản chất của quá trình nhận dạng
Việc chọn lựa một quá trình nhận dạng có liên quan mật thiết đến kiểu mô tả mà
người ta sử dụng để đặc tả đối tượng. Trong nhận dạng, người ta phân chia làm hai họ
lớn
- Họ mô tả theo tham số;
- Họ mô tả theo cấu trúc.

3


Cách mô tả được lựa chọn sẽ xác định mô hình của đối tượng. Như vậy, chúng ta sẽ có
hai loại mô hình: mô hình theo tham số và mô hình cấu trúc.
Quá trình nhận dạng gồm 3 giai đoạn chính :
- Lựa chọn mô hình biểu diễn đối tượng,
- Lựa chọn luật ra quyết định (phương pháp nhận dạng) và suy diễn quá trình
học.
- Học nhận dạng.
1.2. Nhận dạng dựa trên phân hoạch không gian
1.2.1. Phân hoạch không gian
Giả sử không gian đối tượng X được định nghĩa: X={Xi,i=1,2,...,m}, Xi là một
vectơ. Người ta nói P là một phân hoạch của không gian X thành các lớp Ci, Ci ⊂X nếu:
Ci

C = Φ với i ≠ j và


∩ j

C =X

∪ i

1.2.2. Hàm phân lớp hay hàm ra quyết định
Để phân đối tượng vào các lớp, ta phải xác định số lớp và ranh giới giữa các lớp
đó. Hàm phân lớp hay hàm phân biệt là một công cụ rất quan trọng. Gọi {g} là lớp các
hàm phân lớp. Lớp hàm này được định nghĩa như sau:
nếu ∀ i ≠ k, gk(X)>gi(X) thì ta quyết định X∈lớp k.
1.2.3. Nhận dạng thống kê
Nếu các đối tượng nhận dạng tuân theo luật phân bố Gauss, mà hàm mật độ xác
suất cho bởi:
f ( x) =

 ( x − m) 2 
1
exp −

2σ 2 
2πσ


∀x

người ta có dùng phương pháp ra quyết định dựa vào lý thuyết Bayes. Lý thuyết Bayes
thuộc loại lý thuyết thống kê nên phương pháp nhận dạng dựa trên lý thuyết Bayes có
tên là phương pháp thống kê

1.2.4. Một số thuật toán nhận dạng tiêu biểu trong tự học
Thực tế có nhiều thuật toán nhận dạng học không có thầy. Ở đây, chúng ta xem xét
ba thuật toán hay được sử dụng: Thuật toán nhận dạng dựa vào khoảng cách lớn nhất,
4


thuật toán K-trung bình (K mean) và thuật toán ISODATA. Các thuật toán này có bước
tiếp nối, cải tiến từ thuật toán này qua thuật toán khác.
1.3. Nhận dạng theo cấu trúc
1.3.1. Biểu diễn định tính
Ngoài cách biểu diễn theo định lượng như đã mô tả ở trên, tồn tại nhiều kiểu đối
tượng mang tính định tính. Trong cách biểu diễn này, người ta quan tâm đến các dạng
và mối quan hệ giữa chúng. Giả thiết rằng mỗi đối tượng được biểu diễn bởi một dãy ký
tự. Các đặc tính biểu diễn bởi cùng một số ký tự. Phương pháp nhận dạng ở đây là nhận
dạng lôgic, dựa vào hàm phân biệt là hàm Bool. Cách nhận dạng là nhận dạng các từ có
cùng độ dài.
1.3.2. Phương pháp ra quyết định dựa vào cấu trúc
Các đối tượng cần nhận dạng theo phương pháp này được biểu diễn bởi một câu trong
ngôn ngữ L(G). Khi đó thao tác phân lớp chính là xem xét một đối tượng có thuộc văn
phạm L(G) không? Nói cách khác nó được sinh ra bởi các luật của văn phạm G không?
Như vậy sự phân lớp là theo cách tiếp cận cấu trúc đòi hỏi phải xác định:
- Tập Vt chung cho mọi đối tượng.
- Các quy tắc sinh V để sản sinh ra một câu và chúng khác nhau đối với mỗi lớp.
- Quá trình học với các câu biểu diễn các đối tượng mẫu l nhằm xác định văn
phạm G.
- Quá trình ra quyết định: Xác định một đối tượng X được biểu diễn một câu l x.
Nếu lx nhận biết bởi ngôn ngữ L(Gx) thì ta nói rằng X ∋ Ck.
1.4. Nhận dạng bằng mạng nơron
1.4.1. Bộ não và Nơron sinh học
Các nhà nghiên cứu sinh học về bộ não cho ta thấy rằng các nơron là đơn vị cơ sở đảm

nhiệm những chức năng xử lý nhất định trong hệ thần kinh, bao gồm não, tủy sống, các
dây thần kinh. Mỗi nơron có phần thân với nhân bên trong một đầu thần kinh ra và một
hệ thống dạng cây các dây thần kinh vào. Đường kính của nhân tế bào thường chỉ là
5


10-4m. Trục dây thần kinh ra cũng có thể phân nhánh theo dạng cây để nối các dây thần
kinh vào hoặc trực tiếp với nhân tế bào các nơron khác thông qua các khớp nối
1.4.2. Mô hình mạng nơron
Mạng nơron nhân tạo bao gồm các nút được nối với nhau bởi các liên kết nơron.
Mỗi liên kết kèm theo một trọng số nào đó, đặc trưng cho hoạt tính kích hoạt/ức chế
giữa các nơron. Có thể xem các trọng số là phương tiện để lưu giữ thông tin dài hạn
trong mạng nơron và nhiệm vụ của quá trình huấn luyện mạng là cập nhật các trọng số
khi có thêm các thông tin về các mẫu mô phỏng hoàn toàn phù hợp môi trường đang
xem xét.Trong mạng, một số nơron được nối với môi trường bên ngoài như các đầu ra,
đầu vào.
1.5. Kết luận
Có rất nhiều vấn đề nhận dạng khác mà chúng ta chưa đề cập đến như nhận dạng tín
hiệu, nhận dạng tiếng nói, v.v. Các vấn đề này nằm trong lý thuyết nhận dạng. Mục đích của
chương này nhằm cung cấp một cách nhìn tổng quan về nhận dạng. Các hướng nghiên cứu
khác nhau hiện nay trên thế giới về lĩnh vực nhận dạng nói chung.

6


CHƯƠNG II
KỸ THUẬT NHẬN DẠNG BẰNG THỐNG KÊ
Kỹ thuật nhận dạng bằng thống kê có nhiều ý nghĩa trong nghiên cứu và thực tiễn.
Nó không những được ứng dụng trong nhận dạng ngôn ngữ mà còn đối với hình ảnh,
âm thanh, tiếng nói v.v... Trong phạm vi luận văn này, tôi trình bày một ứng dụng quan

trọng. Đó là ứng dụng kỹ thuật thống kê để nhận dạng các ngôn ngữ tự nhiên (lớp văn
bản la tinh). Đây là ứng dụng có ý nghĩa trong thực tiễn, đặc biệt đối với an ninh quốc
phòng.
Ưu việt chính của phương pháp thống kê là nó rất hiển nhiên, đơn giản và không tốn
kém nhiều cho việc đầu tư công nghệ phần cứng. Sau đây là nội dung mà tôi đã tìm
hiểu.
2.1. Bài toán
Giả sử chúng ta có một phân hoạch A 1, A2, . . ., Ak trong không gian Ơclide n chiều
Rn .

Điều này có nghĩa là A1, A2, . . ., Ak (k≥2) thỏa mãn 3 điều kiện sau đây:
i. A i ≠ φ

với ∀ i = 1, 2, . ., k

ii. A i ∩ A j = φ

với ∀i, j ; i≠j

(1)

k

iii. ∪ A i = R n
i =1
Như vậy rõ ràng là ứng với mỗi x ∈ R n , có tồn tại một i (i=1,2,..,k) sao cho x ∈ A i
Bây giờ giả sử rằng: Chúng ta có một vectơ x ∈ R n , thực tế thì x ∈ A i nhưng ta lại
gán cho x ∈ A j với i≠j, ta nói rằng, trong trường hợp này chúng ta đã mắc một sai lầm
(hay một tổn thất). Có nhiều cách phân hoạch không gian R n thành k tập con A1,
A2, . . ., Ak sao cho thỏa mãn 3 điều kiện vừa nêu ở trên. Vấn đề đặt ra là hãy xây dựng

một phân hoạch sao cho về trung bình giá trị tổn thất trong quyết định là bé nhất. Để
giải quyết bài toán này bằng lý thuyết thống kê toán học, chúng ta chia bài toán thành
hai trường hợp.Trường hợp 1 (nhận dạng có giám sát) và trường hợp 2 (nhận dạng
không có giám sát).
7


2.2. Nhận dạng có giám sát
Giả sử ta có một phân hoạch A 1, A2, . . ., Ak (k≥2) trong không gian Ơclide n chiều
Rn .

Tức là giả sử A1, A2, . . ., Ak thỏa mãn 3 điều kiện ở (1). Giả sử X ∈R n là một

vectơ tùy ý với hàm mật độ Pi ( x ) khi X ∈ A i (i = 1,2,.., k ) [2]
Để việc tìm hiểu của ta có ý nghĩa, giả thiết rằng P i(.) liên tục tuyệt đối đối với độ
đo µ nào đó. Độ đo này là σ _ hữu hạn, tức là nó phải thỏa mãn điều kiện sau đây: Giả
sử A là một σ _ đại số nhỏ nhất đối với R n . Khi đó, nếu với mỗi A∈A
mà µ (A) = 0 ⇒ Pi (A) = 0
2.3. Nhận dạng không có giám sát
Trong thực hành, nhiều trường hợp chúng ta chưa biết trước được mẫu X được lấy
từ tập hợp có phân bố xác suất đã biết nào. Trong trường hợp này chúng ta không thể sử
dụng lý thuyết trên. Vậy làm thế nào để phân hoạch tập hợp đã cho thành k lớp sao cho
tổn thất của quyết định là tối ưu? Trường hợp này, phức tạp hơn trường hợp nhận dạng
có giám sát (supervised learning).
2.3.1. Đặt bài toán
Giả sử G là một tập hợp hữu hạn và khác rỗng,
m
G={X1, X2,.., Xn} n≥2 trong đó X i ∈ R , i = 1,2,.., n

Hãy phân hoạch G thành k tập con G 1, G2, .. ,Gk. Nghĩa là hãy chia G thành k phần

G1, G2, .. ,Gk thỏa mãn các điều kiện:
1) Gi ≠ φ i=1,2,..,k
2) Gi ∩ Gj = φ i≠j, i,j=1,2,..,k
k

3) ∪ G i = G
i =1
sao cho tổn thất trong phân lớp là bé nhất.
Ở đây có hai trường hợp xảy ra
i) Trường hợp số lớp k cho trước
ii) Trường hợp số lớp k chưa biết

8


2.3.2. Giải bài toán trường hợp cho trước số k
Tư tưởng của phương pháp giải là tìm cách ghép các đối tượng có quan hệ gần
nhau nhất vào chung một lớp. Như vậy để giải quyết bài toán chúng ta cần xây dựng độ
đo của sự gần gũi.
2.3.3. Trường hợp số k chưa cho biết trước
Trong trường hợp này, chúng ta xây dựng thuật toán xác định số k. Sau khi tìm
được số k, bài toán trở về trường hợp 2.3.2
2.4. Mô hình xích Markov
Mô hình xích Markov (gọi tắt là Markov) hay xích ngôn ngữ với giả định Markov là
một dạng mô hình xác suất thống kê nhận dạng mẫu được áp dụng phổ biến trong xử lý
ngôn ngữ. Mô hình xích Markov của ngôn ngữ là mô hình hữu hạn trạng thái có tính
dừng (ergodic).
Mô hình Markov của ngôn ngữ được định nghĩa bằng tập 5 tham số
(m, A, {Yt}, P, r).
Trong đó

m∈Z+: là số các trạng thái mô hình Markov có thể nhận
A={a1, a2,..,am}: là không gian các trạng thái.
{Yt} t∈T: là quá trình ngẫu nhiên dừng. T⊂Z={0, ±1, ±}
P: là ma trận các xác suất chuyển trạng thái
r: là cấp của xích Markov.
2.5. Đặc trưng của ngôn ngữ tự nhiên
Tần số bộ đôi móc xích của Tiếng Anh, Tiếng Pháp, Tiếng Đức, Tiếng Tây Ban Nha.
Tần số bộ đôi móc xích là số lần xuất hiện của các cặp ký tự liên tiếp nhau trong
đó ký tự sau của cặp đôi trước là ký tự trước của cặp đôi sau.

9


Bảng 2.1
Bảng tần số bộ đôi móc xích của Tiếng Anh (tính trên 10.000 ký tự)
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O

P
Q
R
S
T
U
V
W
X
Y
Z

A
3
4
54
27
75
9
20
69
30
0
2
43
54
46
17
24
0

73
63
131
5
16
16
6
8
7

B
24
2
0
11
30
2
0
1
33
0
0
1
3
1
5
0
0
0
9

4
1
0
0
0
4
0

C
39
0
10
9
73
8
3
4
58
0
1
13
1
31
16
2
0
23
27
11
9

0
0
2
11
0

D
24
0
0
4
80
1
2
1
30
0
0
18
0
94
11
0
0
13
7
4
12
0
0

0
2
0

E
0
36
68
72
40
28
38
164
41
1
12
85
39
65
11
46
0
147
99
136
6
74
28
0
6

10

F
11
0
0
7
31
26
3
1
18
0
1
3
1
34
74
1
0
5
7
9
0
0
0
0
3
0


G
13
0
0
0
33
0
3
0
11
0
0
0
0
76
15
0
0
9
1
2
7
0
0
0
2
0

H I
1 16

0 2
52 15
0 48
7 57
1 30
13 17
0 47
0 0
0 0
0 5
3 90
0 18
1 54
9 9
4 15
0 0
2 52
14 84
215 142
0 4
0 55
23 30
0 1
3 13
0 1

J
2
1
0

0
2
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0

K
9
0
3
0
1

0
0
0
3
0
0
1
0
6
3
0
0
6
3
1
1
0
0
0
0
0

L
134
21
23
4
79
1
5

0
25
0
1
57
1
8
49
32
0
10
5
5
22
0
0
0
9
0

M
34
0
0
8
33
3
4
0
17

0
0
3
10
4
43
5
0
40
7
4
5
0
2
1
4
0

10

N O
151 3
0 7
0 70
2 15
121 31
2 65
5 9
9 24
218 64

0 3
3 4
1 39
1 23
10 39
116 10
0 97
0 0
17 65
7 48
3 125
27 0
0 4
3 14
0 0
3 24
0 0

P
20
3
0
13
50
10
1
1
14
0
0

13
40
8
44
9
0
10
45
9
11
0
0
4
19
0

Q
0
0
0
0
4
0
0
0
0
0
0
0
0

0
0
0
0
0
0
0
0
0
0
0
0
0

R S T
82 44 149
34 6 1
15 1 18
5 16 34
155 178 64
12 5 22
14 6 11
9 2 9
20 82 94
0 0 0
0 4 3
2 47 32
0 6 5
2 48 154
198 25 24

40 9 11
0 0 0
8 28 112
11 47 144
27 34 28
41 59 35
0 0 0
0 5 4
0 0 6
1 13 16
0 1 0

U
5
6
19
11
14
9
3
1
1
2
0
9
13
3
62
24
4

3
12
43
0
0
0
0
1
0

V
21
0
0
10
33
0
0
0
27
0
0
3
0
3
23
0
0
25
3

0
0
0
0
0
1
0

W
4
0
2
6
34
1
5
1
0
0
0
4
5
3
17
1
0
3
21
14
0

0
2
1
3
0

X
0
0
0
0
19
0
0
0
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0

0
0
0

Y
12
8
1
1
8
0
10
5
0
0
1
24
7
9
1
3
0
25
2
29
0
0
0
0
0

0

Z
1
0
0
0
0
0
0
0
17
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0



Bảng 2.2
Bảng tần số bộ đôi móc xích của Tiếng Pháp (tính trên 10.000 ký tự)
A
B
C
D
E
F
G
H
I
J
L
M
N
O
P
Q
R
S
T
U
V
X
Y
Z

A
3

12
18
35
53
23
11
12
14
2
101
55
30

B C D E F
23 35 14 3 13
13
8 1 98
315
14 100 96 66 33
1 11 10
48
33
3 22 17 94 8
9
1 1 5 246 2
15
104
2 60 80 124 11
4 7 2 3 5
78

2 49
92
75
85
21
33
6
8
1

1
9
4
3

27
36
16
16

1

3
1

20
57
45
15


209
155
163
85
38
5 3
5
2

G H I J K L M N O P
30 2 117 2
54 7 130
26
10
20
7
40 28
12
87
2 33
1
21
14 1 16 12
141 12 242 15 82
17
8
14
1
12
7

7 2
10
7
8
2
65
90 49 14
4
3 4 47
66 1 4 38 3
25
2
22 39
29 3 22
7
24 37 21
2
52 2
29 8 164
17
4 6
42
51 16

7 1 69
15 10 1 64 2
5 2 4 98 1
2 2
68
24

2 1 2 2
1
1

35
44
30
24

3
1
3
12

4
1

1

11

15
13
10
62

55
60
39
1

23
2

12
39
28
20

Q R S T
1 86 52 56
12 3 1
11 5 8
1 12 4
31 163305 143
19 1
13 1 2
15 51 103 112
2

4 10

9 3 79
3 17 22
52 4
8
40
18
3

17

9
86
88
7

17 3
1

39
73
42
76
1
3

U
64
1
14
35
89
2
5
2

V X Y
35
5
1
2

1
24 17

Z

6

1
13 8

4
6 40 2
2
197 5 10
11 118 1
3 17
134
41 13 5
61 39 9
29 18 4
56 3 19 29
2
1 1
1
3

3
1
7
1

1

1


Bảng 2.3
Bảng tần số bộ đôi móc xích của Tiếng Đức (tính trên 10.000 ký tự)
A B C D E
A 6 29 35 12 60
B 6
104
C
D 63 5
10 233
E 20 62 20 67 35
F 26 1
7 44
G 21
12 196
H 71 3
16 124
I 5 4 95 11 188
J 4
12
K 18
3 28
L 46 4
17 73
M 31 2
2 39

N 57 25 1 208 143
O
13 8 30
P 4
4
Q
R 63 5 16 54 124
S 24 4 105 19 113
T 51 5
40 178
U 2 7 9 4 81
V
38
W 31
50
Z 3
1 21

F G H I
14 20 11 5
2 2
8
280
2 2 2 86
38 73 75 242
17 6 2 8
2 5 2 15
2 6 1 38
11 53 32


J

K
1
1
14
1 3
3 19

L M N O
62 12 82
6
1 4

4
62
8
13 18
1 3 33
1 2 32

5 6
45 443
3
2 9
13 23
10 197

9 13
1 375 168

11 5
13 16
61 17
26 72

3
47
27
11
61
63

16 3 4 6
52 20 26 12
21
2 1
13 2 3 5
14
1
3 8 3

15
3
8
13 1 3 6
18 34 14 3
9 35 2 5
1 3

25 5

26
2 10
8 84
32 14
12

8
25
7
49
19
2

7
11
14
43

21 55
82
32 48
30 38

43
118
28
22

1
4

2
27
6
1

3
11
67
6 36
22
1 1
75 4 31 7
3
1 21
4
3

12
12
11
27

24
10
16
6

61 2 26 17 10 32
76 2 10 6 4 7
45 2 2 11 11 7

2
8 14 139
9
40
12
2
1

12

Q R S T U V W Z
41 52 41 63 1 1 1
3 2 7 8
1 1

11 1
4 9
7
2
13 1
5

1 4
4 13
4
17 102
6 3
18
25
20

6
16

P
3

19 6
45 13
9
4
37
13
2

2
1
48
13
33
1

4
5 58

2
3
4
14
3


1

1
2
4 1
22 34
1 3

5
9
10
5

20
7
19
4
12

13
8
22
3


Bảng 2.4
Bảng tần số bộ đôi móc xích của Tiếng Tây Ban Nha (tính trên 10.000 ký tự)

A
B

C
D
E
F
G
H
I

A B C D E F G H I J K L M N O P Q R S T
40 43 97 12261 12 18 19 20 3
12267 94 12 6 44 17 14532
6
20
19
35
10 1
2
11
61
2
50
26 11
3 3
11 9
31 34
0
6
71
9 217
67

3 3
78
41 6 10 67 48 16 28 17
12
21954 23515 3 13 16 24632
0
9
9
15
22
6
14
31
12
4
11
19
4
43
20
10
31
18
74 2 76 37 84 12 9
2
20 19 80 10 1 4 20 74 47
6
9
3
3

6

J
K
L 212
19 19 74
19
32
M 67 8
38
59
53 3 56 55 47 6 11 6 72 7
N
O

32 26 24 68 59 5 3 12 6

P 57
Q
16
21 9
R
3
99 3 41 57
S
T
U

12
1

27 9

V 11
W
X
2
Y 23 3 4
Z 26

75

26

16
3
70
4
12215 3 11 68
81

30 15 6

59 3 9 2 9
44 3
34 3
10 1 13 3 38
4
38 43 14
5 16 12417
7

9
9 76
64
67

6

14
18 12

2
7 9 13

4
30
2

9

6

3
3

4

69 21 7
18

11


1
20

4

12 22

19

27

42 4 26
74

14 11 40 9

14

12

2

11 13 28
6
67 2
14

6 9


34 30

3

20

30
4
3

6

26
155
34 11 18 78 5 18 20 23 30 14 10

77

17 17 2 3
4
22

8

U V W X Y Z
28 14
43 11

1
2


4

7

13

12

4
2

3

5


CHƯƠNG III
THỰC NGHIỆM
3.1. Bài toán nhận dạng văn bản La Tinh
Cho một mẫu văn bản x nào đó thuộc lớp ngôn ngữ La Tinh cụ thể là một trong 5
loại ngôn ngữ Tiếng Anh, Tiếng Pháp,Tiếng Đức, Tiếng Tây Ban Nha hoặc dãy ngẫu
nhiên (chữ cái hoặc chuyển sang mã cơ số 16) nhưng chưa biết x thuộc loại nào trong 5
loại nêu trên. Hãy xác định xem x thuộc ngôn ngữ cụ thể nào.
Ta ký hiệu A0 là lớp đại diện cho ngôn ngữ không đọc được, A 1 đại diện cho lớp
ngôn ngữ tiếng Anh, A2 đại diện cho lớp ngôn ngữ tiếng Pháp và A3 đại diện cho lớp
ngôn ngữ tiếng Đức, A5 đại diện cho lớp ngôn ngữ tiếng Tây Ban Nha. Vậy bài toán là
hãy xác định xem x thuộc lớp đại diện nào trong 5 lớp vừa nêu ? (ở đây số k đã được
biết trước là k=5).
3.2. Thuật toán dựa trên xích Markov cấp 1 hữu hạn trạng thái

3.2.1. Xây dựng cơ sở dữ liệu để máy học
Xây dựng ước lượng ma trận các xác suất chuyển trạng thái P của mô hình Markov ứng
với các ngôn ngữ tự nhiên tiếng Đức, Pháp, Tây Ban Nha và Anh. Trong ước lượng
này, tác giả chọn độ dài mẫu xấp xỉ 10000 ký tự bỏ qua dấu gián cách từ, dấu chấm (.),
dấu phẩy (,), ..., không phân biệt chữ in hoa và chữ in thường. Nó là tổng hợp các loại
văn bản thuộc các chuyên ngành khác nhau. Tính tần số bộ đôi móc xích của dãy X, tức
là ta tính số lần xuất hiện các cặp chữ cái la tinh của dãy đó.

14


Bảng 3.1. ước lượng bộ đôi móc xích tiếng Đức (A1)

15


Bảng 3.2. ước lượng bộ đôi móc xích tiếng Pháp (A2)

16


Bảng 3.3. ước lượng bộ đôi móc xích tiếng Anh (A3)

17


Bảng 3.4. ước lượng bộ đôi móc xích tiếng Tây Ban Nha (A4)

18



3.2.2. Nhận biết trực tiếp
Giả sử X là mẫu nào đó X = x 1x2..xN với xi∈{a,b,..,z}, i=1,2,..,N. Vấn đề đặt ra X
thuộc ngôn ngữ nào trong các lớp ngôn ngữ Tiếng Anh, Pháp, Đức, Tây Ban Nha hay là
một dãy ngẫu nhiên nào đó?
Ta tiến hành như sau:
Step1: Tính tần số bộ đôi móc xích của dãy X, tức là ta tính số lần xuất hiện các
cặp chữ cái la tinh của dãy đó. Giả sử, tần số các chữ cái đó lần lượt được
ký hiệu là F= (fij) với i,j = a,b,...,z.
Nếu cặp (i,j) xuất hiện tại thời điểm (vị trí) t và t+1
Trong trường hợp khác

với t = 1, N − 1
Step2: i=1
Step3: Tính Tr(F.Bi) bằng công thức
z

z

C i = ∑ ∑ f jk b (jki )
j= a k = a

Step4: Nếu Ci ≥ 0 thì thuật toán dừng và kết luận X thuộc lớp X i-1, trái lại thì
i=i+1 và quay về Step3
Step5: Nếu i>6 thì thuật toán cũng dừng và kết luận X không thuộc một ngôn
ngữ nào trong 5 lớp nêu trên.

19



3.3.Chương trình Demo
3.3.1 Giao diện chính của chương trình

Hình 3.2.Giao diện của chương trình
3.3.2 Xây dựng các mẫu thử
Các mẫu thử được lựa chọn là tài liệu tiếng Anh, Pháp, Đức, Tây Ban Nha trong các
lĩnh vực: Chính trị, kinh tế, văn học, tin học, địa lý, quân sự, thể thao, ngoại giao, lịch
sử, y tế, giáo dục, pháp luật. Mỗi ngôn ngữ kiểm tra 80 tệp, mỗi tệp có khoảng 80 ký tự
trở lên, nội dung chọn theo đoạn văn bất kỳ.
3.3.3. Thực thi chương trình với thuật toán dựa trên xích Markov cấp 1 hữu hạn
trạng thái

Hình 3.3 Kết quả hiển thị dang file.txt của thuật toán dựa trên xích Markov câp1 hữu
hạn trạng thái

20


KẾT LUẬN
 KẾT QUẢ ĐẠT ĐƯỢC:
Quá trình tìm hiểu kỹ thuật nhận dạng văn bản trong lớp ngôn ngữ La Tinh, luận
văn đã làm được một số công việc sau:
• Trình bày những vấn đề cơ bản nhất của kỹ thuật nhận dạng nói chung, các
hướng nghiên cứu hiện nay trên thế giới.
• Nghiên cứu quá trình Markov hữu hạn trạng thái.
• Nghiên cứu và xây dựng mô hình Markov ứng với các ngôn ngữ tự nhiên như :
Tiếng Anh, Tiếng Pháp, Tiếng Đức, Tiếng Tây Ban Nha.
• Giải bài toán phân lớp các đối tượng cho trường hợp số lớp đã biết trước và số
lớp chưa biết.
• Nghiên cứu xây dựng các ước lượng tham số của xích Markov

• Ứng dụng bài toán kiểm định giả thiết thống kê (testing of statistic hypothesis)
để giải quyết bài toán nhận dạng ngôn ngữ.
• Cài đặt thành công thuật toán Markov để nhận dạng văn bản (Anh, Pháp, Đức,
Tây Ban Nha) trong lớp ngôn ngữ la tinh
• Thuật toán được thể hiện trên máy tính bằng ngôn ngữ C#, kết quả thử nghiệm
tốt.
 HƯỚNG PHÁT TRIỂN:
Thuật toán có thể được mở rộng để nhận biết nhiều văn bản La tinh khác như tiếng
Việt, tiếng Indonesia, tiếng Italia.v.v. Không những thế, có thể được mở rộng sang các
ngôn ngữ tự nhiên phi la tinh khác như tiếng Lào, Thái Lan, Tiếng Campuchia hoặc lớp
ngôn ngữ tiếng Nhật , Trung, Triều Tiên.

21


TÀI LIỆU THAM KHẢO
Tiếng Việt
[1]. Lương Mạnh Bá, Nguyễn Thanh Thuỷ (1999), Nhập môn xử lý ảnh số, Nhà xuất
bản khoa học và kỹ thuật, tr.154-170.
[2]. Hồ Văn Canh, Phạm Quốc Doanh (2002), Thuật toán nhận dạng các ngôn ngữ tự
nhiên, tr. 3-20.
[3]. Trần Duy Hưng, Nguyễn Ngọc Cường (2002), Nhận dạng tự động ngôn ngữ tiếng
Anh, Tạp chí "Tin học và điều khiển học", Trung tâm Khoa học tự nhiên và Công
nghệ Quốc gia số 3/2002.
[4]. Hoàng Minh Tuấn, Một số vấn đề trong xây dựng siêu máy tính chi phí thay cho
các ứng dụng xử lý thông tin và tính toán khoa học kỹ thuật, Luận văn Tiến sĩ kỹ
thuật, Mã số 62.52.70.01. tr. 35-55.
[5]. Nguyễn Viết Thế, Hồ Văn Canh ( 2010), Nhập môn Phân tích thông tin có bảo
mật, NXB Thông tin và Truyền thông.
Tiếng Anh

[6]. AndrewR.Web.2002. John Wiley & Sons, Ltd. Statistical Pattern Recognition,
Second Edition.
[7]. Richard O Duda, Peter E Hart, David G Stork . Wiley-interscience. “Bayesian
decision theory”, Pattern Classification, Second Edition: 39-78.
[8]. Wilks, S. S. 1962. Mathematical Statitics. New York: John Wiley. Mark Stam,
Richar M.Low ( 2007 ): Applied Cryptanalysis Breaking ciphers in the Real
World. A John wiley & sons, Inc, publication 2007.

22


PHỤ LỤC
CẤU TRÚC CÁC LỚP TRONG CHƯƠNG TRÌNH
1. Cấu trúc chung

• Lớp Program: đầu vào của chương trình, gọi đến lớp MainFrom
• Lớp MainForm: lớp xử lý giao diện
• Lớp MarkovRecognition: Xử lý thuật toán Markov
2. Chi tiết lớp MakovRecognition
- Lớp này thực hiện việc nhận dạng ngôn ngữ theo thuật toán markov sử dụng ma trận
tần số bộ đôi móc xích của chuỗi đầu vào. Các hàm chính bao gồm:
• caclConnect: tần số bộ đôi móc xích của chuỗi đầu vào
• calcMatrix: đọc giá trị ước lượng bộ đôi móc xích từ tệp
• calcS: tính tích vô hướng giữa ma trận ước lượng bộ đôi móc xích và ma trận bộ
đôi móc xích của chuỗi đầu vào.

23



×