สรุป Survey of Named Entity Recognition and Classification (NERC)

lukkiddd
lukkiddd
Published in
4 min readDec 20, 2017

สวัสดีครับทุกคน ก่อนอื่นเลยต้องขอขอบคุณพี่ Guangming C. Sangkeettrakarn มาก ๆ ที่เอา survey มาให้อ่านครับ

หลังจากอ่านแล้ว วันนี้ก็จะขอเอามาสรุปให้อ่านกันคร่าว ๆ ครับ

Survey นี้เขียนโดย David Nadeau, และ Satoshi Sekine จาก National Research Council Canada / New York University ครับ

หมายเหตุ: คำว่า “เร็ว ๆ นี้, ไม่นานนี้” ในบทความนี้ หมายถึงเมื่อปี 2006 นะครับ

ซึ่งใน survey เนี่ยเค้าก็แบ่งการนำเสนอเป็น 5 ส่วนด้วยกันดังนี้

Sections

  1. ความเป็นมาของ NERC: 1991 to 2006
    1.1. Language
    1.2. Textual genre หรือ Domain
    1.3. Entity type
  2. Learning methods
    2.1. Supervised learning
    2.2. Semi-supervised learning
    2.3. Unsupervised learning
  3. Feature space
    3.1. Word-level features
    3.2. List lookup features
    3.3. Document and corpus features
  4. Evaluation
    4.1. MUC evaluations
    4.2. Exact-match evaluations
    4.3. ACE evaluations
  5. Conclusion

เรามาเริ่มกันเลยดีกว่าครับ

1. ความเป็นมาของ NERC: 1991 to 2006

คำว่า Named Entity ถูกใช้กันอย่างแพร่หลายในเรื่องของ Natural Language Processing ซึ่งเป็นศาสตร์ที่เกี่ยวกับการ Extract ข้อมูลออกจาก Unstructed text ยกตัวอย่างเช่น เอาชื่อของ คน, องค์กร ออกมาจากข่าวในหนังสือพิมพ์ เป็นต้น

1.1 Language

ผลงานการวิจัย NERC ไม่ได้มีแค่ภาษาอังกฤษ แต่มีผลงานวิจัยอีกมากที่พูดถึงปัญหาในภาษาอื่น ๆ ด้วย ยกตัวอย่างเช่น ภาษา German, Spain, Dutch, Japanese, Chinese, French, Greek, Italian, Basque, Bulgarian, Catalan, Cebuano, Danish, Hindi, Korean, Romanian, Russian, Swedish, Turkish, Portuguese, Arabic และอีกมากมายหลายภาษาที่เกิดขึ้นในช่วง 15 ปี ที่ผ่านมา

1.2 Textual genre หรือ Domain

Textual genre — รูปแบบข้อความ (ข่าว, วิทยาศาสตร์, ทางการ, ไม่เป็นทางการ) หรือ Domain — หัวข้อ (กีฬา, ธุรกิจ, การเงิน) ได้ถูกละเลยในการทำ NERC

มีงานวิจัยไม่เยอะมากนักที่นำเรื่อง Textual genre หรือ Domain เข้ามาเกี่ยวข้อง เช่นงานของ D.Maynard et al. (2001) ที่ออกแบบระบบสำหรับอีเมลล์ ข้อความเชิงวิทยาศาสตร์ และข้อความเชิงศาสนา

การทดลองในงานวิจัยเหล่านี้ ทำให้รู้ว่าการนำระบบที่ออกแบบกับ Textual genre หรือ Domain ใดใด ย้ายไปทำงานกับอีก Domain นึงยังคงเป็นเรื่องที่ท้าทายอยู่

1.3 Entity type

งานวิจัยส่วนใหญ่มักจะศึกษาใน 3 ประเภทใหญ่ ๆ คือ “persons”, “locations” และ “organization” ซึ่ง 3 ประเภทนี้รวมกันเรียกว่า “enamex”

  • “locations” สามารถแบ่งเป็นส่วนย่อย ๆ หลาย ๆ ส่วนได้อีก เช่น city, state, country
  • “persons” ก็อาจจะแบ่งไปตามแต่ละอาชีพอีก ว่าเป็นชื่อของ คนในอาชีพอะไร เช่น politician, entertainer
  • “miscellaneouse” ได้ถูกใช้ในงานประชุม CONLL สำหรับชื่ออื่น ๆ ที่ไม่ได้อยู่ใน “enamex” เช่น “product” — (E.Bick 2004)
  • “timex” คือประเภทของ “เวลา” และ “วันที่”
  • “numex”
  • “money”
  • “percent”
  • และอื่น ๆ อีกมากมาย

