ทําความเข้าใจการจดจําเอนทิตีที่มีชื่อแบบกําหนดเอง

เสร็จสมบูรณ์เมื่อ

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 ส่วนใหญ่:

  1. กําหนดเอนทิตี: ทําความเข้าใจข้อมูลและเอนทิตีที่คุณต้องการระบุ และพยายามทําให้ชัดเจนที่สุดเท่าที่เป็นไปได้ ตัวอย่างเช่น การกําหนดว่าส่วนใดของใบแจ้งยอดจากธนาคารที่คุณต้องการแยก
  2. แท็กข้อมูล: ติดป้ายหรือแท็กข้อมูลที่มีอยู่ของคุณ โดยระบุข้อความในชุดข้อมูลของคุณให้สอดคล้องกับเอนทิตีนั้น ขั้นตอนนี้เป็นสิ่งสําคัญที่จะทําอย่างถูกต้องและสมบูรณ์เนื่องจากป้ายชื่อที่ไม่ถูกต้องหรือพลาดจะลดประสิทธิภาพของแบบจําลองที่ได้รับการฝึก การเปลี่ยนแปลงที่ดีของเอกสารการป้อนข้อมูลที่เป็นไปได้นั้นมีประโยชน์ ตัวอย่างเช่น ป้ายชื่อชื่อธนาคาร ชื่อลูกค้า ที่อยู่ลูกค้า เงื่อนไขการกู้ยืมหรือบัญชีที่เฉพาะเจาะจง เงินกู้หรือยอดเงินในบัญชี และหมายเลขบัญชี
  3. ฝึกแบบจําลอง: ฝึกแบบจําลองของคุณเมื่อมีการติดป้ายชื่อเอนทิตีของคุณ การฝึกสอนแบบจําลองของคุณวิธีการจดจําเอนทิตีที่คุณติดป้ายชื่อ
  4. ดูแบบจําลอง: หลังจากแบบจําลองของคุณได้รับการฝึกแล้ว ดูผลลัพธ์ของแบบจําลอง หน้านี้มีคะแนน 0 ถึง 1 ที่ยึดตามความแม่นยําและการเรียกใช้ข้อมูลที่ทดสอบ คุณสามารถดูว่าเอนทิตีใดทํางานได้ดี (เช่นชื่อลูกค้า) และเอนทิตีใดที่จําเป็นต้องมีการปรับปรุง (เช่น หมายเลขบัญชี)
  5. ปรับปรุงแบบจําลอง: ปรับปรุงแบบจําลองของคุณโดยการดูเอนทิตีที่ไม่สามารถระบุได้ และเอนทิตีใดที่ถูกแยกอย่างไม่ถูกต้อง ค้นหาว่าข้อมูลใดบ้างที่จําเป็นต้องเพิ่มลงในการฝึกแบบจําลองของคุณเพื่อปรับปรุงประสิทธิภาพการทํางาน หน้านี้แสดงให้คุณเห็นว่าเอนทิตีล้มเหลวอย่างไร และเอนทิตีใด (เช่น หมายเลขบัญชี) ที่จําเป็นต้องแตกต่างจากเอนทิตี้อื่น ๆ ที่คล้ายกัน (เช่น จํานวนเงินกู้)
  6. ปรับใช้แบบจําลอง: เมื่อแบบจําลองของคุณดําเนินการตามที่ต้องการแล้ว ให้ปรับใช้แบบจําลองของคุณเพื่อให้พร้อมใช้งานผ่าน API ในตัวอย่างของเรา คุณสามารถส่งคําขอไปยังแบบจําลองเมื่อมีการปรับใช้เพื่อแยกเอนทิตีใบแจ้งยอดจากธนาคาร
  7. แยกเอนทิตี: ใช้แบบจําลองของคุณสําหรับการแยกเอนทิตี แล็บครอบคลุมวิธีใช้ 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 สําหรับข้อมูลโดยละเอียด