نوشته قبلی نوشته بعدی نحوه استفاده از BERT برای تولید توضیحات متا در مقیاس

نحوه استفاده از BERT برای تولید توضیحات متا در مقیاس

نحوه استفاده از BERT برای تولید توضیحات متا در مقیاس منتشر شده در آوریل 3, 2020ارسال دیدگاه

علاقه مند به حوزه Seo & Sem

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

تبلیغات
ادامه خواندن زیر

قسمتهای تأمین کننده Google از جستجوی Google چیزی نیست که حتی یک سال پیش فکر می کردید ممکن باشد.

همانطور که انتظار می رود ، کمبود راهنماهای نهایی برای بهینه سازی سایت شما برای BERT وجود ندارد. شما نمی توانید

BERT به گوگل کمک می کند تا هدف برخی از سؤالات را بهتر درک کند و هیچ ارتباطی با محتوای صفحه در هر اعلامیه آنها ندارد.

اگر مقالات یادگیری عمیق من را خوانده اید ، نه تنها باید درک عملی از چگونگی کار BERT داشته باشید بلکه نحوه استفاده از آن را برای اهداف جستجوگرها – به طور خاص ، برای خودکار طبقه بندی قصد – درک کنید .

بیایید این را گسترش دهیم و یک مورد کاربرد دیگر را پوشش دهیم: خلاصه ای از متن هنر.

ما می توانیم از خلاصه متن خودکار برای تولید توضیحات متا که می توانیم در صفحاتی که این نسخه را جمع نمی کند استفاده کنیم.

تبلیغات
ادامه خواندن زیر

به منظور نشان دادن این تکنیک قدرتمند ، قصد دارم به طور خودکار آخرین مقاله خود را بارگیری و خلاصه کنم و طبق معمول ، من قطعه کد پایتون را که می توانید دنبال کنید ، به اشتراک می گذارم و با سایت خود یا مشتری های خود سازگار می شوید.

این برنامه عمل ما است:

  • در مورد خلاصه متن خودکار بحث کنید.
  • بیاموزید که چگونه کد جدیدترین (SOTA) کد را پیدا کنید که بتوانیم برای جمع بندی استفاده کنیم.
  • کد خلاصه متن را بارگیری کنید و محیط را آماده کنید.
  • آخرین مقاله من را بارگیری کنید و فقط محتوای اصلی موجود در صفحه را ضبط کنید.
  • برای تولید خلاصه متن از خلاصه متن انتزاعی استفاده کنید.
  • بیش از مفاهیم پشت PreSumm بروید.
  • در مورد برخی از محدودیت ها بحث کنید.
  • در نهایت ، من منابع را برای یادگیری بیشتر و پروژه های جامعه به اشتراک می گذارم.

خلاصه متن برای تولید توضیحات متا

وقتی صفحات غنی از محتوا داریم ، می توانیم خلاصه سازی خودکار متن را برای تولید توضیحات متا در مقیاس استفاده کنیم.

تبلیغات
ادامه خواندن زیر

با توجه به خروجی ، دو رویکرد اصلی برای خلاصه کردن متن وجود دارد:

  • استخراج: ما متن را بر اساس جملات تقسیم می کنیم و آنها را بر اساس میزان تأثیرگذاری آنها به عنوان خلاصه ای برای کل مقاله رتبه بندی می کنیم. خلاصه همیشه شامل جملات موجود در متن خواهد بود.
  • خلاصه : ما جملات جدید بالقوه ای را تولید می کنیم که جوهر متن را ضبط می کند.

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

نحوه یافتن کد وضعیت هنر (SOTA) برای خلاصه کردن متن

مکان موردعلاقه من برای یافتن کد و مقالات برش ، مقالات با کد است .

تبلیغات
ادامه خواندن زیر

اگر بخش State-of-the-Art را مرور می کنید ، می توانید بهترین تحقیق را برای بسیاری از دسته ها پیدا کنید.

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