ในงานใหม่ ๆ ได้มีงานศึกษาที่เกี่ยวกับการ extract ข้อมูล โดยไม่สนประเภทใดใดเลยที่เรียกกันว่า “open domain” NERC (ของ E. Alfonseca & Manandhar 2002, R. Evans 2003)

2. Learning Methods

ความสามารถในการ recognize entity ถือเป็นส่วนสำคัญในการทำ NERC โดยการศึกษาแต่ก่อนส่วนใหญ่จะใช้การกำหนด Rule-based ด้วยมือ ทีละ rule ล่าสุดเป็นการใช้ Supervised learning ในการสร้าง Rule-based ขึ้นมาแบบอัตโนมัติ

โดยถ้าหากว่าเราไม่มี Training example หรือข้อมูลตัวอย่างที่ใช้สำหรับเทรน การกำหนด Rule ด้วยมือ ยังคงเป็นวิธีที่ดีที่สุดอยู่

2.1 Supervised Learning

เทคนิคที่โดดเด่นในปัจจุบันคือ Supervised learning ไม่ว่าจะเป็น

  • Hidden Markov Models (HMM)
  • Decision Trees
  • Maximum Entropy Models (ME)
  • Support Vector Machines (SVM)
  • Conditional Random Fields (CRF)

วิธีการเหล่านี้คือ Supervised Learning method ที่ใช้ในการเรียนรู้การ Recognize entity จากการอ่าน Corpus ขนาดใหญ่ที่ labeled แล้ว จดจำ list ของ entity แล้วสร้าง rule เพื่อแยกแยะ entity แต่ละอันออกจากกัน จากการจำแนก features

2.2 Semi-supervised Learning

คำว่า “semi-supervised” (หรือเรียกอีกอย่างว่า “weakly supervised”) อันนี้ก็ค่อนข้างใหม่ โดยเทคนิคหลักของ “semi-supervised” คือ “bootstrapping” และค่อย ๆ พัฒนาความฉลาดขึ้นเรื่อย ๆ จาก set ของข้อมูลชุดเล็ก ๆ

ยกตัวอย่างเช่น เราต้องการจะหา “ชื่อโรค” ในเอกสารการแพทย์ มันอาจจะเริ่มทำงานดังนี้ครับ

  1. เราบอก “ชื่อโรค” ให้กับระบบ ไม่กี่ชื่อ (สมมติ 5 ชื่อ)
  2. ระบบไปค้นหา ประโยคที่มี “ชื่อโรค” เหล่านั้นออกมา แล้วพยายามทำความเข้าใจ บริบทรอบ ๆ ในประโยคนั้น
  3. เอาข้อมูลบริบทรอบ ๆ ไปหา “ชื่อโรค” อื่น ๆ เพิ่มเติม ที่อยู่ในบริบทคล้าย ๆ กัน
  4. แล้วก็ทำแบบนี้กับข้อมูลใหม่ด้วย

ด้วยวิธีการนี้ทำให้จำนวนของ “ชื่อโรค” และ “บริบท” ที่เกี่ยวข้องก็จะเยอะขึ้นเรื่อย ๆ ทำให้มันแม่นมากขึ้นเรื่อย ๆ ครับ

ลองอ่านเพิ่มเติมเกี่ยวกับ “semi-supervised NERC” ของ (Nadeau et al. 2006) ดูครับ

2.3 Unsupervised Learning

วิธีทั่วไปที่ใช้ใน Unsupervised learning คือ การ clustering นอกจากนี้ก็ยังมีวิธีอื่น ๆ อีก เช่น ใช้ lexical resource หรือ การคำนวนเชิงสถิติ

3. Feature space

Features เป็น คุณสมบัติของข้อความที่ออกแบบมาเพื่อใช้ใน algorithm

ตัวอย่างของ feature ก็อย่างเช่น boolean variable ที่บอกว่า คำนี้ขึ้นต้นด้วยตัวษรใหญ่ไหม หรือ numberic attribute ที่บอกความยาวของตัวอักษรในหนึ่งคำ เป็นต้น

ในส่วนนี้ survey เค้าก็พูดถึง features ที่สำคัญ​ ๆ ในการ recognition หรือ classification ของ named entity โดยแบ่งเป็น 3 เรื่องหลัก ๆ คือ

  • Word-level
  • List lookup
  • Document and corpus

3.1 Word-level features

A survey for of named entity recognition and classification (feature space — word-level)

3.2 List lookup features

A survey for of named entity recognition and classification (feature space — list-lookup)

3.3 Document and corpus features

A survey for of named entity recognition and classification (feature space —document and corpus)

4. Evaluation

หลังจากที่เราสร้างโมเดลหรือหาวิธีการ recognize entity ได้แล้ว เราจะรู้ได้ไงว่าโมเดลหรือวิธีที่เราสร้างขึ้นมานั้น มีความแม่นยำมากแค่ไหน

