DeepPavlov d'fhorbróirí: #1 uirlisí NLP agus cruthú chatbot

Dia duit gach duine! Táimid ag oscailt sraith alt a bheidh dírithe ar fhadhbanna praiticiúla a bhaineann le próiseáil teanga nádúrtha a réiteach (Próiseáil Teanga Nádúrtha nó go simplí NLP) agus gníomhairí dialóige a chruthú (chatbots) ag baint úsáide as leabharlann foinse oscailte Deep Pavlov, atá á forbairt ag ár bhfoireann ag an tSaotharlann MIPT um Chórais Néaracha agus Deep Learning. Is é príomhsprioc na sraithe ná DeepPavlov a thabhairt isteach do raon leathan forbróirí agus a thaispeáint conas is féidir leat fadhbanna NLP feidhmeacha a réiteach gan eolas domhain a bheith agat i bhFoghlaim Meaisín agus PhD sa Mhatamaitic.

I measc na dtascanna NLP tá meon an téacs a chinneadh, eintitis ainmnithe a pharsáil, a chinneadh cad a theastaíonn ón idirghabhálaí ó do bhota: ordú pizza nó faigh faisnéis chúlra, agus go leor eile. Is féidir leat tuilleadh a léamh faoi thascanna agus modhanna NLP anseo.

San Airteagal seo, taispeánfaimid duit conas freastalaí REST a reáchtáil le samhlacha NLP réamh-oilte, réidh le húsáid gan aon chumraíocht nó oiliúint bhreise.

DeepPavlov d'fhorbróirí: #1 uirlisí NLP agus cruthú chatbot

Suiteáil DeepPavlov

Anseo agus thíos, tabharfar treoracha le haghaidh Linux. Le haghaidh Windows, féach ar ár doiciméadú

  • Cruthaigh agus gníomhachtaigh timpeallacht fhíorúil leis an leagan reatha de Python a dtacaítear leis:
    virtualelnv env -p python3.7
    source env/bin/activate
  • Suiteáil DeepPavlov i dtimpeallacht fhíorúil:
    pip install deeppavlov
    

Freastalaí REST a sheoladh leis an tsamhail DeepPavlov

Sula seolfaimid freastalaí leis an tsamhail DeepPavlov den chéad uair, beidh sé úsáideach labhairt faoi roinnt gnéithe d'ailtireacht na leabharlainne.

Is éard atá i múnla ar bith i DP:

  • cód Python;
  • Comhpháirteanna is féidir a íoslódáil - torthaí sraithe oiliúna ar shonraí sonracha (leabaithe, meáchain líonraí néaracha, etc.);
  • Comhad cumraíochta (dá ngairtear an config anseo feasta), ina bhfuil faisnéis faoi na haicmí a úsáideann an tsamhail, URLanna na gcomhpháirteanna íoslódála, spleáchais Python, etc.

Inseoimid duit níos mó faoi chochall DeepPavlov sna hailt seo a leanas, faoi láthair is leor dúinn a fhios sin:

  • Sainaithnítear aon mhúnla i DeepPavlov leis an ainm a chumraíochta;
  • Chun an tsamhail a rith, ní mór duit a chomhpháirteanna a íoslódáil ó na freastalaithe DeepPavlov;
  • Chomh maith leis sin, chun an tsamhail a reáchtáil, ní mór duit na leabharlanna Python a úsáideann sé a shuiteáil.

Is é an chéad mhúnla a sheolfaimid ná Aitheantas Aonán Ainmnithe ilteangach (NER). Déanann an tsamhail focail téacs a rangú de réir an chineáil eintiteas ainmnithe lena mbaineann siad (ainmneacha cearta, ainmneacha geografacha, ainmneacha airgeadraí, agus eile). Ainm cumraíochta don leagan reatha is déanaí de NER:

ner_ontonotes_bert_mult

Seolaimid an freastalaí REST leis an tsamhail:

  1. Suiteáilimid na spleáchais mhúnla atá sonraithe ina chumraíocht sa timpeallacht fhíorúil ghníomhach:
    python -m deeppavlov install ner_ontonotes_bert_mult
    
  2. Íoslódáil comhpháirteanna samhail sraitheach ó fhreastalaithe DeepPavlov:
    python -m deeppavlov download ner_ontonotes_bert_mult
    

    Déanfar na comhpháirteanna sraitheach a íoslódáil chuig eolaire baile DeepPavlov, atá suite de réir réamhshocraithe

    ~/.deeppavlov

    Nuair a bhíonn sé á íoslódáil, déantar hash na gcomhpháirteanna a íoslódáladh cheana féin a sheiceáil i gcoinne hashes na gcomhpháirteanna atá suite ar an bhfreastalaí. Má tá meaitseáil ann, ní dhéantar an t-íoslódáil a dhéanamh agus úsáidtear comhaid atá ann cheana féin. Féadfaidh méideanna na gcomhpháirteanna íoslódála a bheith éagsúil ar an meán ó 0.5 go 8 Gb, i gcásanna áirithe sroicheann siad 20 Gb tar éis dízipping.

  3. Seolaimid an freastalaí REST leis an tsamhail:
    python -m deeppavlov riseapi ner_ontonotes_bert_mult -p 5005
    

Mar thoradh ar an ordú seo a fhorghníomhú, seolfar freastalaí REST le múnla ar phort 5005 den mheaisín óstach (is é 5000 an calafort réamhshocraithe).

