خانه هوش مصنوعی انجام مراحل مختلف پیش پردازش متون با استفاده از Parsivar [بخش اول] هوش مصنوعی LLM نوشته شده توسط: تیم فنی نیک آموز تاریخ انتشار: ۲۴ خرداد ۱۳۹۹ آخرین بروزرسانی: ۱۷ تیر ۱۴۰۳ زمان مطالعه: 16 دقیقه ۲.۵ (۲) مقدمه در مقاله قبلی به معرفی و نصب ابزارهای پیش نیاز برای انجام پروژه ها، پایتون و parsivar پرداختیم حال در این آموزش قصد داریم قابلیتهای مختلف این کتابخانه یعنی پارسی ور را مرور کنیم. کدهای این آموزش در این آدرس قرار میگیرند. قبل از شروع ابتدا یک مرحله مهم در پردازش زبان طبیعی یعنی “پیش پردازش داده” را تعریف میکنیم. فرآیند تبدیل داده خام، به فرمتی که برای ماشین خوانا و قابل درک باشد. برای انجام هر فعالیت مرتبط با لازم است متون ابتدا تمیز شده و پیش پردازش میشوند. مراحل پیش پردازش معمولا ثابت بوده و شامل مواردیست که در این آموزش به مرور ابتدا تعریف شده و سپس نحوه استفاده از آن در پارسی ور بررسی میشود. پیش پردازش متون شامل موارد زیر است: نرمال سازی متن تبدیل متن به جملات(Sentence Segmentation) تبدیل جملات به کلمات(Tokenization) ریشه یابی(Stemming) Lemmatization تشخیص نقش کلمات (Part-of-speech Tagging) قطعهبندی (Chunker) پارسر یا تجزیهگر جملات تصحیح خطای املایی (Spell Correction) در هر پروژه معمولا برخی از موارد بالا استفاده میشوند. در این مقاله قسمت اول از لیست بالا آموزش داده میشود و در مقاله بعدی موارد بعدی بررسی خواهند شد. نرمال سازی در فرآیند نرمالسازی میخواهیم همه متون استاندارد و یکپارچه شوند. برای مثال تبدیل اعداد انگلیسی به فارسی ۱ به ۱ حذف اسپیسها و فضاهای خالی اضافی مثل “سلام خوبی” به “سلام خوبی” حذف تشدید از کلمات(چون تشدید مخصوص زبان عربی است) و موارد مختلفی دیگری که بسته به نیاز هر پروژه باید روی متن اعمال شود تا متون همه یکدست شوند. ابتدا برای استفاده از کتابخانه پارسی ور باید آنرا فراخوانی کنیم.سپس برای نرمال سازی(استانداردسازی) متن یک شی از کلاس Normalizer میسازیم.یک متغیر رشتهای با نام دلخواه ایجاد کرده و آن را با یک متن دلخواه مقداردهی میکنیم. متن استفاده شده در کد به صورت زیر است. “به گزارش ایسنا سمینار شیمی آلی از امروز ۱۱ شهریور ۱۳۹۶ در دانشگاه علم و صنعت ایران آغاز به کار کرد. این سمینار تا ۱۳ شهریور ادامه مییابددر اینجا تابع normalizer از شی My_Normalizer را صدا زده و متغیرمان را به عنوان آرگومان ارسال میکنیم.خروجی به صورت زیر است.مواردی که اصلاح شدند: شامل تبدیل ارقام فارسی به انگلیسی ایجاد فاصله بین نقطه و کاراکترهای اطرافش تبدیل فاصله به نیم فاصله یک قابلیت جالب Normalizer استخراج تاریخ از متن است. کافی است مقدار date_normalizing_needed را True کرده و به عنوان آرگومان ارسال کنیم.دوباره تابع Normalizer را صدا زده و متغیرمان را به عنوان آرگومان ارسال میکنیم.و خروجی تاریخهایی که داخل متن وجود داشتهاند را به روز، ماه، سال تبدیل کرده است.یک قابلیت دیگر Normalizer تبدیل کلمات فینگلیش به فارسی است. کافی است مقدار pinglish_conversion_needed را True کرده و به عنوان آرگومان ارسال کنیم.دوباره تابع normalizer را صدا زده و متغیرمان را به عنوان آرگومان ارسال میکنیم و نتیجه به صورت زیر است. Sentence Segmentation فرآیندی که طی آن یک متن به تعدادی جمله تقسیم میشود. معیار تقسیم بندی معمولا علائم تمام کننده جمله مثل”.!؟” است. در Parsivar برای استفاده از این قابلیت ابتدا کلاس Tokenizer را Import میکنیم.سپس از کلاسTokenizer یک شی میسازیم.حال از تابع tokenize_sentences کمک گرفته و متن نرمال شده را به عنوان آرگومان ارسال میکنیم.(بهتر است ابتدا متن نرمال شود و سپس به جملات تبدیل شود)نتایج در متغیر Sents ذخیره میشودهمینطور که قابل مشاهده است متن اصلی به تعدادی جمله تبدیل شده است. Tokenization به فرآیندی که طی آن جمله به یکسری واژه (توکن) تبدیل میشود. در parsivar برای استفاده از این قابلیت کافی است تابع Tokenize_Words از شی My_Tokenizer را فراخوانی کنیم.خروجی شامل یکسری واژه است. ریشه یابی(Stemming) فرآیندی که طی آن ریشه یک واژه به دست میآید. مثل “کتابها” که دارای ریشه “کتاب” است یا “میخوردن” که دارای ریشه “خورد#خور” است. در فرآیند Stemming، برای بدست آوردن ریشه، یکسری گامها به ترتیب انجام می شوند و در اصطلاح برای آن الگوریتم تعریف میشود برای مثال ابتدا پیشوند حذف شود. در گام بعدی به سراغ پسوندها میروند و گامهای بعدی به همین صورت. ضعف جدی این روش گاها تولید ریشه بی معنی است مثلا ریشه “بشارت دادم” که ممکن است “ب” به عنوان پیشوند در نظر گرفته و نتیجه غلط شود. برای زبان انگلیسی معمولا از الگوریتم پورتر استفاده میکنند ولی متاسفانه برای زبان فارسی الگوریتم قابل اعتمادی توسط زبان شناسان ارائه نشده است. Lemmatization Stemmingو Lemmatization هر دو یک کار یکسان ولی به روش مختلف انجام میدهند. Lemmatization شبیه به این است که با دیدن یک کلمه، به سراغ دایره المعارف رفته و بررسیهای لازم را انجام داده و یک کلمه را به عنوان ریشه بر میگردانیم. مزیت این روش تولید نشدن کلمات نامربوط به عنوان ریشه است. البته سرعت این روش نسبت به Stemming پایین تر است چون باید جستجو انجام شود. parsivar فقط از قابلیت Stemming پشتیبانی می کند. برای استفاده از این قابلیت ابتدا کلاس FindStems را import میکنیم.سپس یکی شی از FindStems میسازیم.در نهایت کلمه مورد نظر را به تابع Convert_to_stem از شی My_stemmer میفرستیم.چون “میروم” یک فعل است خروجی باید به صورت بنهای ماضی یا مضارع باشد.برای تست بیشتر کد زیر اجرا شدبه طور کلی نتایج قابل قبول است. ولی در تشخیص برخی از افعال و جمع مکسر مشکل دارد. در این مقاله آموزشی ابتدا مراحل مختلف پیش پردازش متون را معرفی کرده و بخش اول از آن را به کمک کتابخانه پارسی ور پیاده سازی کردیم در مقاله آموزشی بعدی قسمت دوم پیش پردازشها را به کمک پارسی ور پیاده سازی میکنیم. چه رتبه ای میدهید؟ میانگین ۲.۵ / ۵. از مجموع ۲ اولین نفر باش دانلود مقاله انجام مراحل مختلف پیش پردازش متون با استفاده از Parsivar [بخش اول] فرمت PDF 6 صفحه حجم 1 مگابایت دانلود مقاله معرفی نویسنده مقالات 402 مقاله توسط این نویسنده محصولات 0 دوره توسط این نویسنده تیم فنی نیک آموز معرفی محصول دوره یادگیری علم داده 1.780.000 تومان 1.246.000 تومان مقالات مرتبط ۰۳ آبان هوش مصنوعی راهنمای کاربردی اصطلاحات هوش مصنوعی تیم فنی نیک آموز ۰۱ آبان هوش مصنوعی ساخت پایپ لاین RAG در یک قدم بسیار ساده + نمونه کد واقعی نگین فاتحی ۰۴ مهر هوش مصنوعی پارادایم های RAG در مدل های زبانی بزرگ تیم فنی نیک آموز ۲۰ شهریور هوش مصنوعی نحوه ساخت RAG های کارآمد با Query Routing نگین فاتحی دیدگاه کاربران لغو پاسخ دیدگاه نام و نام خانوادگی ایمیل ذخیره نام، ایمیل و وبسایت من در مرورگر برای زمانی که دوباره دیدگاهی مینویسم. موبایل برای اطلاع از پاسخ لطفاً مرا با خبر کن ثبت دیدگاه Δ Mohammad ۱۹ / ۰۹ / ۹۹ - ۱۰:۳۱ سلام خسته نباشید . تا جایی که یادمه parsivar یه متد داشت که میشد باهاش جملات غیر رسمی و به اصطلاح محاوره ای رو به رسمی تبدیل کنه . اما یادم نیس اسمش چی بود!!! نت هم گشتم پیدا نکردم متاسفانه. میشه راههنمایی کنید ؟ و اگه امکانش هس به ایمیلم بفرستید کدشو ؟ ممنون میشم . خیلی بهش نیاز دارم . پاسخ به دیدگاه آرزو محمدزاده ۱۸ / ۰۵ / ۰۰ - ۰۸:۲۴ درود بر شما به نقل از مهندس دهقانی تا جایی که بنده با ابزار پارسی ور کار کردم، چنین قابلیتی نداشته ولی یکی از ابزارهایی که در زمینه تبدیل متون محاوره به رسمی روی متون فارسی وجود دارد از لینک زیر قابل دسترسی است https://demo.text-mining.ir/Home/FormalConverter پاسخ به دیدگاه Mohammad ۱۹ / ۰۹ / ۹۹ - ۱۰:۳۱ سلام خسته نباشید . تا جایی که یادمه parsivar یه متد داشت که میشد باهاش جملات غیر رسمی و به اصطلاح محاوره ای رو به رسمی تبدیل کنه . اما یادم نیس اسمش چی بود!!! نت هم گشتم پیدا نکردم متاسفانه. میشه راههنمایی کنید ؟ و اگه امکانش هس به ایمیلم بفرستید کدشو ؟ ممنون میشم . خیلی بهش نیاز دارم . پاسخ به دیدگاه آرزو محمدزاده ۱۸ / ۰۵ / ۰۰ - ۰۸:۲۴ درود بر شما به نقل از مهندس دهقانی تا جایی که بنده با ابزار پارسی ور کار کردم، چنین قابلیتی نداشته ولی یکی از ابزارهایی که در زمینه تبدیل متون محاوره به رسمی روی متون فارسی وجود دارد از لینک زیر قابل دسترسی است https://demo.text-mining.ir/Home/FormalConverter پاسخ به دیدگاه بابک کریمی ۱۵ / ۰۸ / ۹۹ - ۰۴:۲۱ مفید بود..با تشکر پاسخ به دیدگاه