ใน survey เค้าก็ได้พูดถึงวิธีการประเมินความแม่นยำไว้ 3 วิธีดังนี้ครับ

4.1 MUC evaluations (Message Understanding Conference)

การประเมินโดยดูจาก 2 แกน คือ correct type กับ correct text

ยกตัวอย่างเช่น

{"person", "Robert is"}

จากตัวอย่างเป็น correct type แต่ว่าไม่ correct text เนื่องจากมีคำว่า “is” ติดมาด้วย

และมีวิธีการคำนวน Precision, Recall ดังนี้

COR: Correct answer
ACT: Actual system guesses
POS: Possible entities in the solutions

Precision: COR/ACT
Recall: COR/POS

4.2 Exact-match evaluations

วิธีนี้ก็เป็นไปตามชื่อเลยครับ Exact-match คือนับเฉพาะอันที่ถูกต้องเป๊ะๆ เลย

ยกตัวอย่างเช่น มี 5 entities เดาถูก 1 อัน ดังนั้น
Precision คือ 1/5 ≈ 20%
Recall
คือ 1/5 ≈ 20%

4.3 ACE evaluation (Automatic Content Extraction)

เค้าบอกว่า entity แต่ละตัวมี weight ของมัน และ weight ของทุกตัวรวมกันจะได้ maximal proportion (MAXVAL) ของ final score หรือที่เรียกว่า Entity Detection and Recognition Value (EDR)

ยกตัวอย่างเช่น ถ้า person มีคะแนน 1 คะแนน แล้ว organization มี 0.5 คะแนน ดังนั้นจะต้องมี 2 organization เพื่อจะ balance คะแนนกับ person นอกจากนี้อาจจะมี entity บางประเภทที่มีคะแนนน้อยมาก (อาจจะ 0.05) ขึ้นอยู่กับ ACE parameter ที่กำหนด

อ่านแล้ว งง ๆ ไหมครับ ผมก็ยังไม่เข้าใจ ACE evaluation เท่าไหร่ เดี๋ยวหาข้อมูลเพิ่มเติมแล้วจะมาเขียนเพิ่มนะครับ :D หรือถ้าใครมีข้อมูลหรือ Paper รบกวน comment บอกได้เลยนะคร้าบบ

5. Conclusion

Named Entity Recognition มีการพัฒนาอย่างต่อเนื่องมามากว่า 15 ปี มีเป้าหมายเพื่อจะ Extract ข้อมูลประเภทต่าง ๆ (ชื่อ, วันที่, เวลา, สถานที่) ออกมาจากข้อความ นอกจากนี้มีมากกว่า 20 ภาษา และมีประเภทของ entity มากกว่า 200 ประเภท

งานวิจัยส่วนมากยังสนใจในข้อมูลแบบเจาะจงประเภทหัวข้อ เช่น บทความข่าว, ข้อมูล web page

Survey นี้ได้พูดถึงภาพรวมของเทคนิคในการสร้างระบบ NERC ตั้งแต่การกำหนด Rule-based ด้วยมือ ที่ให้ผลลัพธ์ดีและแม่นยำ แต่ก็แลกมาด้วยเวลาที่ต้องใช้ในการนั่งกำหนด rule ต่าง ๆ, supervised learning ที่จำเป็นต้องมีข้อมูล corpus ขนาดใหญ่ที่ labeled แล้ว เมื่อเร็ว ๆ นี้ก็ยังมีการลองสร้าง semi-supervised และ unsupervised learning เพื่อให้สามารถ recognize entity ได้อย่างรวดเร็วโดยไม่ต้องมีมูล corpus ขนาดใหญ่ที่ labeled แล้ว

Feature ก็นับเป็นเรื่องสำคัญไม่แพ้กับการเลือก Machine learning algorithm รวมถึงวิธี evaluation แบบต่าง ๆ เพื่อใช้วัดความสามารถของระบบที่เราออกแบบมา

จบแล้วนะครับสำหรับสรุปของ Survey NERC นี้ หากมีข้อสงสัย ข้อเสนอแนะ ติชม พูดคุยกันในช่อง comment ได้เลยนะครับ หรือถ้าใครสนใจศึกษาเกี่ยวกับ NLP ภาษาไทยก็เข้าไปคุยกันได้ที่ Thai NLP นะครับ

หรือถ้าใครอยากจะทำแชทบอทก็มีกลุ่ม Thai Bot Maker และ Open Thai Chatbot ให้เข้าไปติดตาม หรือพูดคุยกันได้ครับ

แล้วพบกันใหม่บทความหน้านะครับ สวัสดีคร้าบบบ :D

https://www.facebook.com/groups/408004796247683/

บทความที่น่าสนใจเกี่ยวกับ NLP และ Chatbot

Reference:

--

--