KoichiYasuoka / spaCy-Thai

Dependency parser on Thai language
MIT License
24 stars 2 forks source link

Add Thai Discourse Treebank #5

Open wannaphong opened 2 months ago

wannaphong commented 2 months ago

Chulalongkorn University just released Thai Discourse Treebank to public access! Can you train new model for new treebank?

Github: https://github.com/nlp-chula/thai-discourse-treebank/tree/main/data/th-tdtb

Paper:

Ponrawee Prasertsom, Apiwat Jaroonpol, Attapol T. Rutherford; The Thai Discourse Treebank: Annotating and Classifying Thai Discourse Connectives. Transactions of the Association for Computational Linguistics 2024; 12 613–629. doi: https://doi.org/10.1162/tacl_a_00650

KoichiYasuoka commented 2 months ago

Thank you @wannaphong for the information. Now I've just been checking the treebank, and I've found that several sentences have multiple "root"s:

# sent_id = T00178.tsv-5
# text = โดยคำถามที่น่าสนใจในสถานการณ์ช่วงนี้มีดังนี้
1   โดย _   SCONJ   JSBR    _   11  mark    11:mark Seg=B-Conn
2   คำ  _   NOUN    NCMN    _   11  nsubj   11:nsubj    _
3   ถาม _   VERB    VACT    _   2   acl 2:acl   _
4   ที่ _   SCONJ   PREL    _   6   mark    6:mark  _
5   น่า _   AUX XVAM    _   6   aux 6:aux   _
6   สนใจ    _   VERB    VACT    _   2   advcl   2:advcl _
7   ใน  _   ADP RPRE    _   8   case    8:case  _
8   สถานการณ์   _   NOUN    NCMN    _   6   obl 6:obl   _
9   ช่วง    _   NOUN    NCMN    _   8   obl:tmod    8:obl:tmod  _
10  นี้ _   DET DDAC    _   9   det 9:det   _
11  มี  _   VERB    VSTA    _   0   root    0:root  _
12  ดัง _   ADP RPRE    _   0   ROOT    0:ROOT  _
13  นี้ _   DET DDAC    _   12  det 12:det  _

Umm... I need to fix them since my modules (such as spaCy-Thai or esupar) accept single "root" for every sentence. But how do I fix them?

korakot commented 2 months ago

I will help check and see if I can help correct them. For this case ดัง → มี , ดัง shouldn't be ROOT.

KoichiYasuoka commented 2 months ago

Thank you @korakot for your help. And now I find almost all sentences have some kind of mis-annotations. I fixed first five sentences of test.conllu as shown below:

# newdoc_id = T00178.tsv
# sent_id = T00178.tsv-1
# text = "มีชัย"แจงเหตุไม่เลือก"นาม-แก้วสรร"นั่ง
1   "   _   PUNCT   PUNC    _   2   punct   _   SpaceAfter=No
2   มีชัย   _   PROPN   NPRP    _   4   nsubj   _   SpaceAfter=No
3   "   _   PUNCT   PUNC    _   2   punct   _   SpaceAfter=No
4   แจง _   VERB    VACT    _   0   root    _   SpaceAfter=No
5   เหตุ    _   NOUN    NCMN    _   4   obj _   SpaceAfter=No
6   ไม่ _   PART    NEG _   7   advmod  _   SpaceAfter=No
7   เลือก   _   VERB    VACT    _   5   acl _   SpaceAfter=No
8   "   _   PUNCT   PUNC    _   9   punct   _   SpaceAfter=No
9   นาม _   PROPN   NPRP    _   7   obj _   SpaceAfter=No
10  -   _   PUNCT   PUNC    _   9   punct   _   SpaceAfter=No
11  แก้วสรร _   PROPN   NPRP    _   9   flat:name   _   SpaceAfter=No
12  "   _   PUNCT   PUNC    _   9   punct   _   SpaceAfter=No
13  นั่ง    _   VERB    VACT    _   9   acl _   SpaceAfter=No

