3 Thực nghiệm
3.1 Cú pháp thành phần của một câu tiếng Việt
Mảnh đất của đạn bom khơng cịn người nghèo . 1 2 3 4 5 6 7 8 9 10 root nsubj nc prep
pobj nn neg dobj amod
punct
Như vậy, thuật toán chuyển tự động từ Viettreebank sang cú pháp phụ thuộc trải qua hai bước chính.
1. Đọc dữ liệu từ Viettreebank tải vào cây cú pháp thành phần
Đầu vào của bước này chính là các câu cú pháp thành phần của Viettree- bank, đầu ra là mô tả theo cây cú pháp thành phần. Thuật toán sử dụng một ngăn xếp, mỗi phần tử trong một ngăn xếp bao gồm: Parent (Nút cha để thêm các nút con vào) và Key (thành phần dữ liệu gồm (, các cụm, các từ,... ). Xây dựng cây cú pháp thành phần dựa vào ngăn xếp như sau:
• Nếu gặp chuỗi ( câu cú pháp thành phần đầu tiên đưa vào ngăn xếp là: Phrase = null, Parent = null.
• Nếu gặp chuỗi tiếp theo ta xét các trường hợp:
– Nếu là chuỗi wi 6= ( thì tạo nút ni mới với thơng tin của chuỗi đầu vào. Xem phần tử ở đầu của ngăn xếp, nếu P arent =null và chỉ có một phần tử (nghĩa là nút gốc) thì sẽ tạo nút Root đưa vào cây, sau đó cập nhật P arent = Root, P hrase = P hrase của từ đang xét. Nếu ngược lại, ni.P arent = P arent của phần tử lấy từ ngăn xếp. Thêm ni là con của nút P arent.
– Nếu là chuỗi ) thì xóa phần tử đầu tiên của ngăn xếp vì các nút đã chèn hết con hoặc là khơng có con.
– Lặp lại các bước trên, thuật tốn kết thúc khi gặp chuỗi )cuối cùng. 2. Chuyển cây cú pháp thành phần sang cú pháp phụ thuộc
Chúng ta phải thực hiện ba bước cho phần này. Tìm các từ phụ thuộc với nhau và gán nhãn phụ thuộc cho mỗi quan hệ đó, cuối cùng là xây dựng
phân tích cú pháp phụ thuộc cho toàn bộ các từ trong câu. Ở bước thứ nhất, tìm các từ phụ thuộc với nhau, chúng ta dựa vào tập luật tìm phần tử trung tâm, dựa vào hướng đi để duyệt các từ trong câu, và theo thứ tự ưu tiên có thể lấy ra được phần tử trung tâm mà từ đó phụ thuộc vào (Algorithm 1). Ở bước thứ hai, duyệt tất cả những nhãn phụ thuộc ở tập nhãn đã xây dựng
Algorithm 1:FindHeadP(P, lstHeadRules, lstElements)
Require: P: a phrase; lstElements: list of elements in P; lstHeadRules: list of head rules
Ensure: head of P
for headRule ∈ lstHeadRules do if headrule.Phrase=P then hr ← headRule break end if end for lstRightHR ← hr.Right
for element ∈ lstElements do for rightEle ∈ lstRightHR do
if element.Phrase=rightEle or element.Pos=rightElethen
head ← element break end if end for end for return head
để tìm ra nhãn phù hợp nhất với hai từ trên (Algorithm 2). Cuối cùng,
Algorithm 2:GetDependentLabel(h, d, lstLabels)
Require: (h, d), where d is a head and d is its dependent; lstLabels: list of labels
Ensure: a dependency label l: h−→l d
for labelele∈ lstlabel do
lef t ← GetInf ormation(h, labelele.Lef t) right ← GetInf ormation(d, labelele.Right)
center ← GetCenterInf ormation(h, d, labelele.center)
if IsLabel(lef t, right, center) then
l ←labelele.Label break
end if end for return l
sau khi đã thực hiện được hai bước cơ bản trên, ta xây dựng cây cú pháp phụ thuộc với tất cả các cung đều được gán nhãn phụ thuộc (Algorithm 3).
Algorithm 3: ConvertToDP(Root,lstHeadRules,lstLabels,dpTree)
Require: Root: root node of the constituency tree; lstHeadRules: list of head rules; lstLabels: list of dependency labels; dpTree: saved dependency tree
Ensure: Head of the sentence
if Root=null then return end if if IsLeaf(Root) then lstElements ← Word(Root) return FindHeadP(Phrase(Root),lstHeadRules,lstElements) end if if AllChildIsLeaf(Root) then forchild ∈ Root do
lstElements ← Word(child)
end for
h ← FindHeadP(Phrase(Root),lstHeadRules,lstElements)
forchild ∈ Root do
label ← GetDependencyLabel(h, child, lstLabels) depTree ← (h, child, label)
end for
return h
end if
lstHeadChilds ← null
forchild ∈ Root do
lstHeadChilds ← ConverToDP(Phrase(child), lstHeadRules,lstLabels, dpTree)
end for
h ← FindHeadP(Phrase(Root),lstHeadRules, lstHeadChilds)
forheadchild ∈ lstHeadChild do
label ← GetDependencyLabel(h, headchild, lstLabels) depTree ← (h, headchild, label)
end for
return h
Để việc chuyển dữ liệu từ Viettreebank sang kho ngữ liệu cú pháp phụ thuộc hiệu quả nhất, chúng tôi đã xây dựng bằng tay gần 3000 câu trong tập dữ liệu Viettreebank để kiểm tra và điều chỉnh. Việc làm này mất khá nhiều thời gian và phải hiểu rõ về luật cũng như các nhãn cú pháp phụ thuộc mới có thể triển khai được.
3.3 Kết quả thực nghiệm
Sau khi thuật toán kết thúc đã tạo ra được bộ tài nguyên với 10165 câu từ treebank sang định dạng CoNLL-X.
Khi đã có tài nguyên là 10165 câu ở định dạng CoNLL-X, chúng tơi trích ra tập những câu có độ dài nhỏ hơn 25 từ (gồm 6546 câu trong Viettreebank). Mục đích của việc làm này là để cho phân tích được chính xác hơn với những câu có độ dài ngắn. Sau đó, chúng tơi chia nhỏ tập dữ liệu. Tiếp theo, chúng tôi thực hiện đánh giá chéo bằng cách: chia bộ dữ liệu ra thành 10 phần, huấn luyện trên 9 phần và phân tích trên 1 phần cịn lại rồi so sánh kết quả, sau đó quay vịng với 9 tập cịn lại. Sau đó, sẽ dùng mơ hình tạo ra khi huấn luyện để phân tích trên dữ liệu mới.
Định dạng CoNLL-X cho một câu tiếng Việt trước khi thực hiện phân tích cú pháp phụ thuộc trong bảng 3.4.
Bảng 3.4: Câu tiếng Việt theo định dạng CoNLL-X chưa được phân tích.
1 Người người N N _ _ _ _ _ 2 Thái_Mỹ Thái_Mỹ Np Np _ _ _ _ _ 3 cố cố V V _ _ _ _ _ 4 quên quên V V _ _ _ _ _ 5 những những L L _ _ _ _ _ 6 mất_mát mất_mát N N _ _ _ _ _ 7 cầm cầm V V _ _ _ _ _ 8 lấy lấy V V _ _ _ _ _ 9 cây cây Nc Nc _ _ _ _ _ 10 cuốc cuốc N N _ _ _ _ _ 11 . . . . _ _ _ _ _
Kết quả của q trình phân tích cú pháp phụ thuộc cho câu tiếng Việt trên là Bảng 3.5.
Vì q trình phân tích cú pháp phụ thuộc tạo ra kết quả trên hai cột HEAD và DEPREL, vì thế việc đánh giá độ chính xác trung bình cho tiếng Việt cũng dựa vào các thơng số trên hai cột: HEAD và DEPREL. Độ chính xác được tính bằng cách: So sánh kết quả sau khi phân tích trên từng cột với dữ liệu tạo được ở bước trên, đếm số từ mà ở đó kết quả ở hai dữ liệu là khác nhau, rồi chia cho
Bảng 3.5: Câu tiếng Việt theo định dạng CoNLL-X đã được phân tích phụ thuộc.
1 Người người N N _ 3 nsubj _ _
2 Thái_Mỹ Thái_Mỹ Np Np _ 1 nn _ _ 3 cố cố V V _ 0 Root _ _ 4 quên quên V V _ 3 vv _ _ 5 những những L L _ 6 det _ _ 6 mất_mát mất_mát N N _ 3 dobj _ _ 7 cầm cầm V V _ 3 parataxis _ _ 8 lấy lấy V V _ 7 vv _ _
9 cây cây Nc Nc _ 7 dobj _ _
10 cuốc cuốc N N _ 9 nc _ _
11 . . . . _ 3 punct _ _
tổng số từ trong tồn dữ liệu phân tích. Kết quả thu được với cả hai cơng cụ và các bộ dữ liệu được trình bày trong Bảng 3.6 và Bảng 3.7.
Bảng 3.6: Kết quả phân tích cú pháp phụ thuộc với tập dữ liệu 2700
STT Test MaltParser MSTPaser
ASU ASL ASU ASL
1 Test1 75.70% 70.20% 75.76% 70.08% 2 Test2 76.10% 70.50% 74.83% 68.87% 3 Test3 75.70% 69.20% 74.54% 69.70% 4 Test4 76.30% 70.50% 77.70% 71.47% 5 Test5 76.30% 69.10% 76.52% 70.34% 6 Test6 73.80% 67.80% 74.39% 68.12% 7 Test7 76.30% 69.70% 76.70% 70.21% 8 Test8 75.70% 69.60% 77.57% 71.17% 9 Test9 76.40% 70.20% 74.90% 69.33% 10 Test10 76.10% 69.40% 75.07% 68.74% Trung bình 75.80% 69.62% 75.80% 69.80%
Như vậy, với bộ nhãn mới và tập dữ liệu mới được tạo thành, kết quả trung bình của tập dữ liệu đã cho thấy sự cải tiến hơn hẳn về hiệu quả phân tích cú pháp phụ thuộc. Trong bài báo trước đây của chúng tơi [15], hiệu quả trung bình đối với ASU là 73.03% và đối với ASL là 66.35%. Tuy nhiên khi kết hợp bộ nhãn mới, hiệu quả đã tăng lên đối với ASU là 76.11% và đối với ASL là 73.70%. Có được hiệu quả này là do tập nhãn quan hệ phụ thuộc mới đã được xây dựng rõ ràng, phù hợp hơn với tiếng Việt. Hơn nữa, thuật toán chuyển đổi
Bảng 3.7: Kết quả phân tích cú pháp phụ thuộc với tập dữ liệu 6546 câu
STT Test MaltParser MSTPaser
ASU ASL ASU ASL
1 Test1 76.80% 74.60% 79.91% 77.24% 2 Test2 77.20% 75.10% 77.63% 75.22% 3 Test3 76.10% 73.00% 77.59% 74.27% 4 Test4 76.50% 73.70% 78.14% 75.18% 5 Test5 73.90% 71.60% 76.19% 73.26% 6 Test6 77.30% 75.00% 79.57% 77.05% 7 Test7 75.20% 72.90% 76.30% 73.97% 8 Test8 75.10% 72.90% 75.68% 73.14% 9 Test9 74.70% 72.10% 75.97% 72.96% 10 Test10 78.30% 76.10% 82.08% 79.70% Trung bình 76.11% 73.70% 77.91% 75.20%
từ Viettreebank sang kho ngữ liệu phụ thuộc mang lại hiệu quả tốt hơn, các câu phụ thuộc trong tập huấn luyện đều xạ ảnh, thỏa mãn các yêu cầu của đầu vào. Đây chưa phải là kết quả tốt nhất đối với phân tích cú pháp phụ thuộc cho tiếng Việt, nhưng cũng được coi là một cải tiến về mặt hiệu suất. Và quan trọng hơn cả là đưa ra được một tập nhãn phù hợp với các đặc trưng trong tiếng Việt. Dựa vào đó, chúng ta có thể phát triển thêm một số thuật toán mới để nâng cao hiệu quả phân tích.
Kết luận
Luận văn đã tìm hiểu và trình bày về phân tích cú pháp phụ thuộc cho tiếng Việt, với những điểm quan trọng sau:
Những vấn đề đã đạt được trong luận văn
• Tìm hiểu về phân tích cú pháp phụ thuộc, là một trong những bài tốn quan trọng của lĩnh vực xử lí ngơn ngữ tự nhiên. Trong đó chú ý đến:
1. Thuật tốn phân tích cú pháp phụ thuộc: Dựa vào đồ thị và dựa vào bước chuyển.
2. Tập nhãn cú pháp phụ thuộc đa ngôn ngữ và tập nhãn cú pháp phụ thuộc tiếng Anh.
• Xây dựng được bộ nhãn quan hệ phụ thuộc cho tiếng Việt, tập quy tắc xác định phần tử trung tâm, thuật toán chuyển tự động từ Viettreebank sang kho ngữ liệu cú pháp phụ thuộc.
• Thực nghiệm: Đánh giá được độ chính xác của q trình phân tích cú pháp phụ thuộc tiếng Việt sử dụng bộ nhãn đã xây dựng với hai cơng cụ phân tích cú pháp MSTParser và MaltParser.
Những vấn đề cần phát triển
• Cải tiến hiệu quả của phân tích cú pháp phụ thuộc cho tiếng Việt.
• Tìm hiểu thêm một số thuật tốn phân tích cú pháp phụ thuộc mới nhất.
• Xây dựng một cơng cụ phân tích cú pháp phụ thuộc hồn thiện cho tiếng Việt.
Các cơng trình cơng bố liên quan đến luận văn
[1] Nguyen, T.L., Ha, M.L., Nguyen, V.H., Nguyen, T.M.H., Le-Hong, P (2013). Building a treebank for Vietnamese dependency parsing, In: The 10th IEEE RIVF, Hanoi, Vietnam, IEEE.
Tài liệu tham khảo
Tài liệu tiếng Việt
[1] Nguyễn Lê Minh, Hoàng Thị Điệp, Trần Mạnh Kế (2008), Nghiên cứu luật hiệu chỉnh kết quả dùng phương pháp MST phân tích cú pháp phụ thuộc tiếng việt, Kỷ yếu Hội thảo ICT.rda’08, Hanoi, Vietnam, pp. 258–267. [2] Lê Hồng Phương, Nguyễn Thị Minh Huyền, Nguyễn Phương Thái, Phan
Thị Hà (2010), Trích rút tự động văn phạm LTAG cho tiếng Việt, Tạp chí Tin học và Điều khiển học.
[3] Nguyễn Phương Thái, Vũ Xuân Lương, Nguyễn Thị Minh Huyền (2008), Xây dựng treebank tiếng Việt, Kỷ yếu hội thảo ICT.rda’08, Hà Nội.
Tài liệu tiếng Anh
[4] Christopher D. Manning and Hinrich Schăutze (1999),Foundations of Statis- tical Natural Language Processing, Massachusetts Institute of Technology, USA.
[5] Daniel Cer, Marie-Catherine de Marneffez, Daniel Jurafskyz, Christopher D. Manning (2010), Parsing to Stanford Dependencies: Trade-offs between speed and accuracy, In Proceedings of LREC-10.
[6] Danqi Chen and Christopher D Manning (2014). A Fast and Accurate De- pendency Parser using Neural Networks, Proceedings of EMNLP.
[7] Dat Quoc Nguyen, Dai Quoc Nguyen, Son Bao Pham, Phuong-Thai Nguyen and Minh Le Nguyen (2014), From Treebank Conversion to Automatic De- pendency Parsing for Vietnamese, In Proceedings of 19th International
Conference on Application of Natural Language to Information Systems, NLDB’14, Springer LNCS, pp. 196-207.
[8] Jiang Guo, Wanxiang Che, David Yarowsky, Haifeng Wang, Ting Liu (2015). Cross-lingual Dependency Parsing Based on Distributed Represen- tations, In Proceedings of the 53nd Annual Meeting of the Association for Computational Linguistics, China.
[9] Joakim Nivre, Johan Hall, Jens Nilsson, Atanas Chanev, Gulsen Eryigit, Sandra Kubler, Svetoslav Marinov, Erwin Marsi (2007), MaltParser: A language-independent system for data-driven dependency parsing, Natural Language Engineering, 13(2), pp. 95-135.
[10] Joakim Nivre, Marco Kuhlmann, Johan Hall (2009), An Improved Oracle for Dependency Parsing with Online Reordering, In Proceedings of the 11th International Conference on Parsing Technologies (IWPT), Paris, France, pp. 73–76.
[11] J. Pennington, R. Socher, and C. Manning (2014).Glove: Global vectors for word representation, In Proceedings of EMNLP, pages 1532–1543, Doha, Qatar.
[12] J. Turian, L. Ratinov, and Y. Bengio (2010),Word representations: A simple and general method for semi-supervised learning, In Proceedings of ACL, pages 384–394, Uppsala, Sweden.
[13] K. Crammer and Y. Singer (2003), Ultraconservative Online Algorithms for Multiclass Problems, Journal of Machine Learning Research 3: pp.951-991. [14] Le-Hong, P., T-M-H. Nguyen, T-L. Nguyen, and M-L. Ha (2015), Fast De- pendency Parsing using Distributed Word Representations, Springer Pro- ceedings of PAKDD 2015 Workshops (LNAI), HCM City, Vietnam.
[15] Nguyen, T.L., Ha, M.L., Nguyen, V.H., Nguyen, T.M.H., Le-Hong, P (2013), Building a treebank for Vietnamese dependency parsing, In: The 10th IEEE RIVF, Hanoi, Vietnam, IEEE.
[16] Marie-Catherine de Marneffe, Christopher D. Manning (2008), Stanford typed dependencies manual, Stanford University, Technical report.
[17] Marie-Catherine de Marneffe, Miriam Connor, Natalia Silveira, Samuel R. Bowman, Timothy Dozat and Christopher D. Manning (2013), More con- structions, more genres: Extending Stanford Dependencies, In Proceedings of the Second International Conference on Dependency Linguistics.
[18] Marie-Catherine de Marneffe, Natalia Silveira, Timothy Dozat, Katri Haver- inen, Filip Ginter, Joakim Nivre, and Christopher D. Manning (2014),Uni- versal Stanford Dependencies: A cross-linguistic typology, In LREC 2014. [19] Mikolov, T., Sutskever, I., Chen, K., Corrado, G.S., Dean, J. (2013), Dis-
tributed representations of words and phrases and their compositionality, In Burges, C., Bottou, L., Welling, M., Ghahramani, Z., Weinberger, K., eds.: Advances in Neural Information Processing Systems 26. Curran Associates, Inc, pp 3111–3119.
[20] P. Le-Hong, T. M. H. Nguyen, and R. Azim (2012),Vietnamese parsing with an automatically extracted tree-adjoining grammar, in Proceedings of the IEEE International Conference in Computer Science: Research, Innovation and Vision of the Future, RIVF, HCMC, Vietnam.
[21] Ryan McDonald, Joakim Nivre (2011), Analyzing and Integrating Depen- dency Parsers, Computational Linguistics, 37(1).
[22] Ryan McDonald, Joakim Nivre (2006),CoNLL-X Shared Task: Multi-lingual Dependency Parsing, Tenth Conference on Computational Natural Lan- guage Learning - New York City.
[23] Turian, J., Ratinov, L., Bengio, Y. (2010), Word representations: A simple and general method for semi-supervised learning, In: Proceedings of ACL, Uppsala, 384–394, Sweden.
[24] Tomas Mikolov, Kai Chen, Greg Corrado, and Jeffrey Dean (2013), Effi- cient Estimation of Word Representations in Vector Space, In Proceedings of Workshop at ICLR.
Website [25] http://www.seas.upenn.edu/ strctlrn/MSTParser/MSTParser.html [26] http://nlp.stanford.edu/software/lex-parser.shtml [27] http://www.maltparser.org [28] http://bionlp.utu.fi/fintreebank.html [29] http://stp.lingfil.uu.se/ mojgan/UPDT.html [30] http://universaldependencies.github.io/docs/ [31] http://www.csie.ntu.edu.tw/ cjlin/liblinear/
Phụ lục
Các quan hệ phụ thuộc cho tiếng Việt asubj: chủ ngữ tính từ
Quan hệ asubj mơ tả tính từ làm chủ ngữ. Trong tiếng Việt, chủ ngữ thường là danh từ, tuy nhiên có một số trường hợp tính từ có thể làm chủ ngữ. Trong những trường hợp này, vị từ thường là từ “là”.
• Xa_xa là hố bom. Xa_xa là hố bom . 1 2 3 4 5 root asubj dobj nn punct • Khỏe là đẹp. Khỏe là đẹp . 1 2 3 4 root asubj acomp punct acomp: bổ ngữ tính từ Bổ ngữ tính từ của một động từ (V) là một tính từ (A) hay cụm tính từ (AP) có chức năng bổ ngữ bắt buộc, tương tự như bổ ngữ của động từ.
Cô ấy nhìn rất đẹp . 1 2 3 4 5 6 root nsubj pmod acomp advmodb punct
Chú ý rằng nếu tính từ làm bổ ngữ khơng bắt buộc thì dùng quan hệ amod.
Ví dụ: “Nó chạy nhanh” thì có phụ thuộc amod(chạy, nhanh).
amod: bổ nghĩa tính từ của danh từ Bổ nghĩa tính từ là tính từ hoặc cụm tính từ bổ nghĩa cho danh từ.
• Nam ăn cá sống. → amod(cá, sống)
Nam ăn cá sống .
1 2 3 4 5
root
nsubj dobj amod punct
• FPT là một cơng ty rất uy tín. → amod(cơng ty, uy tín)
FPT là một cơng_ty rất uy_tín . 1 2 3 4 5 6 7 root nsubj dobj num advmodb amod punct
apredmod: bổ nghĩa tính từ của vị từ Bổ nghĩa tính từ là tính từ hoặc cụm tính từ bổ nghĩa cho vị từ. Vị từ trong tiếng Việt thường là động từ hoặc tính từ.
• Nam đi nhanh → apredmod(đi, nhanh)
Nam đi nhanh .
1 2 3 4
root
nsubj apredmod punct
advmoda: bổ nghĩa phó từ đứng sau Bổ ngữ phó từ là một phó từ (R) hay một cụm phó từ (RP) có chức năng thay đổi nghĩa của từ. Từ được bổ trợ thường là tính từ, cụm tính từ hoặc động từ, cụm động từ. Bổ ngữ này ln đứng sau cụm mà nó bổ trợ.
• Cô ấy đẹp quá → advmoda(đẹp, quá)
Cô ấy đẹp quá .
1 2 3 4 5
root nsubj
pmod advmoda punct
advmodb: bổ nghĩa phó từ đứng trước Bổ ngữ phó từ là một phó từ (R) hay một cụm phó từ (RP) có chức năng thay đổi nghĩa của từ. Từ được bổ trợ thường là tính từ, cụm tính từ hoặc động từ, cụm động từ. Bổ ngữ này ln đứng trước cụm mà nó bổ trợ.
• Cơ ấy rất đẹp → advmodb(đẹp, rất)
Cô ấy rất đẹp .
1 2 3 4 5
root nsubj
pmod advmodb punct
advmodt: bổ nghĩa phó từ thời gian Bổ ngữ phó từ là một phó từ (R) hay một cụm phó từ (RP) có chức năng bổ nghĩa thời giạn cho động từ. Các