DeepPavlov mo nga kaiwhakawhanake: #1 taputapu NLP me te hanga chatbot

Kia ora katoa! Kei te whakatuwherahia e matou he raupapa o nga tuhinga e whakatapua ana ki te whakaoti rapanga whaitake e pa ana ki te tukatuka reo maori (Natural Language Processing or NLP noa) me te hanga i nga kaihoko korero (chatbots) ma te whakamahi i te whare pukapuka puna tuwhera. DeepPavlov, kei te whakawhanakehia e ta matou roopu i te MIPT Laboratory of Neural Systems and Deep Learning. Ko te whainga matua o te raupapa ko te whakauru atu ki a DeepPavlov ki te maha o nga kaiwhakawhanake me te whakaatu me pehea e taea ai e koe te whakaoti rapanga NLP tono me te kore e mohio hohonu ki te Ako Miihini me te PhD i te Pangangarau.

Ko nga mahi a te NLP ko te whakatau i te kare o te tuhinga, te whakamaarama i nga hinonga whakaingoatia, te whakatau he aha te hiahia o te kaikawe korero mai i to karetao: tono pizza, tiki korero papamuri ranei, me te maha atu. Ka taea e koe te panui atu mo nga mahi me nga tikanga NLP konei.

I roto i tenei tuhinga, ka whakaatu matou ki a koe me pehea te whakahaere i te REST tūmau me nga tauira NLP kua whakangungua, kua rite ki te whakamahi me te kore he whirihoranga, whakangungu ranei.

DeepPavlov mo nga kaiwhakawhanake: #1 taputapu NLP me te hanga chatbot

Te whakaurunga o DeepPavlov

I konei me raro, ka hoatu nga tohutohu mo te Linux. Mo Windows, tirohia to maatau tuhinga

  • Waihanga me te whakahohe i tetahi taiao mariko me te putanga tautoko o te Python:
    virtualelnv env -p python3.7
    source env/bin/activate
  • Tāutahia a DeepPavlov ki te taiao mariko:
    pip install deeppavlov
    

Te whakarewa i te tūmau REST me te tauira DeepPavlov

I mua i te whakarewanga o te tūmau me te tauira DeepPavlov mo te wa tuatahi, he pai ki te korero mo etahi ahuatanga o te hoahoanga o te whare pukapuka.

Ko nga tauira kei roto i te DP ko:

  • Waehere Python;
  • Nga waahanga ka taea te tango - nga hua whakangungu raupapa i runga i nga raraunga motuhake (nga whakaurunga, nga taumaha o nga whatunga neural, me etahi atu);
  • He konae whirihoranga (ka kiia i muri nei ko te whirihora), kei roto nga korero mo nga karaehe e whakamahia ana e te tauira, nga URL o nga waahanga kua tangohia, nga herenga Python, etc.

Ka korero atu matou ki a koe mo nga mea kei raro i te awhi o DeepPavlov i roto i nga tuhinga e whai ake nei, mo tenei wa ka nui ki a maatau te mohio:

  • Ko tetahi tauira i DeepPavlov ka tohua e te ingoa o tana whirihora;
  • Hei whakahaere i te tauira, me tango e koe ona waahanga mai i nga kaitoro DeepPavlov;
  • Ano, hei whakahaere i te tauira, me whakauru e koe nga whare pukapuka Python e whakamahia ana e ia.

Ko te tauira tuatahi ka whakarewahia e matou ko te Whakaaetanga Hinonga Whakaingoatia (NER). Ka whakarōpūhia e te tauira nga kupu kupu kia rite ki te momo hinonga kua whakaingoatia no ratou (ingoa tika, ingoa matawhenua, ingoa moni, me etahi atu). Ingoa whirihora mo te putanga o naianei o NER:

ner_ontonotes_bert_mult