# sent_id = T00178.tsv-2
# text = "มีชัย"แจงเลือกบุคคลนั่ง ป.ป.ช. ไม่มี"นาม-แก้วสรร"ยอมรับ"แก้วสรร"เป็นคนดีแต่ขาดคุณสมบัติในการเป็น ป.ป.ช. ส่วน"นาม"อายุ 70 ปีต้องพ้นตำแหน่งตาม
1   "   _   PUNCT   PUNC    _   2   punct   _   SpaceAfter=No
2   มีชัย   _   PROPN   NPRP    _   4   nsubj   _   SpaceAfter=No
3   "   _   PUNCT   PUNC    _   2   punct   _   SpaceAfter=No
4   แจง _   VERB    VACT    _   0   root    _   SpaceAfter=No
5   เลือก   _   VERB    VACT    _   4   xcomp   _   SpaceAfter=No
6   บุคคล   _   NOUN    NCMN    _   5   obj _   SpaceAfter=No
7   นั่ง    _   VERB    VACT    _   6   acl _   _
8   ป.ป.ช.  _   PROPN   NPRP    _   7   obj _   _
9   ไม่ _   PART    NEG _   10  advmod  _   SpaceAfter=No
10  มี  _   VERB    VSTA    _   8   acl _   SpaceAfter=No
11  "   _   PUNCT   PUNC    _   12  punct   _   SpaceAfter=No
12  นาม _   PROPN   NPRP    _   10  obj _   SpaceAfter=No
13  -   _   PUNCT   PUNC    _   12  punct   _   SpaceAfter=No
14  แก้วสรร _   PROPN   NPRP    _   12  flat:name   _   SpaceAfter=No
15  "   _   PUNCT   PUNC    _   12  punct   _   SpaceAfter=No
16  ยอมรับ  _   VERB    VACT    _   12  acl _   SpaceAfter=No
17  "   _   PUNCT   PUNC    _   18  punct   _   SpaceAfter=No
18  แก้วสรร _   PROPN   NPRP    _   21  nsubj   _   SpaceAfter=No
19  "   _   PUNCT   PUNC    _   18  punct   _   SpaceAfter=No
20  เป็น    _   AUX VSTA    _   21  cop _   SpaceAfter=No
21  คน  _   NOUN    NCMN    _   4   parataxis   _   SpaceAfter=No
22  ดี  _   VERB    VATT    _   21  acl _   SpaceAfter=No
23  แต่ _   CCONJ   JCRG    _   24  cc  _   SpaceAfter=No
24  ขาด _   VERB    VSTA    _   21  conj    _   SpaceAfter=No
25  คุณสมบัติ   _   NOUN    NCMN    _   24  obj _   SpaceAfter=No
26  ใน  _   ADP RPRE    _   27  case    _   SpaceAfter=No
27  การ _   PART    FIXN    _   24  obl _   SpaceAfter=No
28  เป็น    _   AUX VSTA    _   29  cop _   _
29  ป.ป.ช.  _   PROPN   NPRP    _   27  acl _   _
30  ส่วน    _   CCONJ   JCRG    _   38  cc  _   SpaceAfter=No
31  "   _   PUNCT   PUNC    _   32  punct   _   SpaceAfter=No
32  นาม _   PROPN   NPRP    _   38  nsubj   _   SpaceAfter=No
33  "   _   PUNCT   PUNC    _   32  punct   _   SpaceAfter=No
34  อายุ    _   NOUN    NCMN    _   32  nmod    _   _
35  70  _   NUM DCNM    _   36  nummod  _   _
36  ปี  _   NOUN    CMTR    _   34  clf _   SpaceAfter=No
37  ต้อง    _   AUX XVMM    _   38  aux _   SpaceAfter=No
38  พ้น _   VERB    VACT    _   21  conj    _   SpaceAfter=No
39  ตำแหน่ง _   NOUN    NCMN    _   38  obj _   SpaceAfter=No
40  ตาม _   ADV RPRE    _   38  advmod  _   SpaceAfter=No

