**Remarque! Il est destiné aux environnements dans lesquels python, mamp et gensim sont installés. Si vous ne pouvez pas, veuillez l'installer. ** ** ** Aussi, au lieu d'apprendre word2vec, recherchez simplement des mots similaires. ** **
Tout d'abord, connectez-vous à python depuis php.
Mettez ceci en php ~! L'exécutif de code peut accéder à la ligne de commande depuis php. (Le même que le terminal mac.)
<?php
exec('ls')
?>
Utilisez ceci pour exécuter python avec word2vec écrit dessus. Par exemple ..., vous pouvez exécuter un fichier python comme test.py depuis php.
<?php
exec('python test.py')
?>
Ensuite, apportez les données pour rechercher des mots similaires dans word2vec. Téléchargeons le zip. http://www.cl.ecei.tohoku.ac.jp/~m-suzuki/jawiki_vector/ J'utiliserai ceci plus tard.
Ensuite, du côté python, créez un nouveau fichier python. Écrivez comme ça. C'est ok ~! Veuillez répondre au zip que vous avez téléchargé précédemment et placez-le à proximité. C'est "entity_vector / entity_vector.model.bin". ** (Si vous ne supprimez pas la partie écrite dans le commentaire en japonais maintenant, une erreur se produira lors de la lecture, alors supprimez-la! (Vous pourrez peut-être la lire si vous la concevez. Je pense qu'il y a quelque chose.)) **
Je dois passer le chemin avec sys.path comme suit .. J'obtiens l'erreur "Erreur d'importation: aucun module nommé" gensim "". Cela signifie que l'emplacement de recherche du module défini dans mamp est différent. Cherchez donc le chemin du gensim déjà installé dans votre mac dans le terminal. (Pip show gensim)
word2vec.py
#Je peux importer des modèles de gensim avec python dans le terminal mac, mais il n'y a pas de chemin sur mamp.
#Alors sys.J'entrerai dans le chemin avec le chemin.
import sys
sys.path.append('chemin')
#Dans la section "Chemin" ci-dessus, entrez le chemin absolu à rechercher ensuite. (Exemple:/Users/Taro/anaconda3/lib/python3.6/site-packages)
#Voici le code qui exécute word2vec.
#Recherchez des mots similaires à «graphique».
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)
Revenons maintenant à php. Exécutez la commande et exécutez le fichier python avec exec (). Le deuxième argument est le résultat. Dans le troisième argument, s'il y a une erreur, quelque chose sera retourné. Maintenant ... le résultat est ...
index.php
$command = 'python wd2vc.py';
exec($command, $output, $return_var);
var_dump($output, $return_var);
J? ai compris! !! Les mots similaires à «graphique» sont affichés dans un tableau. Tu l'as fait!
Article de référence: PHP --Résumé de la relation entre la gestion des erreurs exec () et la sortie d'erreur standard https://qiita.com/smd8122/items/65b552f1d53bfb7fad9a J'étais un peu accro à l'utilisation de Mecab du PHP de MAMP! https://dbym4820.hatenablog.com/entry/2017/10/18/171259
Recommended Posts