Talkademy / AI-Internship-1400

مستندات هوش مصنوعی تاکادمی
1 stars 1 forks source link

Phase07-Named Entity Recognition-Z.Dehghani #58

Open ZahraDehghani99 opened 3 years ago

ZahraDehghani99 commented 3 years ago
ZahraDehghani99 commented 3 years ago

NER with Look up table

این روش چه مزایا و معایبی داره؟

معایب : چون فقط کلمات محدودی در جدول ما هستند، فقط همین کلمات در متن به عنوان نهاده تشخیص داده میشن واگر کلمه ای باشه در متن که نهاده باشه(مثلا توی این قسمت اسم فرد) اما در جدول نباشه، به عنوان نهاده تشخیص داده نمیشه. پس برای اینکه دقت با این روش بالا بره باید تمام نهاده ها از هر نوعی رو توی این جدول بیاریم که اینکار باعث میشه این روش مناسب نباشه و روش دقیقی به حساب نیاد.

مزایا: روش راحتیه و تمام کلماتی که در جدول هستند رو در متن به عنوان نهاده تشخیص میده

NER with Regex

این روش چه مزایا و چه معایبی داره؟

معایب: حتما باید در کدمون کلماتی که میخواهیم تشخیص بده رو مشخص کنیم مثلا اگر داریم کد رو برای تشخیص نهاده کشور می نویسیم باید بگیم بعد از کلمه ی 'کشور' هرچی اومد به عنوان کشور تشخیص بده و اگر بخواهیم دقیق تر باشه این روش، باید اینکارو برای کلمه های بیشتری انجام بدیم. از دیگر بدی های این روش اینه که مثلا حتما بعد از کلمه ی 'کشور' اسم اون کشور نمیاد، (مثلا : من کشور خود را دوست دارم -> اینجا 'خود' را به عنوان نام کشور تشخیص میده)و یا در این روشی که من پیاده سازی کردم هرجا فقط کلمه ی 'کشور' (بدون اینکه هیچ چیزی قبل و بعدش بدون فاصله بیاد) رو در نظر میگیره و برای مثال در جمله ی 'من کشورم ایران رو دوست دارم' ایران رو به عنوان کشور در نظر نمیگیره و این مشکل سازه.

مزایا : روش راحتیه

NER with lookup table and Regex

آیا میشه از ترکیب این دو روش برای شناسایی نهاده ها استفاده کرد؟ اگه جوابت مثبته، کدش رو توسعه بده

بله امکانش هست، با اینکار از مزایای هر دو روش با هم میشه استفاده کرد. برای مثال اگر نام کشوری در جدول نباشه ولی اسم اون کشور در جمله بعد از کلمه ی 'کشور' بیاد، این روش اون رو تشخیص میده و یا اگر اسم کشوری بدون ذکر کلمه ی 'کشور ' در متن بیاد باز هم به عنوان تشخیص داده می شه.

این روش چه مزایا و معایبی داره؟

مزایا : مزایای هر دو روش رو داره و دقتش بالاتر میره در تشخیص نهاده ها

معایب : باز هم معایب هر دو روش رو داره و با این روش نمیشه همه ی نهاده ها رو تشخیص داد و اگر بخواهیم اینکارو بکنیم نیاز به برنامه نویسی خیلی دقیق برای هر نوع نهاده مورد نظر هست. بخاطر همین نیازه که از روش های دیگه ای مثل پروژه استنفور استفاده بشه که مدل از با یه داده ی آموزشی ترین بشه و از طریق یادگیریش انجام بشه.

NER other methods

حالا خودت جستجو کن چه روش های دیگه ای برای ساخت مدل تشخیص دهنده ی نهاده ها برای زبان فارسی میتونی انجام بدی؟

Using trasformer-based model like BERT (Beheshti-NER or ParsBert)