# sent_id = T00178.tsv-3
# text = (26 ก.ย.) ผู้สื่อข่าวรายงานว่านายมีชัย ฤชุพันธ์ อดีตประธานและประธานฝ่ายยกร่างกฎหมายของคณะปฏิรูปการปกครองในระบอบประชาธิปไตยอันมีพระมหากษัตริย์ทรงเป็นประมุข (คปค.)
1   (   _   PUNCT   PUNC    _   2   punct   _   SpaceAfter=No
2   26  _   NUM DCNM    _   6   obl _   _
3   ก.ย.    _   NOUN    NCMN    _   2   obl:tmod    _   SpaceAfter=No
4   )   _   PUNCT   PUNC    _   2   punct   _   _
5   ผู้สื่อข่าว _   NOUN    NCMN    _   6   nsubj   _   SpaceAfter=No
6   รายงาน  _   VERB    VACT    _   0   root    _   SpaceAfter=No
7   ว่า _   ADP JSBR    _   16  mark    _   SpaceAfter=No
8   นาย _   NOUN    NCMN    _   16  nsubj   _   SpaceAfter=No
9   มีชัย   _   PROPN   NPRP    _   8   flat:name   _   _
10  ฤชุพันธ์    _   PROPN   NPRP    _   8   flat:name   _   _
11  อดีต    _   NOUN    NCMN    _   8   appos   _   SpaceAfter=No
12  ประธาน  _   NOUN    NCMN    _   11  nmod    _   SpaceAfter=No
13  และ _   CCONJ   JCRG    _   14  cc  _   SpaceAfter=No
14  ประธาน  _   NOUN    NCMN    _   11  conj    _   SpaceAfter=No
15  ฝ่าย    _   NOUN    NCMN    _   14  nmod    _   SpaceAfter=No
16  ยก  _   VERB    VACT    _   6   ccomp   _   SpaceAfter=No
17  ร่าง    _   NOUN    NCMN    _   16  obj _   SpaceAfter=No
18  กฎหมาย  _   NOUN    NCMN    _   17  nmod    _   SpaceAfter=No
19  ของ _   ADP RPRE    _   20  case    _   SpaceAfter=No
20  คณะ _   NOUN    NCMN    _   16  obl _   SpaceAfter=No
21  ปฏิรูป  _   VERB    VACT    _   20  acl _   SpaceAfter=No
22  การ _   PART    FIXN    _   21  obj _   SpaceAfter=No
23  ปกครอง  _   VERB    VACT    _   22  acl _   SpaceAfter=No
24  ใน  _   ADP RPRE    _   25  case    _   SpaceAfter=No
25  ระบอบ   _   NOUN    NCMN    _   23  obl _   SpaceAfter=No
26  ประชาธิปไตย _   NOUN    NCMN    _   25  compound    _   SpaceAfter=No
27  อัน _   SCONJ   PREL    _   28  mark    _   SpaceAfter=No
28  มี  _   VERB    VSTA    _   25  acl:relcl   _   SpaceAfter=No
29  พระมหากษัตริย์  _   NOUN    NCMN    _   28  obj _   SpaceAfter=No
30  ทรง _   VERB    VACT    _   29  acl _   SpaceAfter=No
31  เป็น    _   AUX VSTA    _   32  cop _   SpaceAfter=No
32  ประมุข  _   NOUN    NCMN    _   30  ccomp   _   _
33  (   _   PUNCT   PUNC    _   34  punct   _   SpaceAfter=No
34  คปค.    _   PROPN   NPRP    _   20  appos   _   SpaceAfter=No
35  )   _   PUNCT   PUNC    _   34  punct   _   SpaceAfter=No

