Các tiếng trong tên chỉ được viết hoa tiếng đầu từ, những tiếng mang tính chất khu biệt tên tổ chức và tên riêng nếu có. Cấu trúc của lớp này bao gồm:
<Danh từ chung chỉ tên tổ chức> : bắt buộc phải có, ví dụ Bộ, Vụ, Trường, Công ty, Nhà máy,..
Thành tố này có thể được nhận ra bằng cách xây dựng một tập các danh từ chung chỉ tên tổ chức. Qui tắc nhận dạng như sau:
Tiếng có viết hoa chữ đầu ? Đúng
Phải chăng có một từ trong từ điển bắt đầu là chữ đó ? Đúng Là từ chỉ tên tổ chức
< Từ/cụm từ chỉ chức năng hoặc nét đặc trưng của tổ chức>: bắt buộc phải
có, ví dụ: (Bộ) Chính trị, (Bộ) Giáo dục và Đào tạo, (Vụ) Tổ chức, (Trường)
Đại học Công nghệ, (Công ti) Xăng dầu...
Thành tố này được nhận ra sau từ chỉ tên tổ chức và bắt đầu với chữ viết hoa và là một từ có nghĩa tìm được.
[Danh từ chỉ tên riêng]: có thể khuyết, không bắt buộc phải có, ví dụ: (Trường Đại học Dân lập) Hải Phòng, (Đại học) Phương Đông, (Quĩ Nhi đồng) Liên Hiệp Quốc, (Công ti TNHH) Ngân Hà...
Qui tắc nhận ra thành tố này như trong xử lí tên riêng chỉ người và địa lí.
4.4.3 Các tên riêng khác
Tên gọi các huân chương, huy chương, danh hiệu vinh dự,... viết như sau:
huân chương Độc lập, Sao vàng, Cờ đỏ, Lênin, Hồ Chí Minh; huân chương Quân công, Chiến công, Kháng chiến, Chiến sĩ vẻ vang; Kỉ niệm chương; Tổ quốc ghi công; Bảng vàng danh dự; giải thưởng Nhà nước; danh hiệu Nghệ sĩ nhân dân, Nhà giáo nhân dân, Thầy thuốc nhân dân, Anh hùng lao động...
Những tên này thường là các danh từ chung và được nhận dạng ra trong quá trình tách từ.
4.5 Tách đoạn-Tách câu
Xét về phạm vi lớn hơn thì chúng ta phải đối mặt với một vấn đề khác, đó là Phân tách đoạn-câu (Sentence Segmentation) là công việc phân tách một văn bản thành những đoạn và câu nhằm tạo tiền đề cho việc phân tích cú pháp sau này của văn bản đó. Bài toán này không phân biệt ngôn ngữ vì hầu hết các ngôn ngữ thường phân tách câu dựa trên những dấu hiệu là các dấu ngắt câu như dấu chấm, chấm hỏi, chấm than... Tuy vậy, nếu văn bản đưa vào không chuẩn thì kết quả cũng không thể đạt 100%. Ví dụ như lỗi sau các dấu chấm câu không viết hoa sẽ dẫn đến việc hiểu nhầm thành dấu ba chấm. Ngoài ra, một số phần trăm sai sót khác còn do hiện tượng những dấu chấm câu được dùng như là ký hiệu thực hiện chức năng khác khác gây ra. Ví dụ như dấu chấm được dùng để phân tách phần nguyên và phần thập phân của một con số.
Mục đích của tách câu là tách thành từng đơn vị "câu" để thuận tiện cho việc xử lí tách từ. Việc xác định đơn vị câu là rất quan trọng trong các ứng dụng xử lí ngôn ngữ tự nhiên. Tuy nhiên ở đây chỉ cần xác định câu cho tách từ , do vậy "câu" được hiểu là những chuỗi từ nằm giữa các token tách câu.
Các token tách câu bao gồm: -Các dấu kết thúc câu : . ? !
-Các dấu mở ngoặc, đóng ngoặc: { } [ ] ( ) "
-Các dấu khác phân tách câu khác: ; : ,
4.6 Nhận xét đánh giá
4.6.1 Tập ngữ liệu thô
Tập ngữ liệu được dùng để kiểm thử dựa trên tập dữ liệu được lấy từ nhiều nguồn
VnExpress (http://www.vnexpress.net/) : 1,5MB Thời báo kinh tế Việt Nam: 1,82MB
Tuần Báo Doanh nghiệp: 744 KB Tạp chí Thương mại : 889 KB
Tạp chí PCWorld Việt Nam: 1,28MB Tuyển tập Nam Cao : 338 KB
Tách từ chỉ là bước đầu tiên của NLP. Vấn đề là chưa có định nghĩa thống nhất về thế nào là một từ. Do vậy các đánh giá đều chủ quan theo từ điển đã có. Ngay cả một người trong những lần khác nhau cũng có thể cho những tách từ khác nhau. Do vậy kết quả tách từ ở đây không làm thoả mãn tất cả mọi người ở mọi lĩnh vực khác nhau. Trong phần này, kết quả đạt được hi vọng đáp ứng được yêu cầu của một chương trình tổng hợp tiếng nói có chất lượng cao trong việc sinh ngữ điệu đúng với nghĩa của câu nói.
Kết quả thu được liệt kê trong bảng 4-2 , bao gồm cả việc nhận dạng các tên riêng. Các từ có nhiều âm tiết (tiếng) tách được sẽ được nối liền với nhau bởi dấu gạch dưới ("_"), ví dụ :
Hầu_hết các sản_phẩm đều có một cơ_cấu điều_khiển nhằm hạn_chế truy_nhập của khách_hàng tới kho thông_tin chung chứa dữ_liệu mật bằng các phương_pháp như địa_chỉ IP , tên máy_chủ mạng con và thư_mục . Một_vài Web_Server bao_gồm cả phương_thức bảo_mật giao_tác cần_thiết cho các ứng_dụng đòi_hỏi độ_tin_cậy cao .
Các tên riêng khi được nhận dạng cũng được nối liền với nhau bởi dấu "_" nhằm đảm bảo cho việc đọc tên này không bị rời rạc ra như đọc các từ đơn lẻ riêng biệt.
Số âm tiết : là tổng số các âm tiết được cách nhau bởi dấu trống trước khi được thực hiện phân tách từ
Số từ: tổng số từ đếm được sau khi phân tách từ
Số câu : là tổng số câu được phân tách câu theo tiêu chí của các token phân tách câu đã nói ở mục 4.5.
Phần còn lại là các từ thu được theo các qui tắc phân loại đã nêu ở trên
Nhằm có một đánh giá chung, một file ngữ liệu thô được tổng hợp từ tất cả các thể loại trên bằng cách lấy ngẫu nhiên tất cả các lĩnh vực đuợc tập hợp vào thành một file gọi là Test chung.
Bảng 4.1: Kết quả đánh giá phân tách từ
Thể loại Số âm
tiết Số từ Số câu
Số từ phát hiện theo các qui tắc Số từ tách đúng Tỉ lệ đúng (%) R1 R2 R3 R4 R5 R6 Khoa học- kỹ thuật 3.152 2.287 247 27 1.447 791 0 1 21 2.268 99,16 Văn học 2.857 2.181 313 26 1.612 520 1 3 19 2.157 98,89 Pháp luật 3.243 2.099 277 47 1.062 956 1 9 24 2.090 99,57 Kinh tế - Chính trị 3.328 2.387 426 27 1.578 754 0 5 23 2.365 99,07 Thể thao – Giải trí 3.375 2.418 357 21 1.578 814 0 3 32 2.393 98,96 Giáo dục 3.094 2.109 355 43 1.295 747 1 3 20 2.088 99,0 Test chung 4.501 3.320 445 26 2.101 1.067 2 6 28 3.292 99,16 4.6.2 Nhận xét
Các từ nhận được theo qui tắc 2 là nhiều nhất trung bình trong khoảng từ 61- 70% các từ phân tách được. Các từ nhận được theo qui tắc này chính là các từ đơn có 1 tiếng hoặc là các từ viết tắt hoặc là từ nước ngoài hay các biểu thức số khác và không nằm trong một từ ghép nào, do vậy nó không bị nhập nhằng. Theo qui tắc 1 phân tách được khoảng 1-2% tổng số các từ. Các từ nhận được theo qui tắc này cũng không có sự nhập nhằng. Các qui tắc 4 và 5 cho số lượng từ rất ít. Các từ nhận được theo qui tắc này đều được phân tách đúng. Lỗi phân tách từ sai chủ yếu xảy ra ở:
-Các từ nhận được theo qui tắc 3 (chiếm trung bình khoảng 35% số từ được tách) : sự nhập nhằng ở đây là vai trò của hai từ đơn trong một từ ghép có hai tiếng, ví dụ:
người ở nhà thường xem ti vi -> người_ ở nhà thường xem ti_vi
Từ ghép người_ở để riêng thành 2 từ đơn người và ở thì hợp lí hơn trong câu trên. Lỗi này cần được phân tích kĩ hơn trong một số vai trò của từ đơn.
- Lỗi do xác định tên riêng sai theo qui tắc 2.
-Các từ nhận được theo qui tắc 6 (khoảng 1%), là sự nhập nhằng giữa hai từ ghép. Kết quả nhận được khi phân tích theo cường độ liên kết từ là rất tốt.
- Phần lớn các lỗi phát hiện được khi áp dụng mô hình này là do không có các từ điển đầy đủ. Không thể có một từ điển bao quát cho tất cả, đây chính là một khó khăn.
Rất ít lỗi phát hiện ra do sai sót trong quá trình phân loại cường độ liên kết. Kết quả đạt được là rất khả quan, điều này sẽ khích lệ để làm tốt hơn cho mở rộng từ điển. Rõ ràng rằng nếu có một sự phân loại cường độ liên kết tốt hơn thì sự tách từ sẽ hoàn thiện hơn.
Một số nhập nhằng đòi hỏi phải phân tích cú pháp theo kiểu
[học_ sinh]N [học]V [sinh_học]N
thì phương pháp tách từ trên chưa làm được. Đây là một hạn chế của phương pháp do nó chỉ xét sự nhập nhằng trong phạm vi 3 âm tiết. Hoặc một số câu theo dạng:
Ông già đi nhanh quá
Có thể phân tách từ theo cả hai dạng đều hợp lí sau:
Ông_già đi nhanh_quá hoặc Ông già_đi nhanh_ quá
Câu đúng phụ thuộc vào ngữ cảnh. Thậm chí con người cũng khó xác định đâu là ranh giới từ cho đến khi đọc xong cả đoạn văn. Hơn nữa, mô hình này đôi khi phân đoạn vượt quá giới hạn vì phân tích hình thái không chính xác của nó [9].
Nếu có sự phân loại cường độ liên kết chi tiết hơn (mức phân loại nhiều hơn) có thể cho kết quả tốt hơn chăng? Điều này đang còn là một vấn đề mở để tiếp tục nghiên cứu thêm.
Đánh giá tốc độ thực hiện:
Do modul tách từ được thực hiện các modul tách đoạn, câu và modul chuẩn hoá nên phần đánh giá tốc độ được khảo sát chung khi thực hiện ứng dụng sẽ nói chi tiết ở chương 5.
4.6.3 So sánh với một số phƣơng pháp khác
Kết quả đạt được của đề xuất trên được đánh giá bằng phương pháp đếm thủ công (người đánh giá). So sánh với một số kết quả khác cũng được đánh giá bằng phương pháp tương tự như sau: (tỉ lệ chính xác là số từ đúng/số từ tách được)
Maximum Matching Forward:87,8% Maximum Matching Backward:88,46%
Đồ thị đường đi ngắn nhất:93,40% VịnhNQ: 91,83%
Lưới từ+Viterbi [*]:91,46%
(*đề xuất của nhóm Hà Thành Lê - Viện Công nghệ thông tin, Viện Khoa học công nghệ Việt Nam gồm hai pha. Pha 1: Tìm kiếm, đối chiếu từ điển để có được tất cả các cách phân tách từ có thể từ câu đầu vào. Pha 2: Dùng một giải thuật Viterbi để lựa chọn cách tách câu tốt nhất. )
Các số liệu trên đều do nhóm Hà Thành Lê thực hiện .
Phương pháp đề xuất cho kết quả tốt hơn cả. Một khó khăn chủ yếu của phương pháp đã đề xuất chính là khâu làm từ điển và phân loại cường độ liên kết cho các từ. Đề phân loại cho hơn 60.000 từ ghép hai tiếng trong từ điển trên, nếu làm thủ công thì mỗi ngày trung bình được khoảng 4.000 từ.
Chƣơng 5
CÀI ĐẶT VÀ KIỂM THỬ ĐÁNH GIÁ
5.1. Chƣơng trình thử nghiệm
5.1.1 Yêu cầu về cấu hình hệ thống
Chương trình không đòi hỏi nhiều về phân cứng, nhưng do phát triển dựa trên công nghệ .NET, hệ thống cần đáp ứng những yêu cầu tối thiểu của công nghệ này.
- CPU Pentum III 800Mhz - 128MB RAM
- Hệ điều hành WinME
- Đã cài đặt Dotnetframework v1.1
5.1.2 Ngôn ngữ lập trình và cơ sở dữ liệu
VTA (Vietnamese Text Analyzer) được xây dựng trên môi trường .NET bằng ngôn ngữ C#. Đây là ngôn ngữ có khả năng xử lí các cơ sở dữ liệu phẳng một cách nhanh chóng, ngoài ra các đối tượng cấu trúc dữ liệu có sẵn của C# như
DictionaryBase, HashTable, ArrayList… có cơ chế quản lý tìm kiếm và truy xuất phần tử tối ưu, linh hoạt, rất thích hợp cho các bài toán phân tích văn bản. Cơ sở dữ liệu của chương trình là cơ sở dữ liệu phẳng, chỉ gồm các file *.txt. Điều này cho phép dễ dàng truy nhập và sửa đổi thêm bớt dữ liệu.
Cơ sở dữ liệu chính của chương trình gồm các từ điển sau
- Từ điển thuật ngữ chính, bao gồm 83.768 mục từ trong đó có 60.299 mục từ có 2 tiếng đã được phân loại theo cường độ liên kết. (Dic.txt)
- Từ điển các từ viết tắt và các kí hiệu đo lường (Abb.txt)
- Từ điển và các từ định danh trong việc phân tích danh từ riêng (DicRole.txt)
5.1.3 Giao diện chƣơng trình
Với mục đích là chương trình thử nghiệm, dùng để đánh giá các kết quả đã phân tích trên, nên giao diện được thiết kế đơn giản. Đầu vào là các văn bản dạng thuần text, đầu ra là văn bản đã được đánh dấu XML hoặc thuần text. Đầu ra chính là đầu vào cho modul tổng hợp tiếng nói tiếp theo.
Hình 5. 2: Giao diện chính
5.2 Cấu trúc của chƣơng trình
Dựa trên mô hình chung của bài toán Phân tích văn bản, mô hình ứng dụng được xây dựng như sau:
Xác định cấu trúc văn bản: gồm modul phân tách đoạn và câu.
Việc phân tách đoạn và câu khá đơn giản. Trong modul này bao gồm cả việc xử lí nhập nhằng trong dấu câu như các dấu chấm (.) trong dãy số hoặc địa chỉ email.
Tiền xử lí: bao bồm các modul chuẩn hoá y-i và chuẩn hoá dấu thanh
Chuẩn hoá y- i và chuẩn hoá dấu thanh theo nguyên tắc đã phân tích trong chương 3.
Phân tích ngôn ngữ: bao gồm các modul nhận dạng tên riêng, xử lí từ
viết tắt, xử lí các con số và tách từ.
Nhận dạng tên riêng được chia thành hai modul nhỏ hơn là : nhận dạng tên riêng về tên người, địa danh; modul còn lại là nhận dạng tên cơ quan tổ chức. Qui
tắc nhận dạng đã được phân tích như trong chương 4.
Phần modul tách từ được xử lí như đã phân tích trong chương 4. Điểm đặc biệt là trong quá trình xử lí tách từ có nhận dạng từ đơn không phải là một từ, do vậy khi có một từ đơn như vậy nó được nhận dạng và xử lí là:
- Từ viết tắt - Các con số - Ngày tháng - Thời gian - Từ nước ngoài Hình 5.2 Mô hình ứng dụng 5.3 Các kết quả thực nghiệm 5.3.1 Kết quả phân tích
Các kết quả sau được thực nghiệm trên bộ ngữ liệu đã sưu tập được từ một số nguồn cho nhiều lĩnh vực khác nhau nhằm bao quát nhiều kiểu văn phong trình bày trong văn bản. Văn bản thô Tách đoạn và câu Tiền xử lí Xử lí tên riêng Tách từ Xử lí từ viết tắt và các kí hiệu Xử lí các con số Văn bản đã được xử lý Từ điển các từ viết tắt Từ điển thuật ngữ Xử lí từ đơn Từ điển từ định danh
Kết quả đánh giá dựa trên một số tiêu chí sau: - Kết quả tách từ
- Kết quả nhận dạng tên riêng
- Kết quả chuẩn hoá văn bản các từ viết tắt, chữ số, số điện thoại, ngày tháng để đưa về dạng phát âm được (LTS)
Câu đúng là câu được phân tích không có lỗi do thực hiện modul.
Bảng 5.1 Kết quả đánh giá phân tích văn bản
Thể loại Số câu phân tích Xử lí tên riêng Tách từ LTS Đúng Tỉ lệ (%) Đúng Tỉ lệ (%) Đúng Tỉ lệ (%) Khoa học-kỹ thuật 247 244 98,78 241 97,57 247 100 Văn học 313 310 99,04 301 96,17 310 100 Pháp luật 277 277 100 271 97,83 277 100 Kinh tế -Chính trị 426 425 99,77 410 96,24 421 98,82 Thể thao – Giải trí 357 354 99,16 343 96,08 349 97,76 Giáo dục 355 353 99,44 343 96,61 353 99,44 Test chung 445 441 99,10 431 96,85 436 97,98 Nhận xét:
- Phần tách từ được đánh giá theo số câu đúng nên tỉ lệ chính xác có giảm so với đánh giá trong chương 4. Nhìn chung tỉ lệ tách từ đúng là khá cao. Đây là một kết quả quan trọng nhất.
- Việc nhận dạng tên riêng là tốt với các tên tổ chức nhưng với tên người tên địa lí thường bị nhập nhằng ở đầu câu. Tỉ lệ nhận dạng đúng là cao, do số lượng tên riêng xuất hiện không nhiều.
- Phần LTS được đánh giá dựa trên nhận dạng đúng các con số, ngày tháng và chữ viết tắt... Các lỗi sai thường là do các từ viết tắt chưa được cập nhập vào trong từ điển . Tỉ lệ phần xử lí chữ số đúng là rất cao, kể cả trong các con số thể hiện tỉ số thi đấu thể thao và các con số trong các kí hiệu... Phần LTS không đưa ra cách phiên âm cho từ nước ngoài, nên trong khảo