Talofa uma! O loʻo matou tatalaina se faasologa o tala faʻapitoa e foia ai faʻafitauli faʻapitoa e fesoʻotaʻi ma le faʻaogaina o le gagana faʻale-natura (Natural Language Processing poʻo le NLP) ma le fatuina o faʻasalalauga faʻatalanoaga (chatbots) e faʻaaoga ai se faletusi tatala.
O galuega a le NLP e aofia ai le fuafuaina o lagona o le tusitusiga, faʻavasega igoa o faʻalapotopotoga, fuafua mea e manaʻo ai le tagata faʻafesoʻotaʻi mai lau bot: oka pizza pe maua faʻamatalaga faʻamatalaga, ma sili atu. E mafai ona e faitau atili e uiga i galuega ma metotia NLP
I lenei tusiga, matou te faʻaali atu ia te oe le faʻaogaina o se REST server ma faʻataʻitaʻiga NLP muaʻi aʻoaʻoina, sauni e faʻaoga e aunoa ma se faʻaopoopoga poʻo se aʻoaʻoga.
Fa'atuina o DeepPavlov
O iinei ma lalo, o faʻatonuga mo Linux o le a tuʻuina atu. Mo Windows, va'ai la matou
- Fausia ma fa'agaoioia se si'osi'omaga fa'apitoa fa'atasi ai ma le lomiga o lo'o lagolagoina nei o le Python:
virtualelnv env -p python3.7 source env/bin/activate
- Faʻapipiʻi DeepPavlov i se siosiomaga faʻapitoa:
pip install deeppavlov
Tatalaina se server REST ma le faʻataʻitaʻiga DeepPavlov
Ae tatou te leʻi faʻalauiloaina se 'auʻaunaga ma le DeepPavlov faʻataʻitaʻiga mo le taimi muamua, o le a aoga le talanoa e uiga i nisi o vaega o le fausaga faletusi.
So'o se fa'ata'ita'iga ile DP e aofia ai:
- Python code;
- Vaega e mafai ona sii mai - fa'asologa fa'asologa o a'oa'oga i fa'amaumauga fa'apitoa (fa'apipi'i, mamafa o feso'ota'iga neural, ma isi);
- O se faila faʻatulagaina (o loʻo taʻua mulimuli ane o le config), o loʻo i ai faʻamatalaga e uiga i vasega o loʻo faʻaaogaina e le faʻataʻitaʻiga, URL o vaega na sii mai, Python faʻalagolago, ma isi.
O le a matou faʻamatalaina atili e uiga i mea o loʻo i lalo o le pulou o DeepPavlov i tala o loʻo mulimuli mai, mo le taimi nei ua lava mo i matou e iloa ai:
- Soʻo se faʻataʻitaʻiga i DeepPavlov e iloa i le igoa o lona config;
- Ina ia faʻataʻitaʻiina le faʻataʻitaʻiga, e tatau ona e sii maia ona vaega mai le DeepPavlov servers;
- E le gata i lea, e faʻataʻitaʻi le faʻataʻitaʻiga, e tatau ona e faʻapipiʻi le Python faletusi o loʻo faʻaaogaina.
O le fa'ata'ita'iga muamua o le a matou fa'alauiloaina o le a fa'aigoaina Fa'aigoaina Fa'aigoaina (NER). O le fa'ata'ita'iga e fa'avasegaina upu tusitusia e tusa ai ma le ituaiga o fa'aigoa igoa o lo'o i ai (igoa talafeagai, igoa fa'afanua, igoa o tupe, ma isi). Su'ega igoa mo le lomiga lata mai nei o le NER:
ner_ontonotes_bert_mult
Matou te faʻalauiloaina le REST server ma le faʻataʻitaʻiga:
- Matou te faʻapipiʻiina le faʻalagolago i faʻataʻitaʻiga o loʻo faʻamaoti mai i lona config i totonu o le siʻosiʻomaga faʻamalosi tino:
python -m deeppavlov install ner_ontonotes_bert_mult
- La'u maia vaega fa'ata'ita'i fa'asologa mai 'au'aunaga DeepPavlov:
python -m deeppavlov download ner_ontonotes_bert_mult
O vaega fa'asologa o le a la'uina i lalo i le DeepPavlov home directory, lea o lo'o i ai ona o le faaletonu
~/.deeppavlov
Pe a sii mai, o le hash o vaega ua uma ona sii mai e siaki e faasaga i hash o vaega o loʻo i luga o le server. Afai e iai se fetaui, e misi le download ma faʻaaoga faila o loʻo iai. Ole lapopoa o vaega na sii mai e mafai ona fesuisuiai ile averesi mai le 0.5 i le 8 Gb, i nisi tulaga e oʻo atu i le 20 Gb pe a uma ona tatala.
- Matou te faʻalauiloaina le REST server ma le faʻataʻitaʻiga:
python -m deeppavlov riseapi ner_ontonotes_bert_mult -p 5005
O se taunuuga o le faʻatinoina o lenei faʻatonuga, o le REST server ma se faʻataʻitaʻiga o le a faʻalauiloaina i luga o le taulaga 5005 o le masini talimalo (o le faʻaogaina o le taulaga o le 5000).
A maeʻa ona amataina le faʻataʻitaʻiga, Swagger ma faʻamaumauga API ma le mafai ona suʻeina e mafai ona maua ile URL http://127.0.0.1:5005
. Se'i o tatou fa'ata'ita'i le fa'ata'ita'iga e ala ile tu'u atu ile pito http://127.0.0.1:5005/model
POST talosaga fa'atasi ai ma le anotusi JSON nei:
{
"x": [
"В МФТИ можно добраться на электричке с Савёловского Вокзала.",
"В юго-западной Руси стог жита оценен в 15 гривен"
]
}
I le tali e tatau ona tatou mauaina le JSON nei:
[
[
["В", "МФТИ", "можно", "добраться", "на", "электричке", "с", "Савёловского", "Вокзала", "."],
["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"]
]
]
I le faʻaaogaina o nei faʻataʻitaʻiga, o le a matou suʻesuʻeina le DeepPavlov REST API.
API DeepPavlov
O fa'ata'ita'iga DeepPavlov ta'itasi e iai a itiiti ifo ma le tasi le finauga fa'aulu. I le REST API, ua faaigoa ai finauga, o latou igoa o ki o le lomifefiloi o sau. I le tele o tulaga, o le finauga o le tusitusiga e manaʻomia ona faʻatautaia. O nisi faʻamatalaga e uiga i finauga ma tulaga taua na toe faʻafoʻi mai e faʻataʻitaʻiga e mafai ona maua i le vaega MODELS o faʻamaumauga
I le faʻataʻitaʻiga, o se lisi o manoa e lua na tuʻuina atu i le finauga x, o ia mea na tuʻuina atu i ai faʻailoga eseese. I DeepPavlov, o faʻataʻitaʻiga uma e faʻaaogaina se lisi (vaega) o tau o loʻo faʻatinoina tutoatasi.
O le faaupuga "batch" e faʻatatau i le matata o le aʻoaʻoina o masini ma e faʻatatau i se vaega o tuʻufaʻatasiga tutoʻatasi tau faʻaogaina e faʻatautaia e se algorithm poʻo se neural network i le taimi e tasi. O lenei faiga e mafai ai e oe ona faʻaitiitia (masani tele) le taimi e faʻatino ai e le faʻataʻitaʻiga se tasi elemene o se vaega faʻatusatusa i le tau tutusa na tuʻuina atu i le faʻaoga eseese. Ae o le taunuuga o le gaioiga e tuʻuina atu pe a maeʻa uma elemene uma. O le mea lea, pe a faʻatupuina se vaega o loʻo oʻo mai, e tatau ona amanaʻia le saoasaoa o le faʻataʻitaʻiga ma le taimi e manaʻomia ai le gaioiga mo ona elemene taʻitasi.
Afai e tele ni finauga i le DeepPavlov fa'ata'ita'iga, e maua e i latou ta'ito'atasi a latou lava vaega taua, ma i le fa'atinoga o le fa'ata'ita'iga e maua mai ai i taimi uma le tasi vaega o tali. O elemene o le vaega o loʻo alu i fafo o taunuʻuga ia o le faʻaogaina o elemene o vaega o loʻo oʻo mai ma le faasino igoa tutusa.
I le faʻataʻitaʻiga o loʻo i luga, o le taunuuga o le faʻataʻitaʻiga o le talepeina lea o manoa taʻitasi i faʻailoga (upu ma faʻailoga) ma faʻavasega le faʻailoga e fesoʻotaʻi ma le faʻaigoa igoa (igoa faʻalapotopotoga, tupe) o loʻo faʻatusalia. I le taimi nei o le faʻataʻitaʻiga ner_ontonotes_bert_mult mafai ona iloa 18 ituaiga o igoa faʻapitoa, e mafai ona maua se faʻamatalaga auiliili
O isi fa'ata'ita'iga i fafo atu o le pusa na saunia e DeepPavlov
I le faʻaopoopoga i le NER, o faʻataʻitaʻiga o loʻo i fafo o le pusa o loʻo maua i DeepPavlov i le taimi o le tusitusi:
Taliina o Fesili i Tusitusiga
Tali le fesili i le tusitusiga i se vaega o lenei tusitusiga. Fa'ata'ita'iga fa'atusa: squad_ru_bert_infer
Fa'ata'ita'iga talosaga:
{
"context_raw": [
"DeepPavlov разрабатывается лабораторией МФТИ.",
"В юго-западной Руси стог жита оценен в 15 гривен."
],
"question_raw": [
"Кем разрабатывается DeepPavlov?",
"Сколько стоил стог жита на Руси?"
]
}
Taunuʻuga:
[
["лабораторией МФТИ", 27, 31042.484375],
["15 гривен", 39, 1049.598876953125]
]
Su'esu'ega Fa'aleaga
Su'esu'eina o le i ai o se fa'alumaina i le tagata o lo'o fa'asino i ai le tusitusiga (i le taimi o le tusitusi - na'o le Igilisi). Fa'ata'ita'iga fa'atusa: insults_kaggle_conv_bert
Fa'ata'ita'iga talosaga:
{
"x": [
"Money talks, bullshit walks.",
"You are not the brightest one."
]
}
Taunuʻuga:
[
["Not Insult"],
["Insult"]
]
Manatu Iloiloga
Fa'avasegaina o lagona o tusitusiga (lelei, fa'aituau, leaga). Fa'ata'ita'iga fa'atusa: rusentiment_elmo_twitter_cnn
Fa'ata'ita'iga talosaga:
{
"x": [
"Мне нравится библиотека DeepPavlov.",
"Я слышал о библиотеке DeepPavlov.",
"Меня бесят тролли и анонимусы."
]
}
Taunuʻuga:
[
["positive"],
["neutral"],
["negative"]
]
Su'esu'ega Fa'amatala
Fuafuaina pe tutusa le uiga o tusitusiga eseese e lua. Fa'ata'ita'iga fa'atusa: stand_paraphraser_en
Talosaga:
{
"text_a": [
"Город погружается в сон, просыпается Мафия.",
"Президент США пригрозил расторжением договора с Германией."
],
"text_b": [
"Наступает ночь, все жители города пошли спать, а преступники проснулись.",
"Германия не собирается поддаваться угрозам со стороны США."
]
}
Taunuʻuga:
[
[1],
[0]
]
O le lisi o loʻo iai nei o faʻataʻitaʻiga DeepPavlov i fafo atu o le pusa e mafai ona maua i taimi uma
iʻuga
I totonu o lenei tusiga, na matou masani i le DeepPavlov API ma nisi o mea e mafai ona faʻaogaina ai tusitusiga o le faletusi na tuʻuina atu mai le pusa. E tatau ona manatua mo soʻo se galuega a le NLP, o le a maua le iʻuga sili pe a aʻoaʻoina le faʻataʻitaʻiga i luga o se seti faʻamaumauga e fetaui ma le mataupu autu (domain) o le galuega. E le gata i lea, e sili atu faʻataʻitaʻiga e le mafai, i le mataupu faavae, ona aʻoaʻoina mo tulaga uma.
I tala o loʻo mulimuli mai o le a tatou vaʻavaʻai i faʻaopoopoga faʻaopoopo o le faletusi, faʻalauiloa DeepPavlov mai Docker, ona tatou agai atu lea i faʻataʻitaʻiga aʻoaʻoga. Ma aua neʻi galo o loʻo i ai DeepPavlov
puna: www.habr.com