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.

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.