پیشنهاد ویژه  همه چیز شما باید درباره X-Robots-Tag بدانید

از آنجا می توانیم به راحتی پیوندهایی به مقاله تحقیق پیدا کنیم و از همه مهمتر کدهایی که تحقیق را پیاده سازی می کند.

همچنین ایده خوب است که در صورت ارائه مقاله برتر ، رتبه های جهانی را بررسی کنید.

تبلیغات
ادامه خواندن زیر

PreSum و تنظیم محیط را بارگیری کنید

برای دنبال کردن مراحل بعدی یک نوت بوک در Google Colab ایجاد کنید.

کد اصلی موجود در مخزن محقق ، استفاده از کد را برای تولید خلاصه آسان نمی کند.

شما فقط می توانید با خواندن این شماره گیتوب احساس درد کنید. 😅

ما قصد داریم از نسخه چنگال repo و برخی مراحل ساده که من از این نوت بوک اقتباس کرده ام استفاده کنیم .

بیایید ابتدا مخزن را کلون کنیم.

 !git clone https://github.com/mingchen62/PreSumm.git 

سپس وابستگی ها را نصب کنید.

 !pip install torch==1.1.0 pytorch_transformers tensorboardX multiprocess pyrouge 

در مرحله بعد ، باید مدل های از قبل آموزش دیده را بارگیری کنیم.

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

بعد از این مرحله باید نرم افزار خلاصه سازی را آماده کنیم.

بیایید مقاله ای را که می خواهیم خلاصه کنیم بارگیری کنیم.

برای خلاصه کردن ، یک فایل متنی ایجاد کنید

همانطور که اشاره کردم آخرین پست من را خلاصه خواهیم کرد. بیایید آن را بارگیری کنیم و HTML را تمیز کنیم تا فقط محتوای مقاله باقی بماند.

تبلیغات
ادامه خواندن زیر

اول ، اجازه دهید دایرکتوری هایی را که برای ذخیره فایل ورودی خود و همچنین نتایج حاصل از خلاصه ها ، ایجاد می کنیم ، ایجاد کنیم.

 !mkdir /content/PreSumm/bert_data_test/ !mkdir /content/PreSumm/bert_data/cnndm %cd /content/PreSumm/bert_data/cnndm 

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



خروجی متن در یک خط است ، ما آن را با کد بعدی تقسیم می کنیم.

 text = text.splitlines(True) #keep newlines 

من اولین سطر را که شامل کد تبلیغ آگهی حمایت شده و چند سطر آخر است که شامل برخی از داده های متا مقاله است حذف کردم.

تبلیغات
ادامه خواندن زیر
 text = text[1:-5] #remove sponsor code and end meta data 

سرانجام ، می توانم با استفاده از این کد ، محتوای مقاله را در یک فایل متنی بنویسم.

 with open("python-data-stories.txt", "a") as f: f.writelines(text) 

پس از این ، ما آماده هستیم تا به مرحله جمع بندی برویم.

تولید خلاصه متن

خلاصه انتزاعی تولید خواهیم کرد ، اما قبل از تولید آن ، باید فایل summarize.py را اصلاح کنیم.

به منظور ساده نگه داشتن چیزها ، من یک فایل پچ را با تغییراتی ایجاد کردم که می توانید با کد زیر بارگیری کنید.

 !wget https://gist.githubusercontent.com/hamletbatista/f2741a3a74e4c5cc46ce9547b489ec36/raw/ccab9cc3376901b2f6b0ba0c4bbd03fa48c1b159/summarizer.patch 

شما می توانید تغییراتی را که در اینجا ایجاد شده است مرور کنید. خطوط قرمز برداشته می شوند و رنگ های سبز اضافه می شوند.

من این تغییرات را از نوت بوک پیوند داده شده در بالا وام گرفتم ، و آنها به ما این امکان را می دهند که پرونده ها را به صورت خلاصه و نتایج را تصویب کنیم.

