3 CHƯƠNG
3.3 Công cụ Swirl
3.3.1. Giới thiệu
Công cụ Swirl là một công cụ dùng cài đặt mô hình AdaBoost cho gán nhãn ngữ nghĩa, được phân phối dưới dạng mã nguồn mở, dùng để phân đoạn và gán nhãn dữ liệu tuần tự.
Swirl được thiết kế để ứng dụng trong các bài toán xử lý ngôn ngữ tự nhiên như nhận dạng thực thể (Name Entity Recognition), trích chọn thông tin
(Information Extraction), phân đoạn dữ liệu (Text chunking).
Tính năng hoạt động:
- Người dùng có thể định nghĩa lại các tập đặc trưng. - Tiêu tốn ít bộ nhớ cả trong huấn luyện và kiểm thử. - Là phần mềm mã nguồn mở.
Hệ thống hoạt động theo phương pháp học nửa giám sát, được thực hiện gồm các bước sau:
(i) Tạo bộ dữ liệu huấn luyện.
(ii) Sử dụng mô hình AdaBoost để huấn luyện trên tập dữ liệu này. (iii) Tạo tập Test và sử dụng AdaBoost để gán nhãn dữ liệu.
(iv) Đánh giá kết quả.
Quá trình học bài toán gán nhãn vai trò ngữ nghĩa sử dụng công cụ Swirl, được chia làm 2 modulo chính được mô tả như hình 3.6:
Hình 3:6 Mô hình hoạt động Swirl
3.3.2. Các đặc trưng sử dụng cho bài toán gán nhãn ngữ nghĩa nông:
Có nhiều đặc trưng được sử dụng trong bài toàn gán nhãn ngữ nghĩa nông. Có thể phân loại các đặc trưng vào 5 nhóm như sau:
a. Đặc trưng cấu trúc nội bộ của các đối số ứng viên:
- Các mục từ hợp thành, hậu tố có chiều dài 2, 3, và 4, Bổ đề, và thẻ POS.2, 3 và 4, Bổ đề, và PoS tag.
- Từ thành phần nội dung, hậu tố theo sau có chiều dài 2, 3 và 4, là Bổ đề, PoS tag, và nhãn NE.
- Thành phần đầu tiên cuối cùng và các thẻ POS của đối số ứng viên. - Nhãn NE bao gồm trong cụm từ ứng viên.
- Các đặc trưng nhị phân để chỉ ra sự hiện diện của những lời gợi ý về thời gian, có nghĩa từ đó xuất hiện thường xuyên trong các cụm từ AM-TMP trong quá trình huấn luyện.
b. Các đặc trưng trích xuất từ các tham số ngữ cảnh:
- Các cụm từ nhãn, từ đầu và POS tag của thành phần cha, các thành phần anh em.
c. Đặc trưng mà mô tả các thuộc tính của cấu trúc vị ngữ: - Từ vị ngữ và bổ đề.
- Ngữ điệu vị ngữ (Predicate Voice): hiện đang phân biệt 5 loại giọng nói: tích cực, thụ động, kết hợp, bất định, và tiếp diễn. Một tính năng nhị phân để cho biết nếu các vị ngữ là thường xuyên - xuất hiện nhiều hơn hai lần trong các phân tập dữ liệu huấn luyện - hay không.
d. Các đặc trưng được tạo ra từ ngữ cảnh vị ngữ:
- Quy tắc phân loại, tức là các quy tắc cấu trúc cụm từ có thể mở rộng thành các vị ngữ cha.
e. Các đặc trưng mô hình mà khoảng cách giữa các vị ngữ và các tham số: - Các đường dẫn trong cây cú pháp giữa các cụm từ đối số và các vị ngữ
như là một chuỗi các nhãn cú pháp cùng với sự chỉ đạo theo cây (lên hoặc xuống).
- Chiều dài của đường dẫn cú pháp trên.
- Số lượng các các mệnh đề (S * cụm từ) trong đường dẫn. - Các số cụm động từ (VP) trong đường dẫn.
- Số đếm subsumption, tức là sự khác biệt giữa các độ sâu trong cây cú pháp của các đối số và thành phần vị ngữ. Giá trị này là 0 nếu hai cụm từ chia sẻ cùng nút cha.
- Các thể loại quản lý, mà chỉ ra nếu đối số NP được thống trị bởi một câu (điển hình cho các đối tượng) hoặc một cụm động từ (điển hình cho các đối tượng).
- Khoảng cách bề mặt giữa các vị ngữ và các cụm từ tham số mã hóa như: số thẻ, động từ đầu cuối từ (VB *), dấu phẩy, và phối hợp (CC) giữa các cụm từ đối số và vị ngữ, và một tính năng nhị phân để cho biết nếu hai thành phần là liền kề.
- Một tính năng nhị phân để chỉ ra nếu đối số bắt đầu bằng một hạt vị ngữ, tức là một dấu hiệu nhìn thấy được bằng thẻ POS RP * và trực tiếp gắn liền với vị ngữ trong huấn luyện.
3.3.3. Huấn luyện và Kiểm tra
Sau khi chuẩn bị các tệp chứa từ (word-file), tệp chứa cú pháp nhãn ngữ nghĩa (synt-file), tệp chứa nhãn mệnh đề (props-file), tệp chứa nhãn danh từ riêng (ne-file), ta tiến hành huấn luyện và kiểm tra như sau:
Huấn luyện
Để tiến hành huấn luyện, ta dùng cú pháp như sau: make train \
MODEL_DIR=<đường dẫn thư mục chứa tệp model>
[WORD_FILE=< tệp chứa từ CoNLL > \]
[NE_FILE=< tệp chứa nhãn danh từ riêng CoNLL > \] [CHARNIAK_FILE=< tệp chứa cú pháp nhãn ngữ nghĩa>\] [PROP_FILE=<tệp chứa nhãn mệnh đề CoNLL >]
Trong đó: các tham số WORD_FILE, NE_FILE, CHARNIAK_FILE, PROP_FILE là những tham số tùy chọn,
Hình 3:7 Quá trình huấn luyện
Quá trình huấn luyện trải qua 3 giai đoạn: huấn luyện mẫu (training
sample), huấn luyện nhị phân (training binary) và dọn dữ liệu huấn luyện
(training clean).
Sau khi trải qua quá trình huấn luyện, chương trình sinh ra các file model trong thư mục training như hình 3.8
Hình 3:8 Các file model sinh ra sau khi huấn luyện Kiểm tra
Để tiến hành kiểm tra, ta dùng cú pháp như sau: swirl_parse_classify \
<SRL model directory> \
<charniak's parser model directory>
Trong đó:
f. SRL model directory: đường dẫn tới thư mục model vừa huấn luyện. g. Charniak’s parser model directory: đường dẫn tới thư mục chứa tệp model
huấn luyện cú pháp.
Hình 3:9 Quá trình kiểm tra
Ta có thể kiểm tra đồng thời tạo ra file kết quả theo cú pháp sau: make test PREFIX=<test_set_name>
Trong đó: test_set_name là tên bộ test – có thể đặt tùy ý.
Chương trình sẽ tự động đọc các tệp <test_set_name>.words,
<test_set_name>.ne, <test_set_name>.props trong thư mục copus (tại đường
dẫn hiện hành) và tạo ra các tệp <test_set_name>.input,
<test_set_name>.output và <test_set_name>.score trong thư mục testing (tại
đường dẫn hiện hành), trong đó:
h. Tệp <test_set_name>.words: là tệp chứa từ kiểm tra.
i. Tệp <test_set_name>.ne: là tệp chứa nhãn danh từ riêng kiểm tra.
j. Tệp <test_set_name>.props: là tệp chứa nhãn mệnh đề kiểm tra .
k. Tệp <test_set_name>.input: là tệp được tự động tạo chứa dữ liệu kiểm
l. Tệp <test_set_name>.output: là tệp được tự động tạo chứa dữ liệu kết quả.
m.Tệp <test_set_name>.score: là tệp được tự động tạo chứa dữ liệu kết quả
tổng hợp.
Đánh giá
Để đánh giá hiệu suất mô hình, chúng tôi sử dụng độ chính xác trung bình accuracy và 3 tiêu chuẩn: Precision, Recall và F-score, được tính toán như sau:
Precision = !ố $ượ'( )á) +,(-./'0 đượ) (á' '2ã' đú'( !ố $ượ'( )á) +,(-./'0! đượ) (á' '2ã' Recall = !ố $ượ'( )á) +,(-./'0 đượ) (á' '2ã' đú'(!ố $ượ'( )á) (5$6 +,(-./'0 F-score = 7 ∗ 9,/):!:5' ∗ ,/)+$$9,/):!:5' ; ,/)+$$
3.4. Kết quả và thảo luận
3.4.1. Với ngôn ngữ tiếng Anh:
Để đánh giá mô hình AdaBoost với bài toán gán nhãn vai trò ngữ nghĩa, tôi đã tiến hành thử nghiệm với ngôn ngữ tiếng Anh: gán nhãn ngữ nghĩa sử dụng mô hình AdaBoost, sử dụng template NE (Named Entity), huấn luyện khoảng 40 000 câu đầu vào. Kết quả thử nghiệm như sau: độ chính xác 80.15%, với Precision đạt 75.36% và F-score đạt 77.68% với bộ test chứa 2416 câu, 5267 mệnh đề. Các nhãn A0 và A1 là hai nhãn thường xuyên xuất hiện trong các câu, vì vậy, ở đây chúng tôi đánh giá cụ thể chất lượng gán nhãn hai nhãn này như sau:
Hình 3:10 Kết quả đánh giá các nhãn A0, A1, A2
Gán nhãn vai trò ngữ nghĩa nông là một bài toán phức tạp đòi hỏi trích rút một số lượng lớn các đặc trưng phức tạp như các đặc trưng về cú pháp. Do thời gian nghiên cứu có hạn, trong khuôn khổ luận văn này, tôi chỉ sử dụng các đặc trưng đơn giản, tuy nhiên, chất lượng gán nhãn các nhãn A0, A1 và A2 (là ba nhãn có tần số xuất hiện cao trong câu) cũng đạt tới F1 = 84.42 đối với A0, F1= 65.13 đối với A1 và F1= 44.97 đối với A2, do vậy, chất lượng gán nhãn như trên là hoàn toàn có thể chấp nhận được.
Bảng kết quả dưới đây mô tả kết quả gán nhãn với đầy đủ các nhãn:
Precision Recall F1 A0 86.75 86.92 86.84 A1 80.63 75.54 78.00 A2 68.64 60.72 64.44 A3 79.25 48.55 60.22 A4 78.82 65.69 71.66 A5 100.00 80.00 88.89
AM-ADV 57.30 51.98 54.51 AM-CAU 61.76 57.53 59.57 AM-DIR 65.38 40.00 49.64 AM-DIS 75.38 76.56 75.97 AM-EXT 78.95 46.88 58.82 AM-LOC 67.88 56.47 61.65 AM-MNR 60.92 50.29 55.10 AM-MOD 97.36 93.65 95.47 AM-NEG 98.25 97.83 98.04 AM-PNC 52.86 32.17 40.00 AM-PRD 0.00 0.00 0.00 AM-REC 0.00 0.00 0.00 AM-TMP 78.78 77.18 77.97 R-A0 87.27 85.71 86.49 R-A1 76.22 69.87 72.91 R-A2 46.15 37.50 41.38 R-A3 0.00 0.00 0.00 R-A4 0.00 0.00 0.00 R-AM-ADV 0.00 0.00 0.00 R-AM-CAU 0.00 0.00 0.00 R-AM-EXT 0.00 0.00 0.00 R-AM-LOC 72.73 76.19 74.42
R-AM-MNR 25.00 33.33 28.57
R-AM-TMP 64.62 80.77 71.79
Trung bình 80.15 75.36 77.68
3.4.2. Với ngôn ngữ tiếng Việt:
Trong thực nghiệm với ngôn ngữ như tiếng Việt, tôi sử dụng bộ dữ liệu huấn luyện khoảng 500 câu đầu vào – được tạo từ kho dữ liệu Viettreebank, huấn luyện gán nhãn với 5 loại nhãn: A0, A1, A2, TMP, LOC. Kết quả thử nghiệm như sau: Precision đạt 7.91%, Recall đạt 15.71% và F-score đạt 9.02% với bộ test chứa 89 câu, 143 mệnh đề:
Precision Recall F1-Score
A0 18.06 22.41 20.00 A1 11.81 13.93 12.78 A2 - - - LOC 1.71 21.74 3.17 TMP 0.06 4.76 0.11 Trung bình 7.91 15.71 9.02
Công việc nâng cao độ chính xác và tốc độ huấn luyện và kiểm tra bằng các kỹ thuật trích rút đặc trưng phức tạp hơn sẽ là mục tiêu và hướng nghiên cứu tiếp theo của đề tài.
3.5. Kết luận chương 3
Nội dung chính của chương này là mô tả bài toán gán nhãn vai trò ngữ nghĩa theo hướng áp dụng mô hình học máy AdaBoost và công cụ Swirl trong gán nhãn chuỗi dữ liệu. Đồng thời, chương này cũng trình bày quá trình thu thập dữ liệu, trích chọn đặc trưng và các kết quả thực nghiệm thu được trong quá trình gán nhãn vai trò ngữ nghĩa.
CHƯƠNG 4: KẾT LUẬN
Thông qua việc nghiên cứu tìm hiểu, thử nghiệm mô hình AdaBoost với bài toán gán nhãn vai trò ngữ nghĩa, luận văn đã thu được những đóng góp chính sau:
- Luận văn cung cấp một cách nhìn tổng quan về bài toán gãn nhãn vai trò ngữ nghĩa tiếp cận theo mô hình học máy AdaBoost.
- Thử nghiệm gán nhãn vai trò ngữ nghĩa cho 426 câu tiếng Anh trên bộ dữ liệu chuẩn CoNLL 2004, với độ chính xác 70.89 %.
Hướng nghiên cứu tiếp theo của luận văn:
- Tập trung đi sâu hơn vào giai đoạn trích chọn đặc trưng: với số lượng lớn các đặc trưng phức tạp, điều này có ý nghĩa quan trọng tới độ chính xác và chi phí tính toán- một yếu tố quan trọng của các ứng dụng tầm cỡ hoặc những ứng dụng đòi hỏi đáp ứng với thời gian thực.
- Xây dựng tập dữ liệu huấn luyện và kiểm tra để phục vụ gán nhãn ngữ nghĩa tiếng Việt.
- Tìm hiểu các kĩ thuật nâng cao để giúp tăng tốc độ huấn luyện cho mô hình AdaBoost.
- Tìm hiểu và áp dụng phương pháp AdaBoost vào việc nhận dạng hình ảnh và âm thanh.
- Nghiên cứu phương pháp học sâu áp dụng gán nhãn vai trò ngữ nghĩa, trong đó, tiến hành tiền xử lý các đặc trưng đầu vào, sau đó có thể huấn luyện bằng cách sử dụng cấu trúc mạng nơ ron nhiều tầng. Các đặc trưng được tính toán bởi các tầng sâu hơn của mạng, được huấn luyện tự động bởi thuật toán lan truyền ngược thích hợp với các bài toán tương ứng.
Phụ lục
1. Danh sách các nhãn sử dụng trong bài toán gán ngữ nghĩa tiếng Việt (dựa theo mô tả của VietTreebank):
1.1. Nhãn từ loại: TT Tên Chú thích 1 N Danh từ 2 Np Danh từ riêng 3 Nc Danh từ chỉ loại 4 Nu Danh từ chỉ đơn vị 5 V Động từ 6 A Tính từ 7 P Đại từ 8 L Lượng từ 9 M Số từ 10 R Phụ từ 11 E Giới từ 12 C Liên từ 13 I Thán từ 14 T Trợ từ, tiểu từ, từ chỉ hình thái 15 U Từ đơn lẻ 16 Y Từ viết tắt
17 X Các từ không phân loại được
1.2. Nhãn cú pháp
TT Tên Chú thích 1 NP Cụm danh từ 2 VP Cụm động từ 3 AP Cụm tính từ 4 RP Cụm phụ từ 5 PP Cụm giới từ 6 QP Cụm từ chỉ số lượng 7 MDP Cụm từ tình thái
8 WHNP Cụm danh từ nghi vấn (ai, cái gì, con gì …)
9 WHAP Cụm tính từ nghi vấn (lạnh thế nào, đẹp ra sao…) 10 WHRP Cụm từ nghi vấn dùng khi hỏi về thời gian, nơi chốn… 11 WHPP Cụm giới từ nghi vấn (với ai, bằng cách nào…)
Tập nhãn mệnh đề
TT Tên Chú thích
1 S Câu trần thuật (khẳng định hoặc phủ định)
2 SQ Câu hỏi
Tập nhãn chức năng cú pháp
TT Tên Chú thích
1 SUB Danh từ
2 DOB Danh từ riêng
3 IOB Danh từ chỉ loại
4 TPC Danh từ chỉ đơn vị
5 PRD Động từ
6 LGS Tính từ
7 EXT Đại từ
8 H Lượng từ
9-12 TC, CMD, EXC, SPL Nhãn phân loại câu: đề-thuyết, mệnh lệnh, cảm thán, đặc biệt
13 TTL Tít báo hay tiêu đề
14 VOC Thành phần than gọi
Tập nhãn chức năng trạng ngữ
TT Tên Chú thích
1 TMP Nhãn chức năng trạng ngữ chỉ thời gian 2 LOC Nhãn chức năng trạng ngữ chỉ nơi chốn 3 DIR Nhãn chức năng trạng ngữ chỉ hướng 4 MNR Nhãn chức năng trạng ngữ chỉ cách thức
5 PRP Nhãn chức năng trạng ngữ chỉ mục đích hay lý do
6 ADV Nhãn chức năng trạng ngữ nói chung (dùng khi trạng ngữ không thuộc một trong các loại cụ thể trên)
Tài liệu tham khảo Tiếng Việt
[1] Hoàng Xuân Huấn, 2013, Giáo trình Nhận dạng mẫu, NXB Đại học Quốc gia Hà Nội, Hà Nội.
[2] Nhữ Văn Kiên, 2013, Luận văn Thạc sỹ Nghiên cứu phương pháp tự động phát hiện lỗi trong kho ngữ liệu tiếng Việt được chú giải từ loại, Học viện công nghệ bưu chính viễn thông, Hà Nội.
Tiếng Anh
[3] Collin F Baker, Charles J Fillmore, John B Lowe, 1998, The berkeley framenet project, In Proceedings of the 36th Annual Meeting of the Association for Computational Linguistics and 17th International Conference on Computational Linguistics (COLING/ACL-1998).
[4] Xavier Carreras and Lluís Màrquez, May 2004, Introduction to the CoNLL- 2004 Shared Task: Semantic Role Labeling, In Proceedings of the CoNLL-2004 Shared Task, Boston, MA USA.
[5] Xavier Carreras, Lluís Màrquez, and Grzegorz Chrupała, May 2004, Hierarchical Recognition of Propositional Arguments with Perceptrons, In Proceedings of the CoNLL-2004 Shared Task, Boston, MA USA.
[6] John Chen, Owen Rambow, 2003, Use of deep linguistic features for the recognition and labeling of semantic arguments, In Proceedings of the 2003 Conference on Empirical Methods in Natural Language Processing (EMNLP- 2003).
[7] Wen-Chi Chou, Richard Tzong-Han Tsai, Ying-Shan Su, Wei Ku, TingYi Sung, Wen-Lian Hsu, 2006, A semi-automatic method for annotating a biomedical proposition bank, p5-12, In Proceedings of the Workshop on Frontiers in Linguistically Annotated Corpus.
[8] Trevor Cohn and Philip Blunsom, June 2005, Semantic Role Labelling with Tree Conditional Random Fields, In Proceedings of the Ninth Conference on Computational Natural Language Learning (CoNLL-2005), pages 169- 172, Ann Arbor, MI, USA.
[9] Michael Collins, 1997, Three generative, lexicalized models for statistical parsing, In Philip R. Cohen and Wolfgang Wahlster, editors, Proceedings of the 35th Annual Meeting of the Association for Computational Linguistics (ACL- 1997), pages 16–23, Somerset, New Jersey.
[10] Ann Copestake, Dan Flickinger, 2000, An open-source grammar development environment and broad-coverage english grammar using HPSG, In Proc of LREC, Athens, Greece, pp. 591-598.
[11] D.A. Dahl, Palmer, M. S., and Passonneau, R. J., 1987, Nominalizations inpundit, In Proceedings of the 25th annual meeting on Association for Computational Linguistics, pages 131–139, Morristown, NJ, USA. Association for Computational Linguistics.
[12] Hoa Trang Dang, Martha Palmer, June- 2005, The role of semantic roles in disambiguating verb senses, In Proceedings of the 43rd Annual Meeting of the Association for Computational Linguistics, Ann Arbor, MI, USA.
[13] Richard Durbin, Sean R. Eddy, Anders Krogh, Graeme Mitchison, 1998, "Biological sequence analysis. Probabilistic models of proteins and nucleic acids", Cambridge University Press, p356.
[14] Charles. J. Fillmore, 1968, The case for case, In Bach, E. and Harms, R., editors, Universals in Linguistic Theory. Holt, Rinehart, and Winston.
[15] Daniel Gildea, Daniel Jurafsky, September 2002, "Automatic Labeling of Semantic Roles", Journal Computational Linguistics, 28(3), p245-288.