Benvenuti a fastText nell’Hugging Face Hub

Benvenuti a fastText in Hugging Face Hub.

fastText è una libreria per l’apprendimento efficiente della rappresentazione e classificazione del testo. Open-source da Meta AI nel 2016, fastText integra idee chiave che hanno avuto influenza nel processing del linguaggio naturale e nell’apprendimento automatico negli ultimi decenni: la rappresentazione delle frasi utilizzando bag of words e bag of n-grams, l’utilizzo di informazioni subword e l’utilizzo di una rappresentazione nascosta per condividere informazioni tra le classi.

Per accelerare il calcolo, fastText utilizza hierarchical softmax, sfruttando la distribuzione sbilanciata delle classi. Tutte queste tecniche offrono soluzioni scalabili agli utenti per la rappresentazione e classificazione del testo.

Hugging Face ospita ora copie ufficiali dei vettori di parole di tutte le 157 lingue e l’ultimo modello per l’identificazione della lingua. Ciò significa che utilizzando Hugging Face, è possibile scaricare e utilizzare facilmente i modelli con pochi comandi.

Ricerca di modelli

I vettori di parole per le 157 lingue e il modello per l’identificazione della lingua possono essere trovati nell’organizzazione Meta AI. Ad esempio, è possibile trovare la pagina del modello per i vettori di parole in inglese qui e il modello per l’identificazione della lingua qui.

Widget

Questa integrazione include il supporto per i widget di classificazione del testo ed estrazione delle caratteristiche. Prova il widget di identificazione della lingua qui e il widget di estrazione delle caratteristiche qui!

Come utilizzare

Ecco come caricare e utilizzare dei vettori preaddestrati:

>>> import fasttext
>>> from huggingface_hub import hf_hub_download

>>> model_path = hf_hub_download(repo_id="facebook/fasttext-en-vectors", filename="model.bin")
>>> model = fasttext.load_model(model_path)
>>> model.words

['the', 'of', 'and', 'to', 'in', 'a', 'that', 'is', ...]

>>> len(model.words)

145940

>>> model['bread']

array([ 4.89417791e-01,  1.60882145e-01, -2.25947708e-01, -2.94273376e-01,
       -1.04577184e-01,  1.17962055e-01,  1.34821936e-01, -2.41778508e-01, ...])

Ecco come utilizzare questo modello per cercare i vicini più prossimi di un vettore di parole in inglese:

>>> import fasttext
>>> from huggingface_hub import hf_hub_download

>>> model_path = hf_hub_download(repo_id="facebook/fasttext-en-nearest-neighbors", filename="model.bin")
>>> model = fasttext.load_model(model_path)
>>> model.get_nearest_neighbors("bread", k=5)

[(0.5641006231307983, 'butter'), 
 (0.48875734210014343, 'loaf'), 
 (0.4491206705570221, 'eat'), 
 (0.42444291710853577, 'food'), 
 (0.4229326844215393, 'cheese')]

Ecco come utilizzare questo modello per rilevare la lingua di un determinato testo:

>>> import fasttext
>>> from huggingface_hub import hf_hub_download

>>> model_path = hf_hub_download(repo_id="facebook/fasttext-language-identification", filename="model.bin")
>>> model = fasttext.load_model(model_path)
>>> model.predict("Hello, world!")

(('__label__eng_Latn',), array([0.81148803]))

>>> model.predict("Hello, world!", k=5)

(('__label__eng_Latn', '__label__vie_Latn', '__label__nld_Latn', '__label__pol_Latn', '__label__deu_Latn'), 
 array([0.61224753, 0.21323682, 0.09696738, 0.01359863, 0.01319415]))

Ti piacerebbe integrare la tua libreria nell’Hub?

Questa integrazione è possibile grazie alla nostra collaborazione con Meta AI e la libreria huggingface_hub, che consente tutti i nostri widget e l’API per tutte le nostre librerie supportate. Se desideri integrare la tua libreria nell’Hub, abbiamo una guida per te!