شما می توانید با استفاده از این تغییرات را اعمال کنید.

تبلیغات
ادامه خواندن زیر
 !patch < summarizer.patch 

ما یک مرحله مقدماتی نهایی داریم. کد بعدی برخی از نشانه های مورد نیاز خلاصه را بارگیری می کند.

 import nltk nltk.download('punkt') 

در آخر ، بیایید خلاصه خود را با کد زیر تولید کنیم.

 #CNN_DM abstractive %cd /content/PreSumm/src !python summarizer.py -task abs -mode test -test_from /content/PreSumm/models/CNN_DailyMail_Abstractive/model_step_148000.pt -batch_size 32 -test_batch_size 500 -bert_data_path ../bert_data/cnndm -log_file ../logs/val_abs_bert_cnndm -report_rouge False -sep_optim true -use_interval true -visible_gpus -1 -max_pos 512 -max_src_nsents 100 -max_length 200 -alpha 0.95 -min_length 50 -result_path ../results/abs_bert_cnndm_sample 

در اینجا به نظر می رسد که خروجی جزئی چگونه است.

پیشنهاد ویژه  How to Seamlessly Collaborate with a Successful Remote SEO Provider


حال ، اجازه دهید نتایج خود را مرور کنیم.

 !ls -l /content/PreSumm/results 

این باید نشان دهد

در اینجا خلاصه نامزد است.

 !head /content/PreSumm/results/abs_bert_cnndm_sample.148000.candidate 
[UNK] [UNK] [UNK]: بسیاری از داستان های عاطفی و قدرتمند پنهان در gobs از داده ها فقط انتظار یافت می شود وجود دارد <Q> او می گوید مبارزات انتخاباتی طوری موثر است که آن را به دست آورد تعدادی از جوایز، از جمله جشنواره کن شیرها بزرگ بود جایزه برتر برای جمع آوری داده های خلاق <q> [UNK] : ما قصد داریم تجسم داده های محبوب را از داده های subreddit بازسازی کنیم

برخی نشانه ها مانند [UNK] و <q> نیاز به توضیح دارند. [UNK] یک کلمه از واژگان BERT را نشان می دهد. شما می توانید اینها را نادیده بگیرید. <q> یک جداکننده جمله است.

تبلیغات
ادامه خواندن زیر

چگونه PreSumm کار می کند

اکثر تکنیک های خلاصه کردن متن استخراج سنتی به کپی کردن قسمت هایی از متن که مشخص می شود خوب است در خلاصه تکیه دارند ، تکیه دارند.

این رویکرد در حالی که برای بسیاری از موارد استفاده مؤثر است ، بسیار محدود است زیرا ممکن است هیچ جمله ای برای خلاصه کردن متن مفید نباشد.

در مقالات یادگیری عمیق قبلی خود ، من یک رویکرد تطبیق متن سنتی / ساده لوحی را با جستجوی مشاغل به نام آنها در خیابان مقایسه کردم.

تبلیغات
ادامه خواندن زیر

بله ، کار می کند ، اما مقایسه آن با آنچه که یک سیستم GPS به شما امکان می دهد مقایسه کنید ، محدود است.

من توضیح دادم که قدرت استفاده از جاسازی ها به این واقعیت متکی است که آنها مانند مختصات در فضا کار می کنند. هنگامی که از مختصات استفاده می کنید ، همانطور که در سیستم GPS انجام می دهید ، فرقی نمی کند که چطور نام را (یا از چه زبانی برای نامگذاری آن استفاده کنید) ، هنوز هم در همان مکان قرار دارد.

BERT از این مزیت اضافی برخوردار است که همان کلمه بسته به متن می تواند مختصات کاملاً متفاوتی داشته باشد. به عنوان مثال ، کلمه "واشنگتن" در ایالت واشنگتن و پل جورج واشنگتن ، به معنای چیزهای کاملاً متفاوت است و به صورت دیگری رمزگذاری می شود.

