خودکار کردن پیش برچسب گذاری PDF برای Amazon Comprehend | خدمات وب آمازون

خودکار کردن پیش برچسب گذاری PDF برای Amazon Comprehend | خدمات وب آمازون

درک آمازون یک سرویس پردازش زبان طبیعی (NLP) است که API های از پیش آموزش دیده و سفارشی را برای استخراج بینش از داده های متنی ارائه می دهد. مشتریان آمازون Comprehend می‌توانند مدل‌های شناسایی موجودیت با نام سفارشی (NER) را برای استخراج موجودیت‌های مورد علاقه، مانند مکان، نام شخص و تاریخ، که مختص کسب‌وکارشان هستند، آموزش دهند.

برای آموزش یک مدل سفارشی، ابتدا داده های آموزشی را با حاشیه نویسی دستی موجودیت ها در اسناد آماده می کنید. این را می توان با ابزار حاشیه نویسی اسناد نیمه ساختار یافته را درک کنید، که ایجاد می کند Amazon SageMaker Ground Truth کار با یک الگوی سفارشی، به حاشیه نویسان اجازه می دهد تا جعبه های محدود کننده اطراف موجودیت ها را مستقیماً روی اسناد PDF ترسیم کنند. با این حال، برای شرکت‌هایی که داده‌های موجود جدولی در سیستم‌های ERP مانند SAP دارند، حاشیه‌نویسی دستی می‌تواند تکراری و وقت‌گیر باشد.

برای کاهش تلاش برای آماده‌سازی داده‌های آموزشی، یک ابزار پیش برچسب‌گذاری با استفاده از آن ساختیم توابع مرحله AWS که به طور خودکار اسناد را با استفاده از داده های موجود جدولی پیش حاشیه نویسی می کند. این به طور قابل توجهی کار دستی مورد نیاز برای آموزش مدل‌های تشخیص دقیق موجودیت سفارشی در Amazon Comprehend را کاهش می‌دهد.

در این پست، شما را در مراحل راه‌اندازی ابزار پیش برچسب‌گذاری راهنمایی می‌کنیم و نمونه‌هایی از نحوه حاشیه‌نویسی خودکار اسناد از یک عمومی را نشان می‌دهیم. مجموعه داده نمونه صورتحساب بانکی در قالب PDF. کد کامل در دسترس است GitHub repo.

بررسی اجمالی راه حل

در این بخش، ورودی ها و خروجی های ابزار pre-labeling را مورد بحث قرار می دهیم و یک نمای کلی از معماری راه حل ارائه می دهیم.

ورودی ها و خروجی ها

به عنوان ورودی، ابزار پیش برچسب‌گذاری اسناد PDF را که حاوی متن هستند می‌گیرد تا حاشیه‌نویسی شود. برای نسخه ی نمایشی، از صورتحساب های بانکی شبیه سازی شده مانند مثال زیر استفاده می کنیم.

خودکار کردن پیش برچسب گذاری PDF برای Amazon Comprehend | خدمات وب آمازون هوش داده پلاتو بلاک چین. جستجوی عمودی Ai.

این ابزار همچنین یک فایل مانیفست می گیرد که اسناد PDF را با موجودیت هایی که می خواهیم از این اسناد استخراج کنیم، نقشه برداری می کند. موجودیت ها از دو چیز تشکیل شده اند: expected_text برای استخراج از سند (به عنوان مثال، AnyCompany Bank) و مربوطه entity_type (مثلا، bank_name). بعداً در این پست، نحوه ساخت این فایل مانیفست را از یک سند CSV مانند مثال زیر نشان می‌دهیم.

خودکار کردن پیش برچسب گذاری PDF برای Amazon Comprehend | خدمات وب آمازون هوش داده پلاتو بلاک چین. جستجوی عمودی Ai.

