fastText și cum să-l folosești pentru analiza textului?

Cu toții folosim facebook și trebuie să aveți cu toții experiență la un moment dat că ați făcut postări și facebook începe să vă afișeze anunțuri exact legate de acel lucru.

De exemplu, dacă creați o postare pe facebook că veți renunța la locul de muncă pentru a începe o nouă aventură a dvs. și, dintr-o dată, facebook începe să vă arate anunțuri ca acesta-

Deci, de unde știe exact facebook ce să arate?

Ei bine, este magia bibliotecii sale NLP - FastText.

FastText este o bibliotecă deschisă, gratuită, ușoară, recent deschisă de Facebook.FastText este o bibliotecă creată de echipa de cercetare Facebook pentru învățarea eficientă a reprezentărilor de cuvinte și clasificarea propozițiilor.

Această bibliotecă a câștigat multă atenție în comunitatea NLP, deoarece a arătat rezultate de ultimă generație în diverse domenii NLP.

Cum să-l folosească?

În acest articol vă voi spune că cum să-l utilizați pentru clasificarea textului.

Pasul 1: Introducerea datelor într-un format corect

Este foarte important pentru fastText să existe date într-un format corect prescris.

Formatul:

_label_0 textul tău

Aici „_label_” trebuie utilizat așa cum este.

„0” indică eticheta dvs. (valoarea din coloana de etichetă pentru respectivul rând)

„Textul tău” este textul pe care vrei să-l antrenezi pe clasificator.

În codul dat mai sus am arătat modalitatea de a deschide un nou fișier „train.txt” pentru a scrie și a scrie cadrul dvs. de date în el.

Pasul 2: Clonarea repo

În continuare, trebuie să clonăm repoziția fastText în notebook-ul nostru pentru a folosi funcțiile sale.

ID de repetare: https://github.com/facebookresearch/fastText.git

După clonare, urmați acești pași:

Asigurați-vă că fișierul dvs. „train.txt” se află în folderul fastText creat prin clonarea repo.

Pasul 3: Joacă-te cu comenzile

Acum modelul dvs. este gata să se antreneze, dați următoarea comandă pentru a vă antrena clasificatorul-

./fasttext supravegheat -input train.txt -out

-label __label__ -lr 0.1 -epoch 40

Următoarele argumente sunt obligatorii:

  • -instruire calea fișierului de instruire
  • -calea de ieșire a fișierului de ieșire

Ați putea juca cu acești parametri pentru a regla fin modelul dvs. (asigurați-vă că utilizați o liniuță (-) înainte de a folosi orice argument)

Furnizat argument fără liniuță!

utilizare:

Următoarele argumente sunt opționale:

  • -nivel de verbositate verbală [2]

Următoarele argumente pentru dicționar sunt opționale:

  • -minCount un număr minim de apariții de cuvinte [1]
  • -minCountLabel număr minim de ocurențe de etichetă [0]
  • -wordNgrams lungimea maximă a cuvântului ngram [2]
  • -buchet de găleți [2000000]
  • -minn lungimea mină a carbon ngram [0]
  • -maxn lungimea maximă a carbonului ngram [0]
  • -pragul de eșantionare [0,0001]
  • -label etichete prefix [__label__]

Următoarele argumente pentru formare sunt opționale:

  • -lr rata de învățare [0.1]
  • -lrUpdateRate schimbă rata actualizărilor pentru rata de învățare [100]
  • -dim dimensiunea vectorilor de cuvinte [100]
  • -mărimea dimensiunilor ferestrei contextului [5]
  • -epoch numărul de epoci [40]
  • -negru număr de eșantioane negative [5]
  • -funcție pierdere {ns, hs, softmax, one-vs-all} [softmax]
  • numărul de fire [12]
  • -pretrainedVectors vectori de cuvânt pretrainiți pentru învățare supravegheată []
  • -saveOutput dacă parametrii de ieșire trebuie salvați [false]

Următoarele argumente pentru cuantificare sunt opționale:

  • număr de cuvinte și ngram-uri de retinut [0]
  • -reiați dacă încorporarea este finalizată dacă este aplicată o oprire [adevărat]
  • -qnorm dacă norma este cuantificată separat [fals]
  • -după faptul dacă clasificatorul este cuantificat [fals]
  • -dimensiunea cubului fiecărui sub-vector [2]

Pasul 4: Prezicerea folosind modelul salvat

Următoarea comandă este de a testa modelul pe un set de date de test pre-adnotat și de a compara etichetele originale cu etichetele prevăzute și de a genera scoruri de evaluare sub formă de valori de precizie și de rechemare.

Precizia este numărul de etichete corecte dintre etichetele prevăzute de fastText. Rechemarea este numărul de etichete care au fost prezise cu succes.

./fasttext test   k

Asigurați-vă că fișierul de testare este, de asemenea, în același format cu fișierul tren.

Pentru a prezice noi etichete:

./fasttext predict   k> 

unde k înseamnă că modelul va prezice etichetele de top k pentru fiecare recenzie.

Etichetele preconizate pentru recenziile de mai sus sunt următoarele:

__label__2
__label__1
__label__2
__label__2
__label__2
__label__2
__label__2
__label__2
__label__1
__label__2
__label__2

Fișierul de predicție poate fi apoi utilizat în scopuri de analiză și vizualizare detaliate.

fastText a arătat rezultate foarte bune în alte domenii, cum ar fi reprezentări de cuvinte etc., care vor fi acoperite în articolele viitoare.

Vă mulțumim că ați citit acest articol.