Ka whakarewahia e matou te tūmau REST me te tauira:

  1. Ka whakauruhia e matou nga tauira whakawhirinaki kua tohua ki tana whirihora ki te taiao mariko hohe:
    python -m deeppavlov install ner_ontonotes_bert_mult
    
  2. Tangohia nga waahanga tauira raupapa mai i nga tūmau DeepPavlov:
    python -m deeppavlov download ner_ontonotes_bert_mult
    

    Ka tangohia nga waahanga raupapa ki te whaiaronga kaainga DeepPavlov, kei te taunoa

    ~/.deeppavlov

    I te wa e tango ana, ka tirotirohia te hash o nga waahanga kua oti te tango ki runga i nga hashes o nga waahanga kei runga i te tūmau. Mena he whakataetae, ka pekehia te tango ka whakamahia nga konae o mua. Ko nga rahi o nga waahanga kua tangohia ka rereke mai i te 0.5 ki te 8 Gb, i etahi wa ka tae ki te 20 Gb i muri i te wetewete.

  3. Ka whakarewahia e matou te tūmau REST me te tauira:
    python -m deeppavlov riseapi ner_ontonotes_bert_mult -p 5005
    

Ko te hua o te whakahaere i tenei whakahau, ka whakarewahia he tūmau REST me tetahi tauira ki te tauranga 5005 o te miihini manaaki (ko te tauranga taunoa ko 5000).

Whai muri i te tiimata o te tauira, ka kitea te Swagger me nga tuhinga API me te kaha ki te whakamatautau i te URL http://127.0.0.1:5005. Me whakamatau te tauira ma te tuku ki te pito mutunga http://127.0.0.1:5005/model Tono POST me nga ihirangi JSON e whai ake nei:

{
  "x": [
    "В МФТИ можно добраться на электричке с Савёловского Вокзала.",
    "В юго-западной Руси стог жита оценен в 15 гривен"
  ]
}

Hei whakautu me whiwhi tatou i te JSON e whai ake 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"]
  ]
]

Ma te whakamahi i enei tauira, ka tātarihia te DeepPavlov REST API.

API DeepPavlov

Ko ia tauira DeepPavlov he tohenga whakauru kotahi neke atu. I roto i te REST API, ka whakaingoatia nga tautohetohe, ko o ratou ingoa nga ki o te papakupu taumai. I te nuinga o nga wa, ko te tautohetohe ko te tuhinga e tika ana kia tukatukahia. Ko etahi atu korero mo nga tautohetohe me nga uara i whakahokia mai e nga tauira ka kitea i roto i te waahanga MODELS o te tuhinga DeepPavlov

I roto i te tauira, i tukuna he rarangi o nga aho e rua ki te tohenga x, i whakawhiwhia ki ia waahanga he tohu motuhake. I roto i te DeepPavlov, ko nga tauira katoa ka uru ki tetahi rarangi (puanga) o nga uara ka tukatuka takitahi.

Ko te kupu "puranga" e pa ana ki te waahanga ako miihini me te tohu ki te roopu o nga uara whakauru motuhake i tukatukahia e te algorithm, te whatunga neural ranei i te wa kotahi. Ma tenei huarahi ka taea e koe te whakaiti (he mea tino nui) te wa e mahia ai e te tauira tetahi huānga o te puranga ka whakatauritea ki te uara kotahi i tukuna ki te whakauru motuhake. Engari ko te hua tukatuka ka tukuna i muri noa i te tukatuka i nga waahanga katoa. Na reira, i te wa e whakaputa ana i te roopu taumai, me whai whakaaro ki te tere o te tauira me te wa tukatuka e hiahiatia ana mo ia waahanga takitahi.

Mena he maha nga tohenga mo te tauira DeepPavlov, ka whiwhi ia o ratou ake puranga uara, a, i te putanga ka puta te tauira i nga wa katoa he puranga o nga whakautu. Ko nga huānga o te puranga puta ko nga hua o te tukatuka i nga huānga o nga roopu taumai me te taurangi kotahi.