ابزار pre-labeling از فایل مانیفست برای حاشیه نویسی خودکار اسناد با موجودیت های مربوطه استفاده می کند. سپس می‌توانیم از این حاشیه‌نویسی مستقیماً برای آموزش مدل آمازون Comprehend استفاده کنیم.

از طرف دیگر، می‌توانید یک کار برچسب‌گذاری SageMaker Ground Truth برای بررسی و ویرایش انسانی ایجاد کنید، همانطور که در تصویر زیر نشان داده شده است.

خودکار کردن پیش برچسب گذاری PDF برای Amazon Comprehend | خدمات وب آمازون هوش داده پلاتو بلاک چین. جستجوی عمودی Ai.

وقتی بررسی کامل شد، می‌توانید از داده‌های حاشیه‌نویسی برای آموزش یک مدل شناسایی نهاد سفارشی آمازون Comprehend استفاده کنید.

معماری

ابزار پیش برچسب گذاری از چندین مورد تشکیل شده است AWS لامبدا توابع تنظیم شده توسط یک ماشین حالت توابع Step. این دارای دو نسخه است که از تکنیک های متفاوتی برای ایجاد حاشیه نویسی های اولیه استفاده می کنند.

اولین تکنیک این است تطبیق فازی. این به یک فایل پیش نمایش با موجودیت های مورد انتظار نیاز دارد. این ابزار از الگوریتم تطبیق فازی برای ایجاد حاشیه‌نویسی‌های اولیه با مقایسه شباهت متن استفاده می‌کند.

تطبیق فازی به دنبال رشته‌هایی در سند می‌گردد که مشابه (اما نه لزوماً یکسان) با موجودیت‌های مورد انتظار فهرست‌شده در فایل pre-manifest هستند. ابتدا امتیاز شباهت متن را بین متن مورد انتظار و کلمات در سند محاسبه می کند، سپس تمام جفت های بالاتر از یک آستانه را مطابقت می دهد. بنابراین، حتی اگر هیچ تطابق دقیقی وجود نداشته باشد، تطبیق فازی می‌تواند انواعی مانند اختصارات و املای غلط را پیدا کند. این به ابزار اجازه می دهد تا اسناد را بدون نیاز به نمایش کلمه به کلمه از قبل برچسب گذاری کند. به عنوان مثال، اگر 'AnyCompany Bank' به عنوان یک موجود مورد انتظار فهرست شده است، تطبیق فازی رخدادهای آن را حاشیه نویسی می کند 'Any Companys Bank'. این انعطاف پذیری بیشتری نسبت به تطبیق رشته سخت فراهم می کند و ابزار پیش برچسب گذاری را قادر می سازد تا به طور خودکار نهادهای بیشتری را برچسب گذاری کند.

نمودار زیر معماری این ماشین حالت توابع مرحله ای را نشان می دهد.

خودکار کردن پیش برچسب گذاری PDF برای Amazon Comprehend | خدمات وب آمازون هوش داده پلاتو بلاک چین. جستجوی عمودی Ai.

تکنیک دوم مستلزم الف مدل شناسایی موجودیت آمازون Comprehend از پیش آموزش دیده. این ابزار با استفاده از مدل آمازون Comprehend، با پیروی از گردش کار نشان داده شده در نمودار زیر، حاشیه‌نویسی‌های اولیه را ایجاد می‌کند.

خودکار کردن پیش برچسب گذاری PDF برای Amazon Comprehend | خدمات وب آمازون هوش داده پلاتو بلاک چین. جستجوی عمودی Ai.

نمودار زیر معماری کامل را نشان می دهد.

خودکار کردن پیش برچسب گذاری PDF برای Amazon Comprehend | خدمات وب آمازون هوش داده پلاتو بلاک چین. جستجوی عمودی Ai.

در قسمت های بعدی مراحل پیاده سازی راه حل را طی می کنیم.

ابزار پیش برچسب گذاری را به کار ببرید

مخزن را در ماشین محلی خود کلون کنید:

