**Hinweis! Es ist für Umgebungen vorgesehen, in denen Python, Mamp und Gensim installiert sind. Wenn Sie nicht können, installieren Sie es bitte. ** ** ** ** Anstatt word2vec zu lernen, suchen Sie einfach nach ähnlichen Wörtern. ** ** **
Stellen Sie zunächst von PHP aus eine Verbindung zu Python her.
Setzen Sie dies in php ~! Der Code Exec kann von PHP auf die Kommandozeile zugreifen. (Das gleiche wie das Mac-Terminal.)
<?php
exec('ls')
?>
Verwenden Sie diese Option, um Python mit darauf geschriebenem word2vec auszuführen. Zum Beispiel ... können Sie eine Python-Datei wie test.py von PHP ausführen.
<?php
exec('python test.py')
?>
Bringen Sie dann die Daten dazu, in word2vec nach ähnlichen Wörtern zu suchen. Lassen Sie uns die Zip herunterladen. http://www.cl.ecei.tohoku.ac.jp/~m-suzuki/jawiki_vector/ Ich werde dies später verwenden.
Erstellen Sie als Nächstes auf der Python-Seite eine neue Python-Datei. Schreiben Sie so. Das ist ok ~! Bitte beantworten Sie die zuvor heruntergeladene Postleitzahl und platzieren Sie sie in der Nähe. Das ist "entity_vector / entity_vector.model.bin". ** (Wenn Sie den Teil, der in dem Kommentar geschrieben ist, jetzt nicht auf Japanisch löschen, tritt beim Lesen ein Fehler auf. Löschen Sie ihn daher bitte! (Vielleicht können Sie ihn lesen, wenn Sie ihn entwickeln. Ich denke, es gibt etwas.)) **
Ich muss den Pfad mit sys.path wie folgt übergeben. Ich erhalte die Fehlermeldung "Importfehler: Kein Modul namens 'gensim'". Dies bedeutet, dass der Ort, an dem nach dem in mamp eingestellten Modul gesucht werden soll, unterschiedlich ist. Suchen Sie im Terminal nach dem Pfad von gensim, der bereits auf Ihrem Mac installiert ist. (Pip Show Gensim)
word2vec.py
#Ich kann Gensim-Modelle mit Python in das Mac-Terminal importieren, aber es gibt keinen Pfad auf mamp.
#Also sys.Ich werde den Pfad mit Pfad betreten.
import sys
sys.path.append('Pfad')
#Geben Sie im Abschnitt "Pfad" oben den absoluten Pfad ein, um als Nächstes nachzuschlagen. (Beispiel:/Users/Taro/anaconda3/lib/python3.6/site-packages)
#Unten ist der Code, der word2vec ausführt.
#Suchen Sie nach Wörtern, die "Grafik" ähnlich sind.
from gensim.models import KeyedVectors
model_dir = 'entity_vector/entity_vector.model.bin'
model = KeyedVectors.load_word2vec_format(model_dir, binary=True)
results = model.similar_by_vector("graphic", topn=10, restrict_vocab=None)
for result in results:
print(result)
Nun zurück zu PHP. Führen Sie den Befehl aus und führen Sie die Python-Datei mit exec () aus. Das zweite Argument ist das Ergebnis. Im dritten Argument wird bei einem Fehler etwas zurückgegeben. Nun .. das Ergebnis ist ..
index.php
$command = 'python wd2vc.py';
exec($command, $output, $return_var);
var_dump($output, $return_var);
Ich hab es geschafft! !! Wörter, die "Grafik" ähnlich sind, werden in einem Array ausgegeben. Du hast es geschafft!
Referenzartikel: PHP - Zusammenfassung der Beziehung zwischen exec () - Fehlerbehandlung und Standardfehlerausgabe https://qiita.com/smd8122/items/65b552f1d53bfb7fad9a Ich war ein bisschen süchtig nach Mecab aus MAMP's PHP! https://dbym4820.hatenablog.com/entry/2017/10/18/171259
Recommended Posts