Tar éis an tsamhail a thúsú, tá Swagger le doiciméadú API agus an cumas tástála le fáil ag an URL http://127.0.0.1:5005. Déanaimis an tsamhail a thástáil trína chur chuig an gcríochphointe http://127.0.0.1:5005/model Iarratas POST leis an ábhar JSON seo a leanas:

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

Mar fhreagra ba cheart dúinn an JSON seo a leanas a fháil:

[
  [
    ["В", "МФТИ", "можно", "добраться", "на", "электричке", "с", "Савёловского", "Вокзала", "."],
    ["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"]
  ]
]

Ag baint úsáide as na samplaí seo, déanfaimid anailís ar API DeepPavlov REST.

API DeepPavlov

Tá argóint ionchuir amháin ar a laghad ag gach múnla DeepPavlov. Sa REST API, ainmnítear argóintí, is iad a n-ainmneacha eochracha an fhoclóra atá ag teacht isteach. I bhformhór na gcásanna, is é an argóint an téacs is gá a phróiseáil. Is féidir tuilleadh faisnéise faoi argóintí agus luachanna a tugadh ar ais ag samhlacha a fháil sa chuid MODELS den doiciméadú Deep Pavlov

Sa sampla, cuireadh liosta de dhá theaghrán ar aghaidh chuig argóint x, agus tugadh marcáil ar leith do gach ceann acu. I DeepPavlov, glacann na samhlacha go léir mar ionchur liosta (baisc) de luachanna a phróiseáiltear go neamhspleách.

Tagraíonn an téarma “baisc” do réimse na meaisínfhoghlama agus tagraíonn sé do bhaisc de luachanna ionchuir neamhspleácha arna bpróiseáil ag algartam nó líonra néareolaíoch ag an am céanna. Ligeann an cur chuige seo duit an t-am a phróiseálann an tsamhail eilimint amháin de bhaisc a laghdú (go minic go suntasach) i gcomparáid leis an luach céanna a chuirtear ar aghaidh chuig an ionchur ar leithligh. Ach ní eisítear an toradh próiseála ach amháin tar éis na heilimintí go léir a phróiseáil. Dá bhrí sin, nuair a bheidh baisc ag teacht isteach á ghiniúint, beidh sé riachtanach luas an mhúnla agus an t-am próiseála riachtanach do gach ceann dá eilimintí aonair a chur san áireamh.

Má tá roinnt argóintí ann maidir le múnla DeepPavlov, faigheann gach ceann acu a bhaisc luachanna féin, agus ag an aschur táirgeann an tsamhail bhaisc amháin freagraí i gcónaí. Is iad na heilimintí den bhaisc atá ag dul as oifig ná torthaí na heilimintí de na baisceanna atá ag teacht isteach a phróiseáil leis an innéacs céanna.

Sa sampla thuas, ba é toradh na samhla ná gach teaghrán a bhriseadh síos ina chomharthaí (focail agus marcanna poncaíochta) agus an comhartha a rangú i gcoibhneas leis an eintiteas ainmnithe (ainm eagraíochta, airgeadra) a léiríonn sé. Faoi láthair an tsamhail ner_ontonotes_bert_mult in ann 18 gcineál eintiteas ainmnithe a aithint, is féidir cur síos mionsonraithe a fháil anseo.

Múnlaí eile lasmuigh den bhosca le DeepPavlov

Chomh maith le NER, tá na samhlacha lasmuigh den bhosca seo a leanas ar fáil in DeepPavlov agus é seo á scríobh:

Freagra Ceist Téacs

Freagair an cheist ar an téacs le blúire den téacs seo. Cumraíocht mhúnla: scuad_ru_bert_infer

Iarratas samplach:

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

Toradh:

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

Brath Insult

Láithreacht masla a bhrath don duine a bhfuil an téacs dírithe chuige (tráth scríofa - i mBéarla amháin). Cumraíocht mhúnla: insults_kaggle_conv_bert

Iarratas samplach:


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

Toradh:

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

Anailís ar Thuairimí

Aicmiú meon an téacs (dearfach, neodrach, diúltach). Cumraíocht mhúnla: rusentiment_elmo_twitter_cnn

Iarratas samplach:

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

Toradh:

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

Brath paraphrase

Cinneadh an bhfuil an bhrí chéanna ag dhá théacs éagsúla. Cumraíocht mhúnla: seas_paraphraser_ru

Iarratas:

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

Toradh:

[
  [1],
  [0]
]

Is féidir an liosta reatha de na samhlacha DeepPavlov lasmuigh go léir a fháil i gcónaí anseo.

Conclúid

San Airteagal seo, chuireamar aithne ar API DeepPavlov agus ar chuid de chumas próiseála téacs na leabharlainne a cuireadh ar fáil as an mbosca. Ba chóir a mheabhrú go mbainfear an toradh is fearr amach maidir le tasc NLP ar bith agus an tsamhail á oiliúint ar thacar sonraí a fhreagraíonn do réimse ábhair (fearainn) an taisc. Ina theannta sin, ní féidir fiú níos mó samhlacha a oiliúint, i bprionsabal, do gach cás.

Sna hailt seo a leanas déanfaimid breathnú ar shuíomhanna breise na leabharlainne, ag seoladh DeepPavlov ó Docker, agus ansin déanfaimid bogadh ar aghaidh go samhlacha oiliúna. Agus ná déan dearmad go bhfuil ag DeepPavlov форум – cuir do cheisteanna maidir leis an leabharlann agus samhlacha. Go raibh maith agat as do aird!

Foinse: will.com

Add a comment