git clone https://github.com/aws-samples/amazon-comprehend-automated-pdf-prelabeling-tool.git

این مخزن در بالای ابزار حاشیه نویسی اسناد نیمه ساختاریافته ساخته شده است و عملکردهای آن را با این امکان گسترش می دهد که به شما امکان می دهد یک کار برچسب گذاری SageMaker Ground Truth را با حاشیه نویسی های قبلی که قبلاً در SageMaker Ground Truth UI نمایش داده شده است، شروع کنید.

ابزار pre-labeling هم شامل منابع Comprehend Semi-Structured Documents Annotation Tool و هم برخی منابع خاص برای ابزار pre-labeling است. شما می توانید راه حل را با مدل برنامه بدون سرور AWS (AWS SAM)، یک چارچوب متن باز است که می توانید از آن برای تعریف کد زیرساخت برنامه بدون سرور استفاده کنید.

اگر قبلاً ابزار حاشیه نویسی اسناد نیمه ساختاریافته را اجرا کرده اید، به بخش سؤالات متداول در Pre_labeling_tool/README.md برای دستورالعمل‌هایی در مورد نحوه استقرار فقط منابع خاص ابزار پیش برچسب‌گذاری.

اگر قبلاً ابزار را اجرا نکرده‌اید و تازه شروع به کار کرده‌اید، برای استقرار کل راه‌حل، موارد زیر را انجام دهید.

دایرکتوری فعلی را به پوشه ابزار حاشیه نویسی تغییر دهید:

cd amazon-comprehend-semi-structured-documents-annotation-tools

راه حل را بسازید و اجرا کنید:

make ready-and-deploy-guided

فایل pre-manifest را ایجاد کنید

قبل از اینکه بتوانید از ابزار پیش برچسب گذاری استفاده کنید، باید داده های خود را آماده کنید. ورودی های اصلی اسناد PDF و یک فایل پیش نمایش هستند. فایل پیش نمایش حاوی محل هر سند PDF در زیر است 'pdf' و مکان یک فایل JSON با موجودیت های مورد انتظار برای برچسب گذاری 'expected_entities'.

دفترچه یادداشت gene_premanifest_file.ipynb نحوه ایجاد این فایل را نشان می دهد. در نسخه ی نمایشی، فایل pre-manifest کد زیر را نشان می دهد:

[ { 'pdf': 's3://<bucket>/data_aws_idp_workshop_data/bank_stmt_0.pdf', 'expected_entities': 's3://<bucket>/prelabeling-inputs/expected-entities/example-demo/fuzzymatching_version/file_bank_stmt_0.json' }, ...
]

هر فایل JSON فهرست شده در فایل پیش نمایش (زیر expected_entities) شامل فهرستی از فرهنگ لغت، یکی برای هر موجودیت مورد انتظار است. دیکشنری ها دارای کلیدهای زیر هستند:

  • "متن_های مورد انتظار" - لیستی از رشته های متنی ممکن که با موجودیت مطابقت دارند.
  • "نوع_نوع" - نوع موجودیت مربوطه.
  • «لیست_نادیده گرفتن» (اختیاری) - لیست کلماتی که باید در مسابقه نادیده گرفته شوند. این پارامترها باید برای جلوگیری از تطبیق فازی از تطبیق ترکیبات خاصی از کلماتی که می دانید اشتباه هستند استفاده شوند. این می تواند مفید باشد اگر می خواهید هنگام نگاه کردن به نام ها، برخی از شماره ها یا آدرس های ایمیل را نادیده بگیرید.

به عنوان مثال expected_entities PDF نشان داده شده قبلاً به شکل زیر است:

[ { 'expected_texts': ['AnyCompany Bank'], 'entity_type': 'bank_name', 'ignore_list': [] }, { 'expected_texts': ['JANE DOE'], 'entity_type': 'customer_name', 'ignore_list': ['JANE.DOE@example_mail.com'] }, { 'expected_texts': ['003884257406'], 'entity_type': 'checking_number', 'ignore_list': [] }, ...
]