I roto i te tauira o runga ake nei, ko te hua o te tauira ko te wawahi i ia aho ki roto i nga tohu (kupu me nga tohu tohu) me te whakarōpū i te tohu e pa ana ki te hinonga kua whakaingoatia (ingoa whakahaere, moni) e tohu ana. I tenei wa ko te tauira ner_ontonotes_bert_mult ka taea te mohio ki nga momo hinonga 18 kua whakaingoatia, ka kitea he whakamaarama taipitopito konei.

Ko etahi atu tauira o waho o te pouaka na DeepPavlov

Hei taapiri atu ki te NER, ko nga tauira o waho o te pouaka e waatea ana i DeepPavlov i te wa e tuhi ana:

Kuputuhi Whakautu patai

Whakautua te patai ki te tuhinga me tetahi wahanga o tenei tuhinga. Tauira whirihora: squad_ru_bert_infer

Tono tauira:

{
  "context_raw": [
    "DeepPavlov разрабатывается лабораторией МФТИ.",
    "В юго-западной Руси стог жита оценен в 15 гривен."
  ],
  "question_raw": [
    "Кем разрабатывается DeepPavlov?",
    "Сколько стоил стог жита на Руси?"
  ]
}

Hua:

[
  ["лабораторией МФТИ", 27, 31042.484375],
  ["15 гривен", 39, 1049.598876953125]
]

Tirohanga tawai

Te kitenga o te noho tawai ki te tangata e korerohia ana te tuhinga (i te wa e tuhi ana - mo te reo Ingarihi anake). Tauira whirihora: insults_kaggle_conv_bert

Tono tauira:


{
  "x": [
    "Money talks, bullshit walks.",
    "You are not the brightest one."
  ]
}

Hua:

[
  ["Not Insult"],
  ["Insult"]
]

Tātaramatanga whakaaro

Whakar Tauira whirihora: rusentiment_elmo_twitter_cnn

Tono tauira:

{
  "x": [
    "Мне нравится библиотека DeepPavlov.",
    "Я слышал о библиотеке DeepPavlov.",
    "Меня бесят тролли и анонимусы."
  ]
}

Hua:

[
  ["positive"],
  ["neutral"],
  ["negative"]
]

Te Rapu Paraphrase

Te whakatau mena he rite te tikanga o nga tuhinga rereke e rua. Tauira whirihora: stand_paraphraser_ru

Tono:

{
  "text_a": [
    "Город погружается в сон, просыпается Мафия.",
    "Президент США пригрозил расторжением договора с Германией."
  ],
  "text_b": [
    "Наступает ночь, все жители города пошли спать, а преступники проснулись.",
    "Германия не собирается поддаваться угрозам со стороны США."
  ]
}

Hua:

[
  [1],
  [0]
]

Ko te rarangi o naianei o nga tauira DeepPavlov kei waho o te pouaka ka kitea tonu konei.

mutunga

I roto i tenei tuhinga, i mohio matou ki te DeepPavlov API me etahi o nga kaha ki te tukatuka tuhinga o te whare pukapuka i tukuna mai i te pouaka. Kia maharahia mo tetahi mahi NLP, ko te hua pai ka tutuki i te whakangungu i te tauira i runga i te huinga raraunga e pa ana ki te kaupapa kaupapa (rohe) o te mahi. I tua atu, he maha atu nga tauira kaore e taea te whakangungu mo nga ahuatanga katoa.

I roto i nga tuhinga e whai ake nei ka titiro tatou ki etahi atu tautuhinga o te whare pukapuka, ka whakarewahia a DeepPavlov mai i Docker, katahi ka neke atu ki nga tauira whakangungu. A kaua e wareware kei a DeepPavlov te huinga – patai i o patai mo te whare pukapuka me nga tauira. Mauruuru koe mo to aro!

Source: will.com

Tāpiri i te kōrero