Extragerea automată a frazelor și cuvintelor spaniole relevante cu Python qu4nt
Trebuie să găsiți cuvinte sau fraze relevante în sute sau mii de texte? Și vrei să o faci în spaniolă? Dacă da, acest articol vă poate ajuta un pic să faceți acest lucru.

Pentru a face acest lucru, vom folosi câteva tehnici de procesare a limbajului natural pentru a căuta - și, sperăm, să găsim - câțiva termeni relevanți dintr-unul sau mai multe documente.
Înainte de a începe voi face două precizări. Primul, că abordarea mea va fi orientată lingvistic. Aceasta înseamnă că voi da mai multă greutate rezultatelor decât tehnicilor informatice și că, prin urmare, voi încerca să folosesc strategii mai sensibile din punct de vedere al comunicării, decât altele care sunt mai eficiente în termeni de calcul. Al doilea precizia este că termenii relevanți sunt o chestiune relativă la text și la obiectivul pe care îl avem, așa cum va deveni clar - sper - mai târziu.
Dacă, pe de altă parte, nu vă interesează extragerea cuvintelor relevante, dar căutați să reduceți numărul de cuvinte dintr-un text, vă invit să vă uitați la un alt articol al meu: Reduceți numărul de cuvinte dintr-un text: stemming și radicalizare (stemming) cu python.
Pentru a găsi termeni relevanți într-un text, ne vom baza pe o analiză gramaticală a propozițiilor care îl compun. Există două moduri de a profita de structura unei propoziții: a vedea ce cuvinte sunt aranjate unul lângă celălalt pentru a forma propoziții din ce în ce mai largi (analiza în elemente constitutive) sau observarea modului în care unele cuvinte necesită sau sunt sprijinul altora (analiza dependențelor) ).
În acest articol vom folosi al doilea tip de analiză, deoarece face mai transparent ce cuvinte sunt esențiale și care nu. Și pentru că ajută și la găsirea cuvintelor relevante care funcționează ca un singur grup (veți vedea utilitatea acestui lucru mai târziu).
Vom îndeplini această sarcină cu o bibliotecă aproape proaspătă din cuptor: StanfordNLP.
StanfordNLP este un pachet de analiză a limbajului natural realizat în Python. Este ideal pentru împărțirea unui text în propoziții și cuvinte și pentru clasificarea acestor cuvinte în categorii precum substantive, adjective etc. De asemenea, permite efectuarea analizei dependenței în mai mult de 70 de limbi diferite.
Dacă doriți să aflați mai multe despre această puternică bibliotecă Python, puteți consulta pagina principală a proiectului.
De asemenea, merită să consultați specificațiile lingvistice care alcătuiesc stâlpii acestei biblioteci la acest link. Acest lucru vă va ajuta să cunoașteți ce fel de cuvinte va trebui să consultați pentru a vă îndeplini obiectivul.
Instalarea bibliotecii
Biblioteca StanfordNLP se află în directorul PyPI, deci o putem instala cu pip de la terminal:
$ pip install stanfordnlp
Această bibliotecă necesită, de asemenea, descărcarea modelelor de limbă cu care intenționați să lucrați. Puteți găsi o listă a acestor modele pe pagina oficială a proiectului.
Instalarea modelelor de limbă
Să începem prin importarea bibliotecii și descărcarea modelelor pentru limba spaniolă de pe consola Python:
Vă recomandăm să descărcați fișierele model în calea implicită, ceea ce va face codul mai ușor și mai ușor de citit. Trebuie să faceți această descărcare a modelelor spaniole o singură dată. Apoi, modelele sunt instalate pe computer.
Configurarea secvenței componentelor StanfordNLP
StanfordNLP utilizează mai multe componente în ordine pentru a procesa intrarea lingvistică. Această secvență de componente (sau conductă) face biblioteca extensibilă, flexibilă și scalabilă. Astfel, putem folosi doar componentele necesare unei sarcini sau o putem înlocui cu una mai potrivită. StanfordNLP cere să trecem ca argument modelul lingvistic pe care îl vom folosi (în acest caz lang = 'este' care a fost modelul pe care l-am instalat acum o clipă).
Dacă executăm secvența implicită de componente, ne putem face o idee despre ce poate face această bibliotecă:
Componentele implicite sunt următoarele:
- tokenize: Tokenizer. Separați un text în propoziții și propozițiile în cuvinte.
- mwt: Tokenizer de cuvinte compuse. Recunoașteți cuvinte precum urmărire sau asistent virtual.
- poz: Clasificator de clasă Word. Atribuiți categorii precum adjectiv sau verb unui cuvânt.
- lema: Lematizator. Este nevoie de un cuvânt și îl transformă în formă de dicționar. De exemplu, recunoașteți că forma de dicționar a cântat este de a cânta.
- depărtat: Analizor de dependență. Indicați funcția unui cuvânt și indicați relația acestuia cu alte cuvinte din aceeași propoziție. Puteți indica, de exemplu, că în propoziția I love chocolate, expresia ciocolată este obiectul iubit de persoana care vorbește.
Dacă nu dorim să utilizăm toate componentele, putem specifica pe care le vom solicita în felul următor:
Oricum, vă sugerez să utilizați componentele implicite pentru a începe. Vă va fi mai ușor să urmați exemplele din acest articol pe computer.
Vom testa biblioteca cu un exemplu simplu. Pentru aceasta vom crea un obiect din clasa Document din obiectul nlp (din clasa Pipeline) pe care am construit-o mai devreme. Acest obiect doc va stoca rezultatul analizei făcute de nlp.