Salaamu caleykum Waxaan furaynaa maqaallo taxane ah oo u heellan xallinta mashaakilaadka la taaban karo ee la xiriira habaynta luqadda dabiiciga ah (Habitaanka Luqadda Dabiiciga ah ama NLP oo keliya) iyo abuurista wakiillo wada-sheekeysi (bots-ka-sheekeysiga) iyadoo la adeegsanayo maktabad il furan
Hawlaha NLP waxaa ka mid ah go'aaminta dhawaaqa qoraalka, kala saarista hay'adaha magacaaban, go'aaminta waxa dhexgaluhu ka rabo bot-kaaga: dalbo pizza ama hel macluumaadka asalka, iyo wax ka badan. Waxaad wax badan ka akhrisan kartaa hawlaha iyo hababka NLP
Maqaalkan, waxaan ku tusi doonaa sida loo maamulo server-ka REST oo leh moodooyin NLP horay loo tababaray oo diyaar u ah in la isticmaalo iyada oo aan la helin qaabayn dheeri ah ama tababar.
Ku rakibidda DeepPavlov
Tilmaamaha Linux waxaa lagu siin doonaa halkan iyo hoos. Daaqadaha eeg our
- Abuur oo ku kici jawi macmal ah oo wata nooca hadda la taageeray ee Python:
virtualelnv env -p python3.7 source env/bin/activate
- Ku rakib DeepPavlov jawi macmal ah:
pip install deeppavlov
Bilaabida server-ka REST ee leh qaabka DeepPavlov
Kahor intaanan bilaabin serverka qaabka DeepPavlov markii ugu horeysay, waxay noqon doontaa mid faa'iido leh inaan ka hadalno qaar ka mid ah sifooyinka dhismaha maktabadda.
Nooc kasta oo DP ah wuxuu ka kooban yahay:
- Python code;
- Qaybaha la soo dejisan karo - natiijooyinka waxbarasho ee taxanaha ah ee xogta gaarka ah (ku-xidhka, miisaanka shabakada neerfaha, iwm.);
- Faylka qaabeynta (kan ka dib loo tixraacayo qaabaynta), kaas oo ka kooban macluumaadka ku saabsan fasallada uu isticmaalo moodeelka, URL-yada qaybaha la soo dejiyey, ku tiirsanaanta Python, iyo in ka badan.
Waxaan kuu sheegi doonaa wax badan oo ku saabsan waxa hoos yimaada DeepPavlov ee maqaallada soo socda, hadda waxaa nagu filan inaan ogaano taas:
- Nooc kasta oo DeepPavlov ah waxaa lagu aqoonsaday magaca qaabeynta;
- Si aad u socodsiiso moodelka, waxaad u baahan tahay inaad ka soo dejiso qaybaheeda server-yada DeepPavlov;
- Sidoo kale, si aad u socodsiiso qaabka, waxaad u baahan tahay inaad rakibto maktabadaha Python ee ay isticmaasho.
Qaabka ugu horeeya ee aanu maamuli doono waxa uu noqon doonaa luuqado badan oo lagu magacaabo Hay'adda Aqoonsiga (NER). Qaabku wuxuu u kala saarayaa erayada qoraalka iyadoo loo eegayo nooca hay'adaha la magacaabay ee ay ka tirsan yihiin (magacyada saxda ah, magacyada juqraafiga, magacyada lacagta, iyo kuwa kale). Ku xidh magaca noocii u dambeeyay ee NER:
ner_ontonotes_bert_mult
Waxaan ku bilownay server-ka REST oo wata moodeelka:
- Ku rakib ku-tiirsanaanta moodeelka ku qeexan qaab-dhismeedkeeda jawiga farsamada ee firfircoon:
python -m deeppavlov install ner_ontonotes_bert_mult
- Ka soo deji qaybaha moodeelka taxanaha ah ee DeepPavlov servers:
python -m deeppavlov download ner_ontonotes_bert_mult
Qaybaha taxanaha ah waxaa lagu soo dejisan doonaa tusaha guriga ee DeepPavlov, kaas oo ku yaal si caadi ah
~/.deeppavlov
Marka la soo dejinayo, xadhkaha qaybaha hore loo soo dejiyey ayaa la barbar dhigaya xashiishyada qaybaha ku yaal server-ka. Haddii ay jirto ciyaar, soo dejintu waa la booday oo faylasha jira ayaa la isticmaalaa. Cabbirrada qaybaha la soo dejiyey waxay ku kala duwanaan karaan celcelis ahaan 0.5 ilaa 8 Gb, xaaladaha qaarkood waxay gaadhaan 20 Gb ka dib marka la furo.
- Waxaan ku bilownay server-ka REST oo wata moodeelka:
python -m deeppavlov riseapi ner_ontonotes_bert_mult -p 5005
Natiijadii fulinta amarkan, server-ka REST ee moodeelka leh ayaa lagu bilaabi doonaa dekedda 5005 ee mashiinka martida loo yahay (dekedda caadiga ah waa 5000).
Ka dib marka qaabka la bilaabo, Swagger oo wata dukumeenti API ah iyo awoodda tijaabinta waxaa laga heli karaa URL http://127.0.0.1:5005
. Aan tijaabinno qaabka anagoo u dirayna meesha ugu dambeysa http://127.0.0.1:5005/model
Codsiga POST oo wata nuxurka JSON ee soo socda:
{
"x": [
"В МФТИ можно добраться на электричке с Савёловского Вокзала.",
"В юго-западной Руси стог жита оценен в 15 гривен"
]
}
Jawaabta, waa inaan helnaa JSON soo socota:
[
[
["В", "МФТИ", "можно", "добраться", "на", "электричке", "с", "Савёловского", "Вокзала", "."],
["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"]
]
]
Isticmaalka tusaalooyinkan, waxaan falanqeyn doonaa DeepPavlov REST API.
DeepPavlov API
Nooc kasta oo DeepPavlov ah wuxuu leeyahay ugu yaraan hal dood gelin. Gudaha API REST, doodaha waa la magacaabay, magacyadoodu waa furayaasha qaamuuska soo socda. Inta badan, dooddu waa qoraalka la rabo in laga shaqeeyo. Macluumaad dheeraad ah oo ku saabsan doodaha iyo qiyamka ay soo celiyeen moodooyinka waxaa laga heli karaa qaybta MODELS ee dukumeentiga.
Tusaalaha, liis laba xadhig ah ayaa loo gudbiyay dooda x, kuwaas oo mid walba la siiyay calaamad gaar ah. DeepPavlov, dhammaan moodooyinka waxay u qaataan sidii liis (dufcad) qiyam ah oo si madaxbanaan loo farsameeyo.
Erayga "dufcad" waxa loola jeedaa goobta barashada mishiinada oo waxa loola jeedaa dufcaddii qiyamka wax gelinta ee madax-banaan Habkani wuxuu kuu ogolaanayaa inaad hoos u dhigto (badanaa si weyn) wakhtiga habaynta ee hal dufcadood marka la barbar dhigo isla qiimihii loo gudbiyay gelinta si gooni ah. Laakiin natiijada processing waxaa la siiyaa oo kaliya ka dib markii processing dhammaan walxaha. Sidaa darteed, marka la abuurayo dufcaddii soo socota, waxay noqon doontaa lagama maarmaan in la tixgeliyo xawaaraha qaabka iyo wakhtiga loo baahan yahay ee mid kasta oo ka mid ah walxaha gaarka ah.
Haddii ay jiraan dhowr doodood oo ka mid ah qaabka DeepPavlov, mid kasta oo iyaga ka mid ah ayaa helaya dufcaddeeda qiyamka, iyo wax soo saarka qaabka had iyo jeer waxay soo saartaa hal jawaabo. Cunsurrada dufcadda baxaysaa waa natiijooyinka ka-habaynta walxaha dufcadaha soo socda oo leh index isku mid ah.
Tusaalaha kore, natiijadii tusaalaha waxay ahayd kala-goynta xariiq kasta oo calaamado ah (ereyo iyo calaamado xarakayn) iyo kala soocidda calaamadda marka loo eego cidda la magacaabay (magaca ururka, lacagta) ee uu matalo. Waqtigan xaadirka ah qaabka ner_ontonotes_bert_mult wuxuu awoodaa inuu aqoonsado 18 nooc oo ah hay'ado la magacaabay, sharaxaad faahfaahsan ayaa la heli karaa
Moodooyinka kale ee ka baxsan sanduuqa DeepPavlov
Marka lagu daro NER, moodooyinka soo socda ee ka baxsan sanduuqa ayaa laga heli karaa DeepPavlov wakhtiga qorista:
Jawaabta Su'aasha Qoraalka
Jawaabta su'aasha qoraalka waa qayb ka mid ah qoraalkan. Qaabka qaabka: kooxda_en_bert_infer
Codso tusaale:
{
"context_raw": [
"DeepPavlov разрабатывается лабораторией МФТИ.",
"В юго-западной Руси стог жита оценен в 15 гривен."
],
"question_raw": [
"Кем разрабатывается DeepPavlov?",
"Сколько стоил стог жита на Руси?"
]
}
Natiijada:
[
["лабораторией МФТИ", 27, 31042.484375],
["15 гривен", 39, 1049.598876953125]
]
Ogaanshaha Faaliga
Aqoonsiga joogitaanka aflagaadada qofka qoraalka loo jeedinayo (waqtiga qoraalkan - kaliya Ingiriisiga). Qaabka qaabka: insults_kaggle_conv_bert
Codso tusaale:
{
"x": [
"Money talks, bullshit walks.",
"You are not the brightest one."
]
}
Natiijada:
[
["Not Insult"],
["Insult"]
]
Falanqaynta Dareenka
Kala-soocidda dareenka qoraalka (togan, dhexdhexaad, taban). Qaabka qaabka: rusentiment_elmo_twitter_cnn
Codso tusaale:
{
"x": [
"Мне нравится библиотека DeepPavlov.",
"Я слышал о библиотеке DeepPavlov.",
"Меня бесят тролли и анонимусы."
]
}
Natiijada:
[
["positive"],
["neutral"],
["negative"]
]
Ogaanshaha Faaqidaadda
Go'aaminta in laba qoraal oo kala duwani ay isku macno leeyihiin. Qaabka qaabka: istaag_paraphraser_en
Codsi:
{
"text_a": [
"Город погружается в сон, просыпается Мафия.",
"Президент США пригрозил расторжением договора с Германией."
],
"text_b": [
"Наступает ночь, все жители города пошли спать, а преступники проснулись.",
"Германия не собирается поддаваться угрозам со стороны США."
]
}
Natiijada:
[
[1],
[0]
]
Liiska cusub ee dhammaan moodooyinka DeepPavlov ee ka baxsan sanduuqa ayaa had iyo jeer la heli karaa
gunaanad
Maqaalkan, waxaan ku baranay DeepPavlov API iyo qaar ka mid ah qaababka habaynta qoraalka ee maktabadda oo laga bixiyo sanduuqa. Isla mar ahaantaana, waa in maskaxda lagu hayaa in hawl kasta oo NLP ah, natiijada ugu fiican ayaa la gaari doonaa marka qaabka lagu tababaro xogta xogta ee u dhiganta mawduuca (Domain) ee hawsha. Intaa waxaa dheer, xitaa moodooyin badan, mabda'a ahaan, looma tababari karo dhammaan munaasabadaha.
Maqaallada soo socda, waxaan eegi doonaa goobaha maktabadaha dheeraadka ah, ka bilaabi DeepPavlov Docker, ka dibna u gudubno moodooyinka tababarka. Ha iloobin in DeepPavlov leeyahay
Source: www.habr.com