NeuralCoref 4.0 | Koreferenčné rozlíšenie v priestore s neurónovými sieťami
NeuralCoref je rozšírenie potrubia pre spaCy 2.1+, ktoré anotuje a rieši klastre koferencií pomocou neurónovej siete. NeuralCoref je pripravený na výrobu, je integrovaný do NLP pipeline spaCy a je rozšíriteľný o nové tréningové dátové sady.
Krátky úvod do koreferenčného rozlíšenia a NeuralCoref nájdete v našom blogovom príspevku . NeuralCoref je napísaný v jazyku Python/Cython a prichádza s vopred pripraveným štatistickým modelom pre len anglicky .
NeuralCoref je sprevádzaný vizualizačným klientom NeuralCoref-Viz, webové rozhranie poháňané REST serverom, ktoré je možné vyskúšať online. NeuralCoref je vydaný pod licenciou MIT.
Verzia 4.0 už vyšla! Dostupné na pip a kompatibilné so SpaCy 2.1+.
- modul na detekciu zmienok založených na pravidlách, ktorý využíva SpaCy tagger, parser a anotácie NER na identifikáciu množiny potenciálnych zmienok o koreferencii a
- dopredná neurónová sieť, ktorá vypočítava koreferenčné skóre pre každý pár potenciálnych zmienok.
Nainštalujte NeuralCoref
Nainštalujte NeuralCoref s pip
Toto je najjednoduchší spôsob inštalácie NeuralCoref.
|_+_||_+_| chyba
Ak máte chybu s uvedením |_+_| keď načítate NeuralCoref s |_+_|, znamená to, že budete musieť nainštalovať NeuralCoref zo zdrojov distribúcie namiesto kolies, aby ste NeuralCoref postavili proti najnovšej verzii SpaCy pre váš systém.
V tomto prípade jednoducho znova nainštalujte neuralcoref nasledovne:
obnoviť odstránené e-maily aol|_+_|
Inštalácia modelu SpaCy
Aby ste mohli používať NeuralCoref, musíte mať aj anglický model pre SpaCy.
Môžete použiť akýkoľvek anglický model, ktorý funguje dobre pre vašu aplikáciu, ale všimnite si, že výkon NeuralCoref je silne závislý od výkonu modelu SpaCy a najmä od výkonov komponentov Tagger, parser a NER modelu SpaCy. Väčší model SpaCy English tak zlepší aj kvalitu koreferenčného rozlíšenia (pozri niektoré detaily v Vnútornosti a model časť nižšie).
Tu je príklad, ako si môžete nainštalovať SpaCy a (malý) anglický model pre SpaCy, viac informácií nájdete na webovej stránke spacy:
|_+_|Nainštalujte NeuralCoref zo zdroja
NeuralCoref môžete nainštalovať aj zo zdrojov. Najprv budete musieť nainštalovať závislosti, ktoré zahŕňajú Cython a SpaCy.
Tu je postup:
|_+_|Vnútornosti a model
NeuralCoref sa skladá z dvoch podmodulov:
Keď prvýkrát importujete NeuralCoref do pythonu, stiahne sa váhy modelu neurónovej siete do priečinka vyrovnávacej pamäte.
Priečinok vyrovnávacej pamäte je štandardne nastavený na |_+_| (pozri file_utils.py ), ale toto správanie sa dá prekonať nastavením premennej prostredia |_+_| ukázať na iné miesto.
Priečinok vyrovnávacej pamäte je možné kedykoľvek bezpečne vymazať a modul pri ďalšom načítaní znova stiahne model.
Viac informácií o umiestnení, sťahovaní a procese ukladania interného modelu do vyrovnávacej pamäte získate aktivovaním pythonu |_+_| modul pred načítaním NeuralCoref takto:
|_+_|Načítava sa NeuralCoref
Pridanie NeuralCoref do potrubia anglického jazyka SpaCy
Tu je odporúčaný spôsob, ako vytvoriť inštanciu NeuralCoref a pridať ho do zásobníka anotácií SpaCY:
|_+_|Načítanie NeuralCoref a jeho manuálne pridanie do potrubia anglického jazyka SpaCy
Ekvivalentným spôsobom pridania NeuralCoref do kanála modelu SpaCy je najprv vytvoriť inštanciu triedy NeuralCoref a potom ju manuálne pridať do potrubia modelu jazyka SpaCy.
|_+_|Pomocou NeuralCoref
NeuralCoref vyrieši koreferencie a označí ich ako atribúty rozšírenia v spaCy |_+_|, |_+_| a |_+_| objekty pod |_+_| slovník.
prúžok-rubín-napodobenina
Tu je zoznam anotácií:
Atribút | Typ | Popis |
---|---|---|
|_+_| | boolovská hodnota | Je vyriešená nejaká koreferencia v Doc |
|_+_| | zoznam |_+_| | Všetky zhluky koreferingu spomína v doc |
|_+_| | unicode | Unicode reprezentácia dokumentu, kde je každá zmienka o koreferovaní nahradená hlavnou zmienkou v pridruženom klastri. |
|_+_| | Dict of Dict | Skóre koreferenčného rozlíšenia medzi zmienkami. |
|_+_| | boolovská hodnota | Či má rozsah aspoň jednu koreferujúcu zmienku |
|_+_| | |_+_| | Zhluk zmienok, ktoré korešpondujú s rozpätím |
|_+_| | Dikt | Skóre koreferenčného rozlíšenia & span s inými zmienkami (ak je to vhodné). |
|_+_| | boolovská hodnota | Či je token vo vnútri aspoň jednej koreferujúcej zmienky |
|_+_| | zoznam |_+_| | Všetky zhluky zmienok o koreferovaní, ktoré obsahujú token |
A |_+_| je zhluk zmienok o koreferingu, ktorý má 3 atribúty a niekoľko metód na zjednodušenie navigácie vo vnútri klastra:
Atribút alebo metóda | Typ / Typ návratu | Popis |
---|---|---|
|_+_| | int | Index klastra v Doc |
|_+_| | |_+_| | Rozsah najreprezentatívnejších zmienok v klastri |
|_+_| | zoznam |_+_| | Zoznam všetkých zmienok v klastri |
|_+_| | návrat |_+_| | Prístup k zmienke v klastri |
|_+_| | výnosy |_+_| | Opakujte zmienky v klastri |
|_+_| | návrat int | Počet zmienok v skupine |
Navigácia v reťazcoch klastrových koferencií
Môžete tiež jednoducho navigovať v reťazcoch klastrov koreferencie a zobraziť klastre a zmienky.
Tu je niekoľko príkladov, vyskúšajte si ich, aby ste si to sami vyskúšali.
|_+_|Dôležité : NeuralCoref uvádza objekty spaCy Span, čo znamená, že máte prístup ku všetkým obvyklým atribútom Span ako |_+_| (index prvého tokenu rozsahu v dokumente), |_+_| (index prvého tokenu po rozpätí v dokumente) atď...
Príklad: |_+_| vám poskytne index prvého tokenu poslednej zmienky o druhom koreferenčnom klastri v dokumente.
Parametre
Do |_+_| môžete zadať niekoľko ďalších parametrov alebo |_+_| na kontrolu správania NeuralCoref.
Tu je úplný zoznam týchto parametrov a ich popis:
reagovať natívny navigačný panel
Parameter | Typ | Popis |
---|---|---|
|_+_| | plavák | Číslo medzi 0 a 1, ktoré určuje, do akej miery je model chamtivý pri rozhodovaní o koreferencii (nenásytnejšie znamená viac koreferenčných prepojení). Predvolená hodnota je 0,5. |
|_+_| | int | Koľko zmienok treba pozrieť späť pri zvažovaní možných predchodcov súčasnej zmienky. Zníženie hodnoty spôsobí, že systém bude bežať rýchlejšie, ale menej presne. Predvolená hodnota je 50. |
|_+_| | int | Systém zváži prepojenie aktuálnej zmienky s predchádzajúcou ďalej ako |_+_| preč, ak zdieľajú podstatné alebo vlastné podstatné meno. V tomto prípade to vyzerá |_+_| namiesto toho preč. Predvolená hodnota je 500. |
|_+_| | boolovská hodnota | Ak systém vyrieši koreferencie pre zámená v nasledujúcom zozname: |_+_|. Predvolená hodnota je True (koreference vyriešená). |
|_+_| | boolovská hodnota | Má systém ukladať skóre pre koreferencie v anotáciách. Predvolená hodnota je True. |
|_+_| | dict(str, zoznam(str)) | Konverzný slovník, ktorý môžete použiť na nahradenie vložení vzácne slová (kľúče) priemerom vložených položiek zoznamu bežné slová (hodnoty). Príklad: |_+_| pomôže vyriešiť koreferencie pre |_+_| pomocou vloženia pre bežnejšie |_+_| a |_+_| namiesto vloženia |_+_|. Toto momentálne funguje len pre jednotlivé slová (nie pre skupiny slov). |
Ako zmeniť parameter
|_+_|Použitie parametra konverzného slovníka na pomoc pri riešení zriedkavých slov
Tu je príklad, ako môžeme použiť parameter |_+_| pomôcť vyriešiť koreferencie zriedkavého slova, ako je meno:
|_+_|Použitie NeuralCoref ako servera
Jednoduchý príklad serverového skriptu na integráciu NeuralCoref do REST API je uvedený ako príklad v |_+_| .
Ak ho chcete použiť, musíte najskôr nainštalovať Falcon:
|_+_|Potom môžete spustiť server takto:
|_+_|A požiadajte server takto:
|_+_|Existuje mnoho ďalších spôsobov, ako môžete spravovať a nasadzovať NeuralCoref. Niektoré príklady možno nájsť v spaCy Universe.
Opätovné preškolenie modelu / rozšírenie na iný jazyk
Ak chcete model preškoliť alebo ho trénovať v inom jazyku, pozrite si naše školiace pokyny, ako aj náš blogový príspevok
Podrobnosti o stiahnutí:
Autor: huggingface
Odkaz na stiahnutie: Stiahnite si zdrojový kód
Oficiálna webová stránka: https://github.com/huggingface/neuralcoref
Licencia: Licencia MIT
#python