fastText ist ein von Facebook veröffentlichtes Tool zur Verarbeitung natürlicher Sprache. Die Verarbeitung natürlicher Sprache kann mit hoher Geschwindigkeit durchgeführt werden. GitHub fastText
Informationen zum Mechanismus finden Sie auf der Erklärungsseite. Was können Sie mit fastText tun, das innerhalb von Minuten 1 Milliarde von Facebook veröffentlichte Wörter lernt?
Dieses Mal möchte ich diesen fastText verwenden, um den Stammbaum des Pferderennsports anstelle der Verarbeitung natürlicher Sprache zu vektorisieren. Die Idee, fastText nicht nur für die Verarbeitung natürlicher Sprache zu verwenden, wurde durch den folgenden Artikel inspiriert. Verwenden Sie fastText, um verteilte Darstellungen von Nichtwörtern zu erhalten
Ich lade eine Vektordatei und eine Jupyter-Notizbuchdatei hoch, um zu erfahren, wie man githubt. github keiba_ketto_vec
Stammbaum Die letzten 3 Generationen wurden in das fastText-Format gebracht.
Beim Rennpferd Satono Diamond handelt es sich um einen Stammbaum.
Stammbaum | Pferdename |
---|---|
Kind | Satono Diamant |
Vater | tiefe Wirkung |
Mutter | Malpensa |
Vater | Sonntagsstille |
Eltern | Wind in ihren Haaren |
Mutter Vater | Orpen |
Mutter Mutter | Marsella |
Vater Vater | Halo |
Eltern | Wishing Well |
Eltern Vater | Alzao |
Eltern | Burghclere |
Mutter Vater | Lure |
Mutter Eltern | Bonita Francita |
Mutter Mutter Vater | Südlicher Halo |
Mutter Mutter Mutter | Riviere |
Konvertieren Sie die Pferdenamen in der obigen Tabelle in eine Zeile, die durch Leerzeichen halber Breite getrennt ist. Gleiches gilt für andere Rennpferde.
input.csv
Satono Diamond Deep Impact Marsella Sonntag Stille Wind in ihrem Haar Orpen Marsella Halo WishingWell Alzao Burghclere locken BonitaFrancita Southern Halo Riviere
Simon Trunale Gold Allure Humoresk Sonntagsstille Nikiya Afleet Verbündeter Gewinnen Sie Halo WishingWell Nureyev ReluctantGuest Mr..Prospector PoliteLady Alydar FleetVictress
Wasser Lourdes Wasserliga Wasser Enan Dehere Solo BostonHarbor Scrape DeputyMinister SisterDot Halo MineNur Capote HarborSprings Mr..Prospector File
...
Verwenden Sie den Befehl fasttext skipgram zur Vektorisierung. Wenn Sie es ausführen, sollten Sie bin- und vec-Dateien generiert haben.
$fasttext skipgram -input input.csv -output ketto_model -minn 50
In Bezug auf die Minn-Option als Mechanismus von fastText scheint es, dass zusätzlich zu den durch Leerzeichen getrennten Wörtern jedes Wort auf Zeichenebene zur Analyse weiter zerlegt wird. Betrachtet die Implementierung von fastText
Diese Funktion bündelt beispielsweise die Pferde "Gold Allure" und "Gold Ship" mit "Gold". Diesmal hat der Name selbst keine Bedeutung. Verwenden Sie daher die Option minn, um zu verhindern, dass er auf die Zeichenebene herunterfällt, um die Funktion zu deaktivieren.
Verwenden Sie gensim, um die vektorisierte Datei zu lesen und Vektoroperationen auszuführen.
Verwenden Sie die Vektorarithmetik von Satono Diamond, um zu überprüfen, ob Sie Linate, die jüngere Schwester Ihres Vaters, berechnen können.
Damit
Satono Diamant+Bleib Gold-tiefe Wirkung=Linate
Sollte halten.
howto.py
import gensim
#Lesen Sie die Vektordaten mit gensim
model = gensim.models.KeyedVectors.load_word2vec_format('ketto_model.vec', binary=False)
# most_Berechnet mit ähnlichen Methoden
#Übergeben Sie die Daten, die in einer Liste zu positiv hinzugefügt werden sollen, und die Daten, die in einer Liste zu negativ subtrahiert werden sollen.
model.most_similar(
positive=["Bleib Gold", "Satono Diamant"],
negative=["tiefe Wirkung"]
)
Überprüfen Sie im Folgenden, wie Sie Gensim verwenden. gensim models.word2vec
result.
[('Paulen', 0.8220623731613159),
('Marquessa', 0.8190209865570068),
('Malpensa', 0.814713716506958),
('Linate', 0.80884850025177),
('Shapira', 0.8080180287361145),
('Mondscheinnacht', 0.8041872382164001),
('Semplice', 0.7995823621749878),
('OnAir', 0.7940067648887634),
('Fusionsschloss', 0.7933699488639832),
('Orpen', 0.7927322387695312)]
Das Ergebnis war, dass Paulen vom Mutter-Vater-Orpen-System am ähnlichsten war, aber nach der Malpensa der Mutter und der Halbschwester Malpensa (Vater Orphevre, Aufenthaltgold des Vaters) erschien Linate auch fest im Berechnungsergebnis. Daher kann gesagt werden, dass die Vektorisierung erfolgreich war.
das ist alles.
Recommended Posts