ابزار pre-labeling را اجرا کنید

با فایل pre-manifest که در مرحله قبل ایجاد کردید، ابزار pre-labeling را شروع کنید. برای توضیحات بیشتر به دفترچه یادداشت مراجعه کنید start_step_functions.ipynb.

برای راه اندازی ابزار پیش برچسب گذاری، یک را ارائه دهید event با کلیدهای زیر:

  • از قبل آشکار می شود - هر سند PDF را به آن نقشه می‌دهد expected_entities فایل. این باید حاوی سرویس ذخیره سازی ساده آمازون سطل (Amazon S3) (زیر bucket) و کلید (زیر key) از فایل.
  • پیشوند - برای ایجاد execution_id، که پوشه S3 را برای ذخیره خروجی و نام کار برچسب زدن SageMaker Ground Truth را نامگذاری می کند.
  • entity_types - در رابط کاربری نمایش داده می شود تا حاشیه نویس ها برچسب گذاری کنند. اینها باید همه انواع موجودیت را در فایلهای موجودیت مورد انتظار شامل شود.
  • نام_تیم_کار (اختیاری) - برای ایجاد کار برچسب زدن SageMaker Ground Truth استفاده می شود. این مربوط به نیروی کار خصوصی برای استفاده است. اگر ارائه نشده باشد، به جای کار برچسب‌گذاری SageMaker Ground Truth، فقط یک فایل مانیفست ایجاد می‌شود. بعداً می‌توانید از فایل مانیفست برای ایجاد یک کار برچسب‌گذاری SageMaker Ground Truth استفاده کنید. توجه داشته باشید که از زمان نگارش این مقاله، نمی‌توانید هنگام ایجاد کار برچسب‌گذاری از دفترچه، نیروی کار خارجی فراهم کنید. با این حال، می توانید کار ایجاد شده را شبیه سازی کنید و آن را به یک نیروی کار خارجی در کنسول SageMaker Ground Truth اختصاص دهید.
  • comprehend_parameters (اختیاری) - پارامترهایی برای آموزش مستقیم مدل شناسایی کننده موجودیت سفارشی Amazon Comprehend. در صورت حذف، از این مرحله صرفنظر می شود.

برای راه اندازی ماشین حالت، کد پایتون زیر را اجرا کنید:

import boto3
stepfunctions_client = boto3.client('stepfunctions')

response = stepfunctions_client.start_execution(
stateMachineArn=fuzzymatching_prelabeling_step_functions_arn,
input=json.dumps(<event-dict>)
)

با این کار اجرای ماشین حالت شروع می شود. شما می توانید پیشرفت ماشین حالت را در کنسول Step Functions نظارت کنید. نمودار زیر گردش کار ماشین حالت را نشان می دهد.

خودکار کردن پیش برچسب گذاری PDF برای Amazon Comprehend | خدمات وب آمازون هوش داده پلاتو بلاک چین. جستجوی عمودی Ai.

هنگامی که ماشین حالت کامل شد، موارد زیر را انجام دهید:

  • خروجی های زیر ذخیره شده در را بررسی کنید prelabeling/ پوشه از comprehend-semi-structured-docs سطل S3:
    • فایل های حاشیه نویسی جداگانه برای هر صفحه از اسناد (یکی در هر صفحه در هر سند) در temp_individual_manifests/
    • مانیفست برای کار برچسب زدن SageMaker Ground Truth در consolidated_manifest/consolidated_manifest.manifest
    • مانیفستی که می تواند برای آموزش یک مدل آمازون Comprehend سفارشی استفاده شود consolidated_manifest/consolidated_manifest_comprehend.manifest
  • در کنسول SageMaker، کار برچسب زدن SageMaker Ground Truth را که برای بررسی حاشیه نویسی ایجاد شده است، باز کنید.
  • مدل آمازون Comprehend سفارشی که آموزش داده شده را بررسی و آزمایش کنید

