سلام و ټولو ته! موږ د طبیعي ژبې پروسس کولو (د طبیعي ژبې پروسس کولو یا په ساده ډول NLP) پورې اړوند عملي ستونزو حل کولو او د خلاصې سرچینې کتابتون په کارولو سره د ډیالوګ اجنټانو (چیټ بوټس) رامینځته کولو لپاره وقف شوي مقالو لړۍ پرانیزو.
د NLP کارونو کې د متن احساسات ټاکل ، د نومول شوي ادارو تحلیل کول ، دا مشخص کول چې مخاطب ستاسو له بوټ څخه څه غواړي: د پیزا امر کول یا د شالید معلومات ترلاسه کول ، او نور ډیر څه. تاسو کولی شئ د NLP دندو او میتودونو په اړه نور ولولئ
پدې مقاله کې ، موږ به تاسو ته وښیو چې څنګه د مخکې روزل شوي NLP ماډلونو سره د REST سرور پرمخ وړئ ، پرته له کوم اضافي ترتیب یا روزنې کارولو ته چمتو دی.
د DeepPavlov نصب کول
دلته او لاندې، د لینکس لپاره لارښوونې به ورکړل شي. د وینډوز لپاره، زموږ وګورئ
- د Python اوسني ملاتړ شوي نسخې سره یو مجازی چاپیریال رامینځته او فعال کړئ:
virtualelnv env -p python3.7 source env/bin/activate
- ډیپ پاولوف په مجازی چاپیریال کې نصب کړئ:
pip install deeppavlov
د ډیپ پاولوف ماډل سره د REST سرور پیل کول
مخکې له دې چې موږ د لومړي ځل لپاره د ډیپ پاولوف ماډل سره سرور پیل کړو، دا به ګټور وي چې د کتابتون د جوړښت د ځینو ځانګړتیاو په اړه خبرې وکړو.
په DP کې هر ماډل عبارت دي له:
- د پیتون کوډ؛
- د ډاونلوډ وړ برخې - د ځانګړو معلوماتو په اړه د سیریل شوي روزنې پایلې (ایمبیډنګونه، د عصبي شبکو وزنونه، او نور)؛
- د ترتیب کولو فایل (له دې وروسته د config په نوم یادیږي)، کوم چې د ماډل لخوا کارول شوي ټولګیو په اړه معلومات لري، د ډاونلوډ شوي اجزاوو URLs، د Python انحصار، او نور.
موږ به تاسو ته په لاندې مقالو کې د ډیپ پاولوف د هود لاندې څه په اړه نور معلومات درکړو، د اوس لپاره دا زموږ لپاره کافي دي چې پوه شو:
- په ډیپ پاولوف کې هر ماډل د دې ترتیب په نوم پیژندل کیږي؛
- د ماډل چلولو لپاره، تاسو اړتیا لرئ د ډیپ پاولوف سرورونو څخه د هغې برخې ډاونلوډ کړئ؛
- همچنان ، د ماډل چلولو لپاره ، تاسو اړتیا لرئ د Python کتابتونونه نصب کړئ چې دا یې کاروي.
لومړی ماډل چې موږ به یې په لاره واچوو د څو ژبو نومول شوي ادارې پیژندنه (NER). ماډل د متن ټکي د نومول شوي ادارو ډولونو له مخې طبقه بندي کوي چې دوی ورسره تړاو لري (مناسب نومونه، جغرافیایي نومونه، د اسعارو نومونه، او نور). د NER د اوسني خورا وروستي نسخې لپاره د تنظیم نوم:
ner_ontonotes_bert_mult
موږ د ماډل سره REST سرور پیل کوو:
- موږ په فعال مجازی چاپیریال کې د دې په ترتیب کې مشخص شوي ماډل انحصارونه نصب کوو:
python -m deeppavlov install ner_ontonotes_bert_mult
- د ډیپ پاولوف سرورونو څخه د سیریل شوي ماډل برخې ډاونلوډ کړئ:
python -m deeppavlov download ner_ontonotes_bert_mult
سیریل شوي برخې به د ډیپ پاولوف کور لارښود ته ډاونلوډ شي ، کوم چې په ډیفالټ کې موقعیت لري
~/.deeppavlov
کله چې ډاونلوډ کول ، د دمخه ډاونلوډ شوي اجزاو هش په سرور کې موقعیت لرونکي اجزاو هشونو پروړاندې چک کیږي. که چیرې لوبه شتون ولري، ډاونلوډ پریښودل کیږي او موجوده فایلونه کارول کیږي. د ډاونلوډ شوي اجزاوو اندازه په اوسط ډول له 0.5 څخه تر 8 جی بی پورې توپیر کولی شي، په ځینو مواردو کې د غیر زپ کولو وروسته 20 جی بی ته رسیږي.
- موږ د ماډل سره یو REST سرور پیل کوو:
python -m deeppavlov riseapi ner_ontonotes_bert_mult -p 5005
د دې کمانډ پلي کولو په پایله کې ، د ماډل سره REST سرور به د کوربه ماشین په 5005 بندر کې پیل شي (ډیفالټ پورټ 5000 دی).
د ماډل پیل کولو وروسته، د API اسنادو سره سویګر او د ازموینې وړتیا په URL کې موندل کیدی شي http://127.0.0.1:5005
. راځئ چې موډل د پای ټکي ته په لیږلو سره ازموینه وکړو http://127.0.0.1:5005/model
د لاندې JSON مینځپانګې سره د پوسټ غوښتنه:
{
"x": [
"В МФТИ можно добраться на электричке с Савёловского Вокзала.",
"В юго-западной Руси стог жита оценен в 15 гривен"
]
}
په ځواب کې موږ باید لاندې JSON ترلاسه کړو:
[
[
["В", "МФТИ", "можно", "добраться", "на", "электричке", "с", "Савёловского", "Вокзала", "."],
["O", "B-FAC", "O", "O", "O", "O", "O", "B-FAC", "I-FAC", "O"]
],
[
["В", "юго", "-", "западной", "Руси", "стог", "жита", "оценен", "в", "15", "гривен"],
["O", "B-LOC", "I-LOC", "I-LOC", "I-LOC", "O", "O", "O", "O", "B-MONEY", "I-MONEY"]
]
]
د دې مثالونو په کارولو سره، موږ به د DeepPavlov REST API تحلیل کړو.
API DeepPavlov
هر DeepPavlov ماډل لږترلږه یو ان پټ دلیل لري. په REST API کې، دلیلونه نومول شوي، د دوی نومونه د راتلونکو لغتونو کلیدي دي. په ډیری مواردو کې، دلیل هغه متن دی چې باید پروسس شي. د Models returned arguments and values پاڼې اړوند نور معلومات په فسبوک کې اوګورئ
په مثال کې، د دوو تارونو لیست استدلال x ته لیږدول شوی، چې هر یو یې جلا مارک اپ ورکړل شوی. په ډیپ پاولوف کې، ټول ماډلونه د ارزښتونو لیست (بیچ) د ننوتلو په توګه اخلي چې په خپلواکه توګه پروسس شوي.
د "بیچ" اصطلاح د ماشین زده کړې ساحې ته اشاره کوي او د خپلواک ان پټ ارزښتونو یوې برخې ته اشاره کوي چې په ورته وخت کې د الګوریتم یا عصبي شبکې لخوا پروسس شوي. دا طریقه تاسو ته اجازه درکوي چې هغه وخت کم کړئ (اکثرا د پام وړ) هغه وخت چې ماډل د یوې بستې یو عنصر پروسس کوي د ورته ارزښت په پرتله په جلا توګه ان پټ ته لیږدول شوی. مګر د پروسس پایله یوازې وروسته له هغې خپریږي کله چې ټول عناصر پروسس شوي وي. له همدې امله ، کله چې د راتلونکي بسته رامینځته کول ، نو دا به اړین وي چې د ماډل سرعت او د دې هر انفرادي عناصرو لپاره د اړتیا وړ پروسس وخت په پام کې ونیول شي.
که چیرې د ډیپ پاولوف ماډل ته ډیری دلیلونه شتون ولري، نو هر یو یې خپل د ارزښتونو بسته ترلاسه کوي، او په محصول کې ماډل تل د ځوابونو یوه ډله تولیدوي. د وتلو بیچ عناصر د ورته شاخص سره د راتلونکو بیچونو عناصرو پروسس کولو پایلې دي.
په پورتنۍ بېلګه کې، د ماډل پایله دا وه چې هر تار په ټوکنونو (کلمو او ټکي نښه) کې مات کړئ او د نوم شوي ادارې (د سازمان نوم، اسعارو) پورې اړوند نښه طبقه بندي کړئ چې دا یې استازیتوب کوي. اوس مهال ماډل ner_ontonotes_bert_mult د نومول شویو ادارو 18 ډولونو پیژندلو توان لري، تفصيلي توضیحات موندل کیدی شي
د ډیپ پاولوف لخوا د بکس څخه بهر نور ماډلونه
د NER سربیره، لاندې د بکس څخه بهر ماډلونه د لیکلو په وخت کې په ډیپ پاولوف کې شتون لري:
د متن پوښتنې ځواب
د دې متن د یوې برخې سره متن ته د پوښتنې ځواب ورکړئ. د ماډل ترتیب: squad_ru_bert_infer
د غوښتنې بېلګه:
{
"context_raw": [
"DeepPavlov разрабатывается лабораторией МФТИ.",
"В юго-западной Руси стог жита оценен в 15 гривен."
],
"question_raw": [
"Кем разрабатывается DeepPavlov?",
"Сколько стоил стог жита на Руси?"
]
}
پایلې:
[
["лабораторией МФТИ", 27, 31042.484375],
["15 гривен", 39, 1049.598876953125]
]
د سپکاوي کشف
د هغه چا لپاره د سپکاوي شتون کشف کول چې متن ورته ویل کیږي (د لیکلو په وخت کې - یوازې د انګلیسي لپاره). د ماډل ترتیب: insults_kaggle_conv_bert
د غوښتنې بېلګه:
{
"x": [
"Money talks, bullshit walks.",
"You are not the brightest one."
]
}
پایلې:
[
["Not Insult"],
["Insult"]
]
د احساس تحلیل
د متن احساساتو طبقه بندي (مثبت، بې طرفه، منفي). د ماډل ترتیب: rusentiment_elmo_twitter_cnn
د غوښتنې بېلګه:
{
"x": [
"Мне нравится библиотека DeepPavlov.",
"Я слышал о библиотеке DeepPavlov.",
"Меня бесят тролли и анонимусы."
]
}
پایلې:
[
["positive"],
["neutral"],
["negative"]
]
د پارافراس کشف
دا معلومول چې آیا دوه مختلف متنونه ورته معنی لري. د ماډل ترتیب: stand_paraphraser_en
غوښتنه:
{
"text_a": [
"Город погружается в сон, просыпается Мафия.",
"Президент США пригрозил расторжением договора с Германией."
],
"text_b": [
"Наступает ночь, все жители города пошли спать, а преступники проснулись.",
"Германия не собирается поддаваться угрозам со стороны США."
]
}
پایلې:
[
[1],
[0]
]
د بکس څخه بهر د ډیپ پاولوف ماډلونو اوسنی لیست تل موندل کیدی شي
پایلې
پدې مقاله کې ، موږ د ډیپ پاولوف API او د کتابتون ځینې متن پروسس کولو وړتیاو سره آشنا شو چې د بکس څخه بهر چمتو شوي. دا باید په پام کې ونیول شي چې د NLP د هرې دندې لپاره، غوره پایله به هغه وخت ترلاسه شي کله چې د دندې د موضوع ساحې (ډومین) سره مطابقت لرونکي ډیټا سیټ کې ماډل روزنه وکړي. سربیره پردې، حتی نور ماډلونه نشي کولی، په اصولو کې، د ټولو حالتونو لپاره روزل شي.
په لاندې مقالو کې به موږ د کتابتون اضافي ترتیبات وګورو، د ډیکر څخه ډیپ پاولوف پیل کول، او بیا به موږ د روزنې ماډلونو ته لاړ شو. او دا مه هیروئ چې ډیپ پاولوف لري
سرچینه: www.habr.com