A kifejezések és a releváns szavak automatikus kibontása spanyolul a Python qu4nt segítségével

Meg kell találnia a releváns szavakat vagy kifejezéseket több száz vagy ezer szövegben? És spanyolul akarod csinálni? Ha igen, ez a cikk egy kicsit segíthet ebben.

szavak

Ehhez néhány természetes nyelvi feldolgozási technikát fogunk használni annak érdekében, hogy egy vagy több dokumentumból néhány releváns kifejezést keressünk - és remélhetőleg megtaláljunk.

Indulás előtt két pontosítást fogok tenni. Az első, hogy megközelítésem nyelvileg orientált lesz. Ez azt jelenti, hogy nagyobb súlyt fogok tulajdonítani az eredményeknek, mint a számítógépes technikáknak, és ezért megpróbálok kommunikációs szempontból értelmesebb stratégiákat használni, mint másokat, amelyek számítási szempontból hatékonyabbak. A második pontossága az, hogy a vonatkozó kifejezések a szöveghez és a megfogalmazott célhoz viszonyított kérdés, amint később - remélem - később kiderül.

Ha viszont nem érdekli a releváns szavak kibontása, de csökkenteni kívánja a szövegben szereplő szavak számát, akkor felkérem, hogy nézzen meg egy másik cikkemet: Csökkentse a szavak számát egy szöveg: származtatás és radikalizálódás (visszahúzás) a pythonnal.

A szövegben releváns kifejezések megtalálásához támaszkodunk az azt alkotó mondatok nyelvtani elemzésére. Kétféle módon lehet kihasználni a mondat szerkezetét: látni, hogy mely szavak vannak egymás mellett elrendezve egyre tágabb mondatok kialakításáért (elemzés alkotóelemekben), vagy annak megfigyelése, hogy egyes szavak megkövetelik vagy támogatják másokat (függőségek elemzése) ).

Ebben a cikkben a második típusú elemzést fogjuk használni, mert átláthatóbbá teszi, hogy mely szavak elengedhetetlenek és melyek nem. És mivel ez is segít megtalálni a releváns szavakat, amelyek egyetlen csoportként működnek (ennek hasznosságát később meglátja).

Ezt a feladatot egy szinte a sütőből friss könyvtárral fogjuk elvégezni: a StanfordNLP-vel.

A StanfordNLP egy Python-ban készült természetes nyelv elemző csomag. Ideális egy szöveg mondatokra és szavakra bontására, valamint e szavak kategóriákba sorolására, például főnevekre, melléknevekre stb. Ez lehetővé teszi a függőség elemzését több mint 70 különböző nyelven.

Ha többet szeretne tudni erről a nagy teljesítményű Python könyvtárról, akkor keresse fel a projekt főoldalát.

Ezen a linken érdemes megismerkedni a könyvtár oszlopait alkotó nyelvi előírásokkal is. Ez segít abban, hogy megtudja, milyen szavakkal kell konzultálnia a célkitűzés megvalósításához.

Könyvtár telepítése

A StanfordNLP könyvtár a PyPI könyvtárban található, így a terminálról pip segítségével telepíthetjük:

$ pip install stanfordnlp

Ehhez a könyvtárhoz le kell tölteni azokat a nyelvi modelleket is, amelyekkel dolgozni kíván. Ezen modellek listáját megtalálja a projekt hivatalos oldalán.

A nyelvi modellek telepítése

Kezdjük azzal, hogy importáljuk a könyvtárat, és letöltjük a spanyol modelleket a Python konzolról:

Azt javaslom, hogy töltse le a modellfájlokat az alapértelmezett elérési útvonalra, amely megkönnyíti és olvashatóbbá teszi a kódot. A spanyol modellek letöltését csak egyszer kell elvégeznie. Ezután a modellek telepítve vannak a számítógépre.

StanfordNLP komponens szekvencia konfiguráció

A StanfordNLP egymás után több komponenst használ a nyelvi input feldolgozásához. Ez a komponenssor (vagy csővezeték) kibővíthetővé, rugalmassá és méretezhetővé teszi a könyvtárat. Így csak azokat a komponenseket használhatjuk, amelyek szükségesek a feladathoz, vagy helyettesíthetünk egyet megfelelőbbel. A StanfordNLP megköveteli, hogy érvként adjuk át azt a nyelvi modellt, amelyet használni fogunk (ebben az esetben a lang = 'is' volt az a modell, amelyet egy perccel ezelőtt telepítettünk).

Ha végrehajtjuk az alapértelmezett komponenssorozatot, képet kaphatunk arról, hogy ez a könyvtár mit tehet:

Az alapértelmezett összetevők a következők:

  • tokenize: Tokenizer. Válasszon egy szöveget mondatokra, a mondatokat pedig szavakra.
  • mwt: Összetett szó tokenizer. Felismeri az olyan szavakat, mint a nyomon követés vagy a virtuális asszisztens.
  • pozíció: Szóosztály osztályozó. Rendeljen kategóriákat, például melléknevet vagy igét egy szóhoz.
  • lemma: Lematizer. Vesz egy szót, és átalakítja szótár alakúra. Például ismerje el, hogy az énekelt szótár formája az éneklés.
  • lepárolja: Függőségelemző. Mutasson egy szó funkciójára, és jelölje meg annak kapcsolatát más szavakkal ugyanabban a mondatban. Jelölheti például, hogy az I love chocolate mondatban a csokoládé kifejezés az a tárgy, amelyet a beszélő szeret.

Ha nem akarjuk az összes összetevőt használni, akkor a következő módon határozhatjuk meg, melyikekre lesz szükségünk:

Mindenesetre azt javaslom, hogy az alapértelmezett összetevőket használja. Ez megkönnyíti számodra a cikkben szereplő példák követését.

Egy egyszerű példával teszteljük a könyvtárat. Ehhez létrehozunk egy objektumot a Document osztályból nlp objektumból (a Pipeline osztályba tartozik), amelyet korábban építettünk. Ez a doc objektum tárolja az nlp elemzésének eredményét.