همانطور که قبلاً ذکر شد، این ابزار فقط می‌تواند مشاغل برچسب‌گذاری SageMaker Ground Truth را برای نیروهای کار خصوصی ایجاد کند. برای برون سپاری تلاش‌های برچسب‌گذاری انسانی، می‌توانید کار برچسب‌گذاری را در کنسول SageMaker Ground Truth شبیه‌سازی کنید و هر نیروی کاری را به شغل جدید متصل کنید.

پاک کردن

برای جلوگیری از تحمیل هزینه‌های اضافی، منابعی را که ایجاد کرده‌اید حذف کنید و پشته‌ای را که مستقر کرده‌اید با دستور زیر حذف کنید:

make delete

نتیجه

ابزار پیش برچسب‌گذاری راهی قدرتمند برای شرکت‌ها فراهم می‌کند تا از داده‌های جدولی موجود برای تسریع روند آموزش مدل‌های تشخیص موجودیت سفارشی در آمازون Comprehend استفاده کنند. با پیش‌نویسی خودکار اسناد PDF، تلاش دستی مورد نیاز در فرآیند برچسب‌گذاری را به میزان قابل توجهی کاهش می‌دهد.

این ابزار دارای دو نسخه است: تطبیق فازی و مبتنی بر آمازون Comprehend، که انعطاف‌پذیری در نحوه ایجاد حاشیه‌نویسی‌های اولیه می‌دهد. پس از اینکه اسناد از قبل برچسب‌گذاری شدند، می‌توانید به سرعت آنها را در یک کار برچسب‌گذاری SageMaker Ground Truth مرور کنید یا حتی از بررسی صرفنظر کنید و مستقیماً یک مدل سفارشی Amazon Comprehend را آموزش دهید.

ابزار پیش برچسب‌گذاری به شما امکان می‌دهد تا به سرعت ارزش داده‌های موجودیت تاریخی خود را باز کنید و از آن در ایجاد مدل‌های سفارشی متناسب با دامنه خاص خود استفاده کنید. با سرعت بخشیدن به چیزی که معمولاً پرزحمت‌ترین بخش فرآیند است، شناسایی موجودیت سفارشی با Amazon Comprehend را بیش از همیشه در دسترس قرار می‌دهد.

برای اطلاعات بیشتر در مورد نحوه برچسب‌گذاری اسناد PDF با استفاده از کار برچسب‌گذاری SageMaker Ground Truth، ببینید حاشیه نویسی اسناد سفارشی برای استخراج موجودیت های نامگذاری شده در اسناد با استفاده از آمازون Comprehend و از Amazon SageMaker Ground Truth برای برچسب گذاری داده ها استفاده کنید.


درباره نویسندگان

خودکار کردن پیش برچسب گذاری PDF برای Amazon Comprehend | خدمات وب آمازون هوش داده پلاتو بلاک چین. جستجوی عمودی Ai.اسکار اشناک یک دانشمند کاربردی در مرکز نوآوری هوش مصنوعی مولد است. او علاقه زیادی به غواصی در علم پشت یادگیری ماشینی دارد تا آن را برای مشتریان در دسترس قرار دهد. خارج از محل کار، اسکار از دوچرخه سواری و همگام شدن با روندهای نظریه اطلاعات لذت می برد.

خودکار کردن پیش برچسب گذاری PDF برای Amazon Comprehend | خدمات وب آمازون هوش داده پلاتو بلاک چین. جستجوی عمودی Ai.رومن بسومبس یک معمار یادگیری عمیق در مرکز نوآوری هوش مصنوعی مولد است. او مشتاق ساخت معماری های نوآورانه برای رسیدگی به مشکلات تجاری مشتریان با یادگیری ماشین است.

تمبر زمان:

بیشتر از آموزش ماشین AWS