fastText, i kako ga koristiti za analizu teksta?

Svi koristimo facebook i sigurno ste već neko vrijeme doživjeli da ste napravili neki post i facebook vam počinje prikazivati ​​oglase točno povezane s tom stvari.

Na primjer, ako napravite post na Facebooku da ćete napustiti posao kako biste pokrenuli neki svoj novi pothvat i odjednom vam Facebook počne prikazivati ​​takve oglase,

Pa kako facebook točno zna što pokazati?

To je čar njegovog NLP biblioteke - fastText.

FastText je besplatna, lagana knjižnica otvorenog koda, koju je nedavno otvorio Facebook.FastText je knjižnica koju je stvorio istraživački tim Facebook za učinkovito učenje predstavljanja riječi i klasifikacije rečenica.

Ova je knjižnica dobila veliku pažnju u NLP zajednici jer je pokazala sjajne rezultate u različitim NLP domenama.

Kako ga koristiti?

U ovom ću vam članku reći kako to koristiti za klasifikaciju teksta.

1. korak: Stavljanje podataka u ispravan format

Za FastText je vrlo važno imati podatke u propisanom obliku.

Format:

_label_0 svoj_tekst

Ovdje se oznaka '_label_' mora koristiti onakva kakva jest.

'0' kaže vašu etiketu (vrijednost u stupcu s oznakama za taj određeni redak)

"Your_text" je tekst na kojem želite trenirati svoj klasifikator.

U gore navedenom kôdu pokazao sam način kako otvoriti novu datoteku "train.txt" za pisanje i upisivanje podataka u nju.

Korak 2: Kloniranje repoa

Zatim moramo klonirati fastText repo u našu bilježnicu da bismo koristili njegove funkcije.

Repo id: https://github.com/facebookresearch/fastText.git

Nakon kloniranja slijedite ove korake:

Provjerite nalazi li se datoteka "train.txt" unutar mape fastText stvorene kloniranjem repoa.

Korak 3: igranje okolo pomoću naredbi

Sada je vaš model spreman za obuku, dajte sljedeću naredbu za obuku vašeg klasifikatora -

./fasttext nadziran -input train.txt -output

-oznaka __label__ -lr 0,1 -epoch 40

Sljedeći su argumenti obavezni:

  • -put ulazne datoteke za trening
  • -izlazni put izlazne datoteke

Možete se igrati oko ovih parametara kako biste precizno prilagodili model (obavezno upotrijebite crticu (-) prije nego što upotrebite bilo koji argument)

Pod uvjetom da nema crtice!

Upotreba:

Sljedeći su argumenti neobvezni:

  • -verbosna razina verbositeta [2]

Sljedeći argumenti za rječnik nisu obavezni:

  • -minCount minimalan broj pojava riječi [1]
  • -minCountLabel minimalan broj pojavljivanja naljepnica [0]
  • -wordNgrams maksimalna duljina riječi ngram [2]
  • -broj kanti [2000000]
  • -minn min dužina Char ngram [0]
  • -maxn max dužina char ngram [0]
  • -t prag uzorkovanja [0.0001]
  • prefiks naljepnica [__label__]

Sljedeći argumenti za obuku su neobvezni:

  • -lr stopa učenja [0,1]
  • -lrUpdateRate promijeniti brzinu ažuriranja za stopu učenja [100]
  • -dim veličina riječi vektori [100]
  • -ws veličina kontekstnog prozora [5]
  • -broj epoha [40]
  • -ukupan broj negativnih uzoraka [5]
  • -gubitak funkcija gubitka {ns, hs, softmax, jedan prema svima} [softmax]
  • -tezni broj niti [12]
  • -pretrainedVectors pretražili riječ vektori za nadzirano učenje []
  • -saveOpusti treba li spremiti izlazne parame [false]

Sljedeći argumenti za kvantizaciju nisu obavezni:

  • granični broj riječi i ngrama koji će se zadržati [0]
  • -tražite da li su ugrađenja ugašena ako se primijeni presjek [true]
  • -Nizvodi je li norma kvantizirana odvojeno [false]
  • -izvedi je li klasifikator kvantiziran [false]
  • -dub veličina svakog podvektora [2]

4. korak: predviđanje korištenja spremljenog modela

Sljedeća naredba je testirati model na skupu podataka s unaprijed označenim testom i usporediti izvorne naljepnice s predviđenim naljepnicama te generirati ocjenjivačke rezultate u obliku vrijednosti preciznosti i opoziva.

Preciznost je broj točnih naljepnica među naljepnicama koje predviđa fastText. Opoziv je broj naljepnica koje su uspješno predviđene.

./testtext test   k

Provjerite je li testna datoteka također u istom obliku kao i datoteka vlaka.

Da biste predvidjeli nove oznake:

./fasttext predviđanje   k> 

pri čemu k znači da će model predvidjeti gornje k oznake za svaki pregled.

Oznake predviđene za gornje recenzije su sljedeće:

__label__2
__label__1
__label__2
__label__2
__label__2
__label__2
__label__2
__label__2
__label__1
__label__2
__label__2

Datoteka predviđanja tada se može koristiti za daljnju detaljnu analizu i vizualizaciju.

fastText je pokazao odlične rezultate i na drugim poljima, kao što su npr. prezentacije riječi itd., o kojima će biti riječi u narednim člancima.

Hvala što ste pročitali ovaj članak.