# sent_id = T00178.tsv-4
# text = ตอบคำถามในเว็บไซต์ www.meechaithailand.com เกี่ยวกับการเข้ามาทำหน้าที่ยกร่างธรรมนูญปกครองฉบับชั่วคราวรวมถึงประกาศและคำสั่งต่างๆ ของ คปค.ด้วย
1   ตอบ _   VERB    VACT    _   0   root    _   SpaceAfter=No
2   คำ  _   NOUN    NCMN    _   1   obj _   SpaceAfter=No
3   ถาม _   VERB    VACT    _   2   acl _   SpaceAfter=No
4   ใน  _   ADP RPRE    _   5   case    _   SpaceAfter=No
5   เว็บไซต์    _   NOUN    NCMN    _   3   obl _   _
6   www.meechaithailand.com _   NOUN    NCMN    _   5   nmod    _   _
7   เกี่ยวกับ   _   ADP RPRE    _   8   case    _   SpaceAfter=No
8   การ _   PART    FIXN    _   3   obl _   SpaceAfter=No
9   เข้า    _   VERB    VACT    _   8   acl _   SpaceAfter=No
10  มา  _   AUX XVAE    _   11  aux _   SpaceAfter=No
11  ทำ  _   VERB    VACT    _   9   xcomp   _   SpaceAfter=No
12  หน้าที่ _   NOUN    NCMN    _   11  obj _   SpaceAfter=No
13  ยก  _   VERB    VACT    _   12  acl _   SpaceAfter=No
14  ร่าง    _   NOUN    NCMN    _   13  obj _   SpaceAfter=No
15  ธรรมนูญ _   NOUN    NCMN    _   14  nmod    _   SpaceAfter=No
16  ปกครอง  _   VERB    VACT    _   15  acl _   SpaceAfter=No
17  ฉบับ    _   NOUN    CNIT    _   16  obj _   SpaceAfter=No
18  ชั่วคราว    _   VERB    VATT    _   17  acl _   SpaceAfter=No
19  รวม _   VERB    VSTA    _   1   parataxis   _   SpaceAfter=No
20  ถึง _   ADP RPRE    _   19  fixed   _   SpaceAfter=No
21  ประกาศ  _   NOUN    NCMN    _   19  obj _   SpaceAfter=No
22  และ _   CCONJ   JCRG    _   23  cc  _   SpaceAfter=No
23  คำสั่ง  _   NOUN    NCMN    _   21  conj    _   SpaceAfter=No
24  ต่าง    _   VERB    VSTA    _   23  acl _   SpaceAfter=No
25  ๆ   _   PUNCT   PUNC    _   24  punct   _   _
26  ของ _   ADP RPRE    _   27  case    _   _
27  คปค.    _   PROPN   NPRP    _   21  nmod:poss   _   SpaceAfter=No
28  ด้วย    _   ADV RPRE    _   19  advmod  _   SpaceAfter=No

# sent_id = T00178.tsv-5
# text = โดยคำถามที่น่าสนใจในสถานการณ์ช่วงนี้มีดังนี้
1   โดย _   SCONJ   JSBR    _   11  mark    _   SpaceAfter=No
2   คำ  _   NOUN    NCMN    _   11  nsubj   _   SpaceAfter=No
3   ถาม _   VERB    VACT    _   2   acl _   SpaceAfter=No
4   ที่ _   SCONJ   PREL    _   6   mark    _   SpaceAfter=No
5   น่า _   AUX XVAM    _   6   aux _   SpaceAfter=No
6   สนใจ    _   VERB    VACT    _   2   acl:relcl   _   SpaceAfter=No
7   ใน  _   ADP RPRE    _   8   case    _   SpaceAfter=No
8   สถานการณ์   _   NOUN    NCMN    _   6   obl _   SpaceAfter=No
9   ช่วง    _   NOUN    NCMN    _   8   nmod    _   SpaceAfter=No
10  นี้ _   DET DDAC    _   9   det _   SpaceAfter=No
11  มี  _   VERB    VSTA    _   0   root    _   SpaceAfter=No
12  ดัง _   ADP RPRE    _   13  case    _   SpaceAfter=No
13  นี้ _   PRON    DDAC    _   11  obl _   SpaceAfter=No

You can find that original test.conllu includes so many wrong UPOS-tags, that cause mis-annotation of links...

korakot commented 2 months ago

Here's how I try to filter out sentences with multple roots/ROOTs. From 5076 total, only 3411 are left.

https://colab.research.google.com/drive/1IMhJOKqpZvrxfje73WgOk9P6vO7_eGiy