اما ، قدرتمندترین مزیت BERT و سیستم های مشابه این است که وظایف NLP از ابتدا آموخته نمی شوند ، آنها از یک مدل زبانی از پیش آموزش دیده شروع می شوند.

تبلیغات
ادامه خواندن زیر

به عبارت دیگر ، این مدل حداقل قبل از اینکه جریمه شود ، بر روی یک کار خاص مانند پاسخ دادن به سؤالات ، تناقضات زبان را مانند نحوه سازماندهی سوژه ها ، ضرب المثل ها ، عبارات و غیره درک می کند.

محققان PreSumm سه کمک اصلی از کار خود را به طور خلاصه ذکر می کنند:

  • آنها معماری عصبی BERT را سازگار کردند تا به راحتی نمایش کامل جمله را یاد بگیرند. تعبیه های کلمات را برای جملات فکر کنید تا بتوانید موارد مشابه را به راحتی تشخیص دهید.
  • آنها مزایای بارز استفاده از مدل های زبان آموخته شده از قبل را برای کارهای خلاصه نشان می دهند. نظرات من را در مورد چرایی این کار مفید ببینید
  • از مدل های آنها می توان به عنوان بلوک های ساختاری برای مدل های خلاصه بهتر استفاده کرد.
پیشنهاد ویژه  گوگل در حال آزمایش Favicons در داستان بالا چرخ فلک

محدودیت های PreSumm

این توییت یکی از محدودیت های واضح PreSumm و سیستم های مشابه را که به مدل های از قبل آموزش دیده متکی هستند ، برجسته می کند. سبک نوشتاری آنها به شدت تحت تأثیر داده هایی است که برای آموزش آنها استفاده می شود.

تبلیغات
ادامه خواندن زیر

PreSumm در مقالات CNN و DailyMail آموزش داده می شود. خلاصه ها به خصوص برای تولید خلاصه ای از فصل های کتاب رمان داستان خوب نیستند.

در حال حاضر ، به نظر می رسد راه حل بازیابی مجدد مدل با استفاده از مجموعه داده های موجود در دامنه شما باشد.

منابعی برای کسب اطلاعات بیشتر و پروژه های جامعه

این یک آغازگر عالی در خلاصه کردن متن کلاسیک است.

من خلاصه کردن متن را چند ماه پیش در یک وبینار DeepCrawl پوشش دادم. در آن زمان محققان PreSumm نسخه اولیه کار خود را منتشر کردند که فقط در خلاصه کردن متن استخراجی متمرکز بود. آنها آن را BERTSum خواندند .

تبلیغات
ادامه خواندن زیر

من اکثر ایده های مشابه را داشتم ، اما جالب است بدانید که چقدر سریع کارشان را بهبود بخشیدند تا رویکردهای انتزاعی و استخراجی را پوشش دهند. به علاوه دستیابی به وضعیت عملکرد هنری در هر دو دسته.

پیشرفت شگفت انگیز

در حال صحبت کردن در مورد پیشرفت ، جامعه SEO Python همچنان پروژه های جدید جدیدی را که همه در هر ماه روی آن کار می کنند ، من را از بین می برد.

در اینجا چند نمونه قابل توجه آورده شده است. لطفاً به راحتی کلون کردن مخازن آنها را ببینید ، ببینید چه چیزی را می توانید با نیازهای خود بهبود بخشید یا سازگار شوید و پیشرفت های خود را دوباره ارسال کنید!

تبلیغات
ادامه خواندن زیر

منابع بیشتر:


اعتبار تصویر

تمام تصاویر گرفته شده توسط نویسنده ، اکتبر ۲۰۱۹
تصویر در پست: خلاصه متن با رمزگذارهای پیش نمایش

منبع مقاله

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *