ทําความเข้าใจการจดจําเอนทิตีที่มีชื่อแบบกําหนดเอง
NER แบบกําหนดเองคือบริการ Azure API ที่ดูเอกสาร ระบุ และแยกเอนทิตีที่ผู้ใช้กําหนด เอนทิตีเหล่านี้อาจเป็นอะไรก็ได้จากชื่อและที่อยู่จากใบแจ้งยอดจากธนาคารจนถึงการทําเหมืองความรู้เพื่อปรับปรุงผลลัพธ์การค้นหา
NER แบบกําหนดเองเป็นส่วนหนึ่งของภาษา Azure ในเครื่องมือโรงหล่อ
กําหนดเองกับ NER ในตัว
Azure Language ให้การจดจําเอนทิตีในตัวบางอย่าง เพื่อจดจําสิ่งต่างๆ เช่น บุคคล ตําแหน่งที่ตั้ง องค์กร หรือ URL NER ในตัวช่วยให้คุณสามารถตั้งค่าบริการด้วยการกําหนดค่าที่น้อยที่สุดและแยกเอนทิตี หากต้องการเรียกใช้ NER ที่มีอยู่ภายใน ให้สร้างบริการของคุณและเรียกใช้จุดสิ้นสุดสําหรับบริการ NER ดังนี้:
<YOUR-ENDPOINT>/language/analyze-text/jobs?api-version=<API-VERSION>
| ตัวกำหนดตำแหน่ง | ค่า | ตัวอย่าง |
|---|---|---|
<YOUR-ENDPOINT> |
จุดสิ้นสุดสําหรับคําขอ API ของคุณ | https://<your-resource>.cognitiveservices.azure.com |
<API-VERSION> |
เวอร์ชันของ API ที่คุณกําลังเรียกใช้ | 2023-05-01 |
เนื้อความของการเรียกนั้นจะประกอบด้วยเอกสารที่เอนทิตีจะถูกแยกออกมา และส่วนหัวประกอบด้วยคีย์บริการของคุณ
การตอบสนองจากการเรียกด้านบนประกอบด้วยอาร์เรย์ของเอนทิตีที่รู้จัก เช่น:
<...>
"entities":[
{
"text":"Seattle",
"category":"Location",
"subcategory":"GPE",
"offset":45,
"length":7,
"confidenceScore":0.99
},
{
"text":"next week",
"category":"DateTime",
"subcategory":"DateRange",
"offset":104,
"length":9,
"confidenceScore":0.8
}
]
<...>
ตัวอย่างว่าเมื่อใดที่ควรใช้ NER ภายในประกอบด้วยการค้นหาตําแหน่ง ชื่อ หรือ URL ในเอกสารข้อความยาว
เคล็ดลับ
รายการทั้งหมดของประเภทเอนทิตีที่รู้จักพร้อมใช้งานในเอกสาร NER
Custom NER ซึ่งเป็นจุดมุ่งเน้นของส่วนที่เหลือของโมดูลนี้จะพร้อมใช้งานเมื่อเอนทิตีที่คุณต้องการแยกไม่ได้เป็นส่วนหนึ่งของบริการที่มีอยู่ภายในหรือคุณต้องการแยกเอนทิตีเฉพาะ คุณสามารถทําให้แบบจําลอง NER แบบกําหนดเองของคุณเป็นแบบง่ายหรือซับซ้อนตามที่จําเป็นสําหรับแอปของคุณ
ตัวอย่างของเวลาที่คุณต้องการให้ NER แบบกําหนดเองประกอบด้วยข้อมูลทางกฎหมายหรือธนาคารที่เฉพาะเจาะจง การขุดความรู้เพื่อปรับปรุงการค้นหาแค็ตตาล็อกหรือค้นหาข้อความเฉพาะสําหรับนโยบายการตรวจสอบ แต่ละโครงการเหล่านี้จําเป็นต้องมีชุดเฉพาะของเอนทิตีและข้อมูลที่ต้องการแยก
วงจรชีวิตของโครงการ Azure Language
การสร้างแบบจําลองการแยกเอนทิตีโดยทั่วไปจะเป็นไปตามเส้นทางที่คล้ายกันกับคุณลักษณะบริการ Azure Language ส่วนใหญ่:
- กําหนดเอนทิตี: ทําความเข้าใจข้อมูลและเอนทิตีที่คุณต้องการระบุ และพยายามทําให้ชัดเจนที่สุดเท่าที่เป็นไปได้ ตัวอย่างเช่น การกําหนดว่าส่วนใดของใบแจ้งยอดจากธนาคารที่คุณต้องการแยก
- แท็กข้อมูล: ติดป้ายหรือแท็กข้อมูลที่มีอยู่ของคุณ โดยระบุข้อความในชุดข้อมูลของคุณให้สอดคล้องกับเอนทิตีนั้น ขั้นตอนนี้เป็นสิ่งสําคัญที่จะทําอย่างถูกต้องและสมบูรณ์เนื่องจากป้ายชื่อที่ไม่ถูกต้องหรือพลาดจะลดประสิทธิภาพของแบบจําลองที่ได้รับการฝึก การเปลี่ยนแปลงที่ดีของเอกสารการป้อนข้อมูลที่เป็นไปได้นั้นมีประโยชน์ ตัวอย่างเช่น ป้ายชื่อชื่อธนาคาร ชื่อลูกค้า ที่อยู่ลูกค้า เงื่อนไขการกู้ยืมหรือบัญชีที่เฉพาะเจาะจง เงินกู้หรือยอดเงินในบัญชี และหมายเลขบัญชี
- ฝึกแบบจําลอง: ฝึกแบบจําลองของคุณเมื่อมีการติดป้ายชื่อเอนทิตีของคุณ การฝึกสอนแบบจําลองของคุณวิธีการจดจําเอนทิตีที่คุณติดป้ายชื่อ
- ดูแบบจําลอง: หลังจากแบบจําลองของคุณได้รับการฝึกแล้ว ดูผลลัพธ์ของแบบจําลอง หน้านี้มีคะแนน 0 ถึง 1 ที่ยึดตามความแม่นยําและการเรียกใช้ข้อมูลที่ทดสอบ คุณสามารถดูว่าเอนทิตีใดทํางานได้ดี (เช่นชื่อลูกค้า) และเอนทิตีใดที่จําเป็นต้องมีการปรับปรุง (เช่น หมายเลขบัญชี)
- ปรับปรุงแบบจําลอง: ปรับปรุงแบบจําลองของคุณโดยการดูเอนทิตีที่ไม่สามารถระบุได้ และเอนทิตีใดที่ถูกแยกอย่างไม่ถูกต้อง ค้นหาว่าข้อมูลใดบ้างที่จําเป็นต้องเพิ่มลงในการฝึกแบบจําลองของคุณเพื่อปรับปรุงประสิทธิภาพการทํางาน หน้านี้แสดงให้คุณเห็นว่าเอนทิตีล้มเหลวอย่างไร และเอนทิตีใด (เช่น หมายเลขบัญชี) ที่จําเป็นต้องแตกต่างจากเอนทิตี้อื่น ๆ ที่คล้ายกัน (เช่น จํานวนเงินกู้)
- ปรับใช้แบบจําลอง: เมื่อแบบจําลองของคุณดําเนินการตามที่ต้องการแล้ว ให้ปรับใช้แบบจําลองของคุณเพื่อให้พร้อมใช้งานผ่าน API ในตัวอย่างของเรา คุณสามารถส่งคําขอไปยังแบบจําลองเมื่อมีการปรับใช้เพื่อแยกเอนทิตีใบแจ้งยอดจากธนาคาร
- แยกเอนทิตี: ใช้แบบจําลองของคุณสําหรับการแยกเอนทิตี แล็บครอบคลุมวิธีใช้ API และคุณสามารถดู การอ้างอิง API สําหรับรายละเอียดเพิ่มเติม
ข้อควรพิจารณาสําหรับการเลือกข้อมูลและปรับแต่งเอนทิตี
เพื่อประสิทธิภาพที่ดีที่สุด คุณจะต้องใช้ทั้งข้อมูลคุณภาพสูงเพื่อฝึกแบบจําลองและชนิดเอนทิตีที่กําหนดไว้อย่างชัดเจน
ข้อมูลคุณภาพสูงจะช่วยให้คุณใช้เวลาในการปรับแต่งน้อยลงและให้ผลลัพธ์ที่ดีขึ้นจากแบบจําลองของคุณ
- ความหลากหลาย - ใช้ได้หลากหลายของชุดข้อมูลที่เป็นไปได้โดยไม่สูญเสียการกระจายในชีวิตจริงที่คาดไว้ในข้อมูลจริง คุณจะต้องใช้ข้อมูลตัวอย่างจากแหล่งข้อมูลมากที่สุดเท่าที่เป็นไปได้ แต่ละรายการมีรูปแบบและจํานวนของเอนทิตี วิธีที่ดีที่สุดคือให้ชุดข้อมูลของคุณแสดงถึงแหล่งข้อมูลที่แตกต่างกันมากที่สุดเท่าที่เป็นไปได้
- การแจกแจง - ใช้การแจกแจงชนิดเอกสารที่เหมาะสม ชุดข้อมูลที่หลากหลายมากขึ้นในการฝึกแบบจําลองของคุณจะช่วยให้แบบจําลองของคุณหลีกเลี่ยงการเรียนรู้ความสัมพันธ์ที่ไม่ถูกต้องในข้อมูล
- ความถูกต้อง - ใช้ข้อมูลใกล้เคียงกับข้อมูลในโลกแห่งความเป็นจริงมากที่สุดเท่าที่เป็นไปได้ ข้อมูลปลอมทํางานเพื่อเริ่มกระบวนการฝึกสอน แต่อาจแตกต่างจากข้อมูลจริงในรูปแบบที่อาจทําให้แบบจําลองของคุณไม่สามารถแยกได้อย่างถูกต้อง
เอนทิตี้ต้องได้รับการพิจารณาอย่างรอบคอบและกําหนดไว้อย่างชัดเจนที่สุดเท่าที่เป็นไปได้ หลีกเลี่ยงเอนทิตีที่ไม่ชัดเจน (เช่น สองชื่อที่อยู่ติดกันบนใบแจ้งยอดจากธนาคาร) เนื่องจากจะทําให้แบบจําลองมีปัญหากับความแตกต่าง ถ้าจําเป็นต้องมีเอนทิตี้ที่ไม่ชัดเจน โปรดตรวจสอบให้แน่ใจว่ามีตัวอย่างเพิ่มเติมสําหรับแบบจําลองของคุณเพื่อเรียนรู้จาก เพื่อให้สามารถทําความเข้าใจความแตกต่างได้
การรักษาเอนทิตีของคุณให้แตกต่างกันจะทํางานได้อีกนานในการช่วยประสิทธิภาพการทํางานของแบบจําลองของคุณ ตัวอย่างเช่น การพยายามแยกข้อมูลเช่น "ข้อมูลติดต่อ" ซึ่งอาจเป็นหมายเลขโทรศัพท์ ที่จับสื่อทางสังคม หรือที่อยู่อีเมลอาจต้องใช้หลายตัวอย่างในการสอนแบบจําลองของคุณอย่างถูกต้อง แต่ลองแบ่งออกเป็นเอนทิตีที่เฉพาะเจาะจงมากขึ้น เช่น "โทรศัพท์" "อีเมล" และ "สื่อทางสังคม" และให้ป้ายชื่อแบบจําลองขึ้นอยู่กับประเภทของข้อมูลการติดต่อที่พบ
วิธีการแยกเอนทิตี
หากต้องการส่งงานการแยก API จําเป็นต้องมีเนื้อความ JSON เพื่อระบุงานที่จะดําเนินการ สําหรับ NER แบบกําหนดเอง งานสําหรับส่วนข้อมูล JSON คือCustomEntityRecognition
ส่วนข้อมูลของคุณจะมีลักษณะคล้ายกับ JSON ต่อไปนี้:
{
"displayName": "string",
"analysisInput": {
"documents": [
{
"id": "doc1",
"text": "string"
},
{
"id": "doc2",
"text": "string"
}
]
},
"tasks": [
{
"kind": "CustomEntityRecognition",
"taskName": "MyRecognitionTaskName",
"parameters": {
"projectName": "MyProject",
"deploymentName": "MyDeployment"
}
}
]
}
ขีดจํากัดของโครงการ
บริการ Azure Language บังคับใช้ข้อจํากัดต่อไปนี้:
- การฝึกอบรม - อย่างน้อย 10 ไฟล์และไม่เกิน 100,000 ไฟล์
- การปรับใช้ - 10 ชื่อการปรับใช้ต่อโครงการ
-
API
- การเขียน - API นี้จะสร้างโครงการ รถไฟ และปรับใช้แบบจําลองของคุณ จํากัดไว้ที่ 10 โพสต์และ 100 GET ต่อนาที
- วิเคราะห์ - API นี้จะทํางานในการแยกเอนทิตีจริง ซึ่งร้องของานและเรียกใช้ผลลัพธ์ จํากัดไว้ที่ 20 รับหรือโพสต์
- โครงการ - บัญชีที่เก็บข้อมูลเพียง 1 รายการต่อโครงการ 500 โครงการต่อทรัพยากรและแบบจําลองที่ได้รับการฝึก 50 รายการต่อโครงการ
- เอนทิตี - แต่ละเอนทิตีสามารถมีได้ถึง 500 อักขระ คุณสามารถมีเอนทิตีได้สูงสุด 200 ชนิด
ดูหน้า ขีดจํากัดการบริการสําหรับภาษา Azure สําหรับข้อมูลโดยละเอียด