Aloha kākou! Ke wehe nei mākou i nā ʻatikala i hoʻolaʻa ʻia i ka hoʻoponopono ʻana i nā pilikia kūpono e pili ana i ka hoʻoponopono ʻōlelo kūlohelohe (Natural Language Processing a i ʻole NLP wale nō) a me ka hoʻokumu ʻana i nā ʻelele kamaʻilio (chatbots) me ka hoʻohana ʻana i kahi waihona waihona open-source.
ʻO nā hana NLP e pili ana i ka hoʻoholo ʻana i ka manaʻo o ka kikokikona, ka hoʻopaʻa ʻana i nā mea i kapa ʻia, ka hoʻoholo ʻana i ka mea a ka interlocutor e makemake ai mai kāu bot: kauoha i ka pizza a loaʻa i ka ʻike hope, a ʻoi aku ka nui. Hiki iā ʻoe ke heluhelu hou aʻe e pili ana i nā hana a me nā ala NLP
Ma kēia ʻatikala, e hōʻike mākou iā ʻoe pehea e holo ai i kahi kikowaena REST me nā hiʻohiʻona NLP i hoʻomaʻamaʻa mua ʻia, mākaukau e hoʻohana me ka ʻole o ka hoʻonohonoho ʻana a i ʻole ke aʻo ʻana.
Hoʻokomo ʻia ʻo DeepPavlov
Ma ʻaneʻi a ma lalo, e hāʻawi ʻia nā ʻōlelo kuhikuhi no Linux. No Windows, e ʻike i kā mākou
- E hana a ho'ā i kahi kaiapuni virtual me ka mana kākoʻo o Python i kēia manawa:
virtualelnv env -p python3.7 source env/bin/activate
- E hoʻouka iā DeepPavlov i kahi kaiapuni virtual:
pip install deeppavlov
Ke hoʻomaka nei i kahi kikowaena REST me ka hiʻohiʻona DeepPavlov
Ma mua o ka hoʻomaka ʻana i kahi kikowaena me ka hiʻohiʻona DeepPavlov no ka manawa mua, pono e kamaʻilio e pili ana i kekahi mau hiʻohiʻona o ka hale waihona puke.
ʻO kēlā me kēia hiʻohiʻona ma DP he:
- Code Python;
- Nā ʻāpana hiki ke hoʻoiho - nā hopena hoʻomaʻamaʻa serialized ma nā ʻikepili kikoʻī (nā hoʻokomo ʻana, nā paona o nā neural network, etc.);
- He faila hoʻonohonoho (i kapa ʻia ʻo ia ka config), aia ka ʻike e pili ana i nā papa i hoʻohana ʻia e ke kumu hoʻohālike, nā URL o nā mea i hoʻoiho ʻia, nā hilinaʻi Python, etc.
E haʻi hou aku mākou iā ʻoe e pili ana i ka mea ma lalo o ka puʻupuʻu o DeepPavlov ma nā ʻatikala aʻe, no kēia manawa ua lawa mākou e ʻike i kēlā:
- ʻO kēlā me kēia kumu hoʻohālike ma DeepPavlov e ʻike ʻia e ka inoa o kāna config;
- No ka holo ʻana i ke kumu hoʻohālike, pono ʻoe e hoʻoiho i kāna mau ʻāpana mai nā kikowaena DeepPavlov;
- Eia kekahi, no ka holo ʻana i ke kumu hoʻohālike, pono ʻoe e hoʻokomo i nā hale waihona puke Python e hoʻohana ai.
ʻO ka hiʻohiʻona mua a mākou e hoʻomaka ai, ʻo ia ka ʻōlelo hoʻomaopopo ʻana i nā ʻano lehulehu (NER). Hoʻokaʻawale ke kumu hoʻohālike i nā huaʻōlelo e like me ke ʻano o nā mea i kapa ʻia (nā inoa kūpono, nā inoa ʻāina, nā inoa o nā kālā, a me nā mea ʻē aʻe). Hoʻopaʻa inoa no ka mana hou loa o NER:
ner_ontonotes_bert_mult
Hoʻomaka mākou i ka server REST me ke kumu hoʻohālike:
- Hoʻokomo mākou i nā hilinaʻi kumu hoʻohālike i ʻōlelo ʻia i loko o kāna config i loko o ke kaiapuni virtual hana:
python -m deeppavlov install ner_ontonotes_bert_mult
- Hoʻoiho i nā ʻāpana hoʻohālike serialized mai nā kikowaena DeepPavlov:
python -m deeppavlov download ner_ontonotes_bert_mult
E hoʻoiho ʻia nā ʻāpana serialized i ka papa kuhikuhi home DeepPavlov, aia ma ka paʻamau
~/.deeppavlov
I ka hoʻoiho ʻana, nānā ʻia ka hash o nā ʻāpana i hoʻoiho mua ʻia i nā hashes o nā ʻāpana i loaʻa ma ka kikowaena. Inā loaʻa kahi pāʻani, lele ʻia ka hoʻoiho a hoʻohana ʻia nā faila i loaʻa. Hiki ke ʻokoʻa ka nui o nā ʻāpana i hoʻoiho ʻia ma ka awelika mai ka 0.5 a i ka 8 Gb, i kekahi mau hihia a hiki i 20 Gb ma hope o ka wehe ʻana.
- Hoʻomaka mākou i ka server REST me ke kumu hoʻohālike:
python -m deeppavlov riseapi ner_ontonotes_bert_mult -p 5005
Ma muli o ka hoʻokō ʻana i kēia kauoha, e hoʻokuʻu ʻia kahi kikowaena REST me kahi kumu hoʻohālike ma ke awa 5005 o ka mīkini hoʻokipa (ʻo 5000 ke awa paʻamau).
Ma hope o ka hoʻomaka ʻana i ke kumu hoʻohālike, ʻike ʻia ʻo Swagger me ka palapala API a me ka hiki ke hoʻāʻo ma ka URL http://127.0.0.1:5005
. E hoʻāʻo kākou i ke kumu hoʻohālike ma ka hoʻouna ʻana iā ia i ka hopena http://127.0.0.1:5005/model
Noi POST me kēia ʻike JSON:
{
"x": [
"В МФТИ можно добраться на электричке с Савёловского Вокзала.",
"В юго-западной Руси стог жита оценен в 15 гривен"
]
}
I ka pane ʻana, pono mākou e loaʻa i kēia 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"]
]
]
Ke hoʻohana nei i kēia mau hiʻohiʻona, e nānā mākou i ka DeepPavlov REST API.
API DeepPavlov
Loaʻa i kēlā me kēia hiʻohiʻona DeepPavlov hoʻokahi hoʻopaʻapaʻa hoʻokomo. Ma ka REST API, ua kapa ʻia nā manaʻo hoʻopaʻapaʻa, ʻo ko lākou mau inoa nā kī o ka puke wehewehe. I ka hapanui o nā hihia, ʻo ka hoʻopaʻapaʻa ʻo ia ka kikokikona e pono e hoʻoponopono ʻia. Hiki ke loaʻa ka ʻike hou aku e pili ana i nā hoʻopaʻapaʻa a me nā waiwai i hoʻihoʻi ʻia e nā hiʻohiʻona ma ka ʻāpana MODELS o ka palapala.
I ka laʻana, ua hāʻawi ʻia kahi papa inoa o nā kaula ʻelua i ka hoʻopaʻapaʻa x, ua hāʻawi ʻia kēlā me kēia mea i kahi māka kaʻawale. Ma DeepPavlov, lawe ʻia nā hiʻohiʻona a pau i kahi papa inoa (batch) o nā waiwai i hana kūʻokoʻa.
ʻO ka huaʻōlelo "batch" e pili ana i ke kula o ka mīkini aʻo a pili i kahi pūʻulu o nā waiwai hoʻokomo kūʻokoʻa i hana ʻia e kahi algorithm a i ʻole neural network i ka manawa like. ʻO kēia ala e hiki ai iā ʻoe ke hōʻemi (pinepine nui ʻia) i ka manawa e hana ai ke kumu hoʻohālike i hoʻokahi mea o ka pūʻulu i hoʻohālikelike ʻia me ka waiwai like i hāʻawi ʻia i ka mea hoʻokomo. Akā, hoʻopuka ʻia ka hopena o ka hoʻoili ʻana ma hope o ka hana ʻana o nā mea āpau. No laila, i ka wā e hana ai i kahi pūʻulu e hiki mai ana, pono e noʻonoʻo i ka wikiwiki o ke kumu hoʻohālike a me ka manawa hana e pono ai no kēlā me kēia o kāna mau mea ponoʻī.
Inā he nui nā manaʻo hoʻopaʻapaʻa i ka model DeepPavlov, loaʻa i kēlā me kēia o lākou kona pūʻulu waiwai ponoʻī, a ma ka hoʻopuka e hoʻopuka mau ke kumu hoʻohālike i hoʻokahi pūʻulu pane. ʻO nā mea o ka puʻupuʻu puka i nā hopena o ka hoʻoponopono ʻana i nā mea o nā pūʻulu e hiki mai ana me ka index hoʻokahi.
Ma ka la'ana i luna, 'o ka hopena o ke kŘkohu, 'o ia ka wawahi 'ana i kēlā me kēia kaula i mau hō'ailona (hua'ōlelo a me nā kaha kaha) a ho'oka'awale i ka hō'ailona e pili ana i ka hui i kapa 'ia (inoa hui, kālā) i hō'ike 'ia ai. I kēia manawa ke kumu hoʻohālike ner_ontonotes_bert_mult hiki iā ia ke ʻike i nā ʻano 18 o nā mea i kapa ʻia, hiki ke loaʻa kahi wehewehe kikoʻī
Nā hiʻohiʻona ʻē aʻe o waho o ka pahu e DeepPavlov
Ma waho aʻe o NER, loaʻa nā hiʻohiʻona o waho o ka pahu ma DeepPavlov i ka manawa kākau:
Pane i ka ninau kikokikona
E pane i ka nīnau i ka kikokikona me kahi ʻāpana o kēia kikokikona. Ke kumu hoʻohālike: squad_ru_bert_infer
Noi laʻana:
{
"context_raw": [
"DeepPavlov разрабатывается лабораторией МФТИ.",
"В юго-западной Руси стог жита оценен в 15 гривен."
],
"question_raw": [
"Кем разрабатывается DeepPavlov?",
"Сколько стоил стог жита на Руси?"
]
}
Hualoaʻa:
[
["лабораторией МФТИ", 27, 31042.484375],
["15 гривен", 39, 1049.598876953125]
]
ʻIke ʻino
ʻO ka ʻike ʻana i ke ʻano o ka hōʻino ʻana i ke kanaka i kamaʻilio ʻia ai ka kikokikona (i ka manawa kākau - no ka ʻōlelo Pelekania wale nō). Ke kumu hoʻohālike: insults_kaggle_conv_bert
Noi laʻana:
{
"x": [
"Money talks, bullshit walks.",
"You are not the brightest one."
]
}
Hualoaʻa:
[
["Not Insult"],
["Insult"]
]
Palapala ʻaʻano
Ka hoʻokaʻawale ʻana o ka manaʻo kikokikona (maikaʻi, kū ʻole, ʻinoʻino). Ke kumu hoʻohālike: rusentiment_elmo_twitter_cnn
Noi laʻana:
{
"x": [
"Мне нравится библиотека DeepPavlov.",
"Я слышал о библиотеке DeepPavlov.",
"Меня бесят тролли и анонимусы."
]
}
Hualoaʻa:
[
["positive"],
["neutral"],
["negative"]
]
ʻImi ʻōlelo hoʻohālikelike
ʻO ka hoʻoholo ʻana inā he like ke ʻano o nā kikokikona ʻelua. Ke kumu hoʻohālike: stand_paraphraser_en
Noi:
{
"text_a": [
"Город погружается в сон, просыпается Мафия.",
"Президент США пригрозил расторжением договора с Германией."
],
"text_b": [
"Наступает ночь, все жители города пошли спать, а преступники проснулись.",
"Германия не собирается поддаваться угрозам со стороны США."
]
}
Hualoaʻa:
[
[1],
[0]
]
Hiki ke loaʻa mau ka papa inoa o nā hiʻohiʻona DeepPavlov waho o ka pahu
hopena
Ma kēia ʻatikala, ua kamaʻāina mākou i ka DeepPavlov API a me kekahi o nā mana hoʻoponopono kikokikona o ka waihona i hāʻawi ʻia ma waho o ka pahu. Pono e hoʻomanaʻo ʻia no kēlā me kēia hana NLP, e loaʻa ka hopena maikaʻi loa i ke aʻo ʻana i ke kumu hoʻohālike ma kahi hoʻonohonoho ʻikepili e pili ana i ke kumuhana kumuhana (domain) o ka hana. Eia kekahi, ʻoi aku ka nui o nā hiʻohiʻona ʻaʻole hiki ke aʻo ʻia no nā kūlana āpau.
Ma nā ʻatikala aʻe e nānā mākou i nā hoʻonohonoho hou o ka hale waihona puke, e hoʻokuʻu ana iā DeepPavlov mai Docker, a laila e neʻe mākou i nā kumu hoʻomaʻamaʻa. A mai poina iā DeepPavlov
Source: www.habr.com