タイ語の単語切りテストデータにおけるクリーニングの重要性

[一昨日の記事](https://qiita.com/KoichiYasuoka/items/3c2e6fe8897dfe31c344)で触れたThodsaporn Chay-intr, Hidetaka Kamigaito, Manabu Okumura『[Character-Based Thai Word Segmentation with Multiple Attentions](https://doi.org/10.5715/jnlp.30.372)』の筆頭著者から、タイ語の単語切りに用いたデータを[いただくことができた](https://github.com/tchayintr/thwcc-attn/issues/1#issuecomment-1879657298)。だが、いただいたテストデータの中に、妙な単語切りが紛れ込んでいて、閉口してしまった。たとえば「อาจจะ」が「อาจจ」と「ะ」にブッタ切られている。[その点を尋ねてみた](https://github.com/tchayintr/thwcc-attn/issues/1#issuecomment-1879686020)ところ、どうやら元にしたBEST2010が、すでに間違っているらしい。ただ、私(安岡孝一)の手元からは、[オリジナルのBEST2010](https://thailang.nectec.or.th/downloadcenter/indexd28d.html)がイマイチうまくダウンロードできないので、[ミラー版のBEST2010](https://github.com/korakot/corpus/tree/main/BEST)をチェックしてみた。

```
$ test -d corpus || git clone --depth=1 https://github.com/korakot/corpus
$ fgrep '|อาจจ|ะ|' `find corpus/BEST -name '*.txt'`
corpus/BEST/TrainingSet/novel/novel_00078.txt:"|นั่น|ไง|"| |หมอ|ว่า| |"|นั่น|ไง| |หมอ|จึง|ต้อง|ตรวจ|สมอง| |ที|แรก|ก็|ยัง|ไม่|อยาก|ทำ|หรอก|นะ| |เพราะ|อยาก|จะ|ลอง|ดู|อาการ|ทาง|ประสาท|ไป|ก่อน| |บาง|ที|มัน|อาจจ|ะ|เกิด|จาก|การ|วิตกกังวล|อะไร|บาง|อย่าง| |แต่|อีก|ระยะ|หนึ่ง|ถ้า|ไม่|ดี|ขึ้น| |เรา|ก็|จะ|ดู|ความ|ผิด|ปกติ|ใน|สมอง|กัน|เลย| |แต่|ถ้า|เป็น|โรค|ลมชัก|ธรรมดา|ก็|กิน|ยา|ไป|เรื่อย|ๆ| |ไม่|ต้อง|ผ่าตัด|วัน|นี้| |<AB>พ.ศ.</AB>|นี้| |เป็น|โรค|ที่|ยัง|ผ่าตัด|ให้|หาย|ไม่|ได้|นะ|ครับ| |แต่|วัน|หน้า|หมอ|ก็|ไม่|ทราบ|เหมือน|กัน|...|"|
corpus/BEST/TrainingSet/novel/novel_00078.txt:<NE>น้ำตาล</NE>|พูด|ออก|ไป|จาก|ใจจริง| |ครึ่ง|หนึ่ง|ด้วย|ความ|สงสาร|แม่|ที่|อาจจ|ะ|ต้อง|จ่าย|ค่า|ผ่าตัด|<NE>น้ำตาล</NE>| |แพง| |แต่|อีก|ครึ่ง|หนึ่ง|ก็|เพราะ|<NE>น้ำตาล</NE>|กลัว|การ|ผ่าตัด|
corpus/BEST/TrainingSet/novel/novel_00078.txt:"|คุณ|น้า|ฮะ|"| |<NE>พี่เต้น</NE>|เอ่ย|เมื่อ|เห็น|ท่าที|มึนตึง|ของ|แม่| |"|อย่า|เพิ่ง|โกรธ|ผม|เลย|นะ|ฮะ| |บาง|ที|ผม|อาจจ|ะ|ช่วย|อะไร|น้อง|ได้|บ้าง|"|
corpus/BEST/TrainingSet/novel/novel_00078.txt:บรรยากาศ|การ|เรียน|เพื่อ|สอบ|เทียบ|ชวน|ให้|<NE>น้ำตาล</NE>|ตื่นเต้น|ยิ่ง|นัก|เพราะ|มี|เพื่อน|นัก|เรียน|ชาย|มา|เรียน|ด้วย| |เพื่อน|ๆ| |ที่|มา|จาก|โรง|เรียน|เดียว|กับ|<NE>น้ำตาล</NE>|ออก|จะ|กรี๊ดกร๊าด|มาก|กว่า|ปกติ| |เพราะ|ไม่|เคย|เรียน|รวม|กับ|ผู้|ชาย|มา|ก่อน| |<NE>น้ำตาล</NE>|ย้อน|นึก|ไป|ถึง|สมัย|ที่|เรียน|ชั้น|ประถม|ขึ้น|มา|ทันที| |ป่าน|นี้|<NE>ไอ้มดแดง</NE>|มัน|เรียน|อะไร|อยู่|นะ| |บาง|ที|คน|เกเร|แบบ|มัน|อาจจ|ะ|เรียน|โรง|เรียน|อาชีวะ|ก็|ได้|
```

[novel_00078.txt](https://github.com/korakot/corpus/blob/main/BEST/TrainingSet/novel/novel_00078.txt#L64)に、この間違いが集中しているようだ。もうちょっと調べてみよう。

```
$ fgrep '|ะ' `find corpus/BEST -name '*.txt'`
corpus/BEST/TrainingSet/novel/novel_00078.txt:"|นั่น|ไง|"| |หมอ|ว่า| |"|นั่น|ไง| |หมอ|จึง|ต้อง|ตรวจ|สมอง| |ที|แรก|ก็|ยัง|ไม่|อยาก|ทำ|หรอก|นะ| |เพราะ|อยาก|จะ|ลอง|ดู|อาการ|ทาง|ประสาท|ไป|ก่อน| |บาง|ที|มัน|อาจจ|ะ|เกิด|จาก|การ|วิตกกังวล|อะไร|บาง|อย่าง| |แต่|อีก|ระยะ|หนึ่ง|ถ้า|ไม่|ดี|ขึ้น| |เรา|ก็|จะ|ดู|ความ|ผิด|ปกติ|ใน|สมอง|กัน|เลย| |แต่|ถ้า|เป็น|โรค|ลมชัก|ธรรมดา|ก็|กิน|ยา|ไป|เรื่อย|ๆ| |ไม่|ต้อง|ผ่าตัด|วัน|นี้| |<AB>พ.ศ.</AB>|นี้| |เป็น|โรค|ที่|ยัง|ผ่าตัด|ให้|หาย|ไม่|ได้|นะ|ครับ| |แต่|วัน|หน้า|หมอ|ก็|ไม่|ทราบ|เหมือน|กัน|...|"|
corpus/BEST/TrainingSet/novel/novel_00078.txt:<NE>น้ำตาล</NE>|พูด|ออก|ไป|จาก|ใจจริง| |ครึ่ง|หนึ่ง|ด้วย|ความ|สงสาร|แม่|ที่|อาจจ|ะ|ต้อง|จ่าย|ค่า|ผ่าตัด|<NE>น้ำตาล</NE>| |แพง| |แต่|อีก|ครึ่ง|หนึ่ง|ก็|เพราะ|<NE>น้ำตาล</NE>|กลัว|การ|ผ่าตัด|
corpus/BEST/TrainingSet/novel/novel_00078.txt:"|คุณ|น้า|ฮะ|"| |<NE>พี่เต้น</NE>|เอ่ย|เมื่อ|เห็น|ท่าที|มึนตึง|ของ|แม่| |"|อย่า|เพิ่ง|โกรธ|ผม|เลย|นะ|ฮะ| |บาง|ที|ผม|อาจจ|ะ|ช่วย|อะไร|น้อง|ได้|บ้าง|"|
corpus/BEST/TrainingSet/novel/novel_00078.txt:บรรยากาศ|การ|เรียน|เพื่อ|สอบ|เทียบ|ชวน|ให้|<NE>น้ำตาล</NE>|ตื่นเต้น|ยิ่ง|นัก|เพราะ|มี|เพื่อน|นัก|เรียน|ชาย|มา|เรียน|ด้วย| |เพื่อน|ๆ| |ที่|มา|จาก|โรง|เรียน|เดียว|กับ|<NE>น้ำตาล</NE>|ออก|จะ|กรี๊ดกร๊าด|มาก|กว่า|ปกติ| |เพราะ|ไม่|เคย|เรียน|รวม|กับ|ผู้|ชาย|มา|ก่อน| |<NE>น้ำตาล</NE>|ย้อน|นึก|ไป|ถึง|สมัย|ที่|เรียน|ชั้น|ประถม|ขึ้น|มา|ทันที| |ป่าน|นี้|<NE>ไอ้มดแดง</NE>|มัน|เรียน|อะไร|อยู่|นะ| |บาง|ที|คน|เกเร|แบบ|มัน|อาจจ|ะ|เรียน|โรง|เรียน|อาชีวะ|ก็|ได้|
corpus/BEST/TrainingSet/encyclopedia/encyclopedia_00055.txt:แสดง|ว่า|ยัง|ไม่|มี|การ|ใช้|ไม้หันอากาศ| |เพราะ|เสียง|ะ|ใน|คำ|ที่|มี|ตัว|สะกด|ก็|ใช้|พยัญชนะ|สะกด|ซ้ำ| |๒| |ตัว| |เช่น| |มน|น|มัน|
```

あとは[encyclopedia_00055.txt](https://github.com/korakot/corpus/blob/main/BEST/TrainingSet/encyclopedia/encyclopedia_00055.txt#L459)に、誤って混入したらしい「ะ」が1つ。これらの間違いは、元々のBEST2010では`TrainingSet`(訓練データ)に含まれている。

タイ語では「ะ」が語頭に来ることはありえないし、[タイ文字クラスター](https://doi.org/10.1145/355214.355225)(คลัสเตอร์อักษรไทย)もそう設計されている。こういう間違いがテストデータに含まれていると、正しく単語切りできるプログラムのF値が低くなってしまうので、私個人は閉口してしまうのだ。訓練データに間違いが紛れ込むのは避けられないとしても、そこからテストデータを抽出してくるのなら、ちゃんとテストデータはクリーニングしておいてほしいなあ。