Question

Je suis en train d'écrire un programme pour trouver la similarité entre deux documents, et depuis im en utilisant uniquement l'anglais, j'ai décidé d'utiliser WordNet, mais je ne peux pas trouver un moyen de lier le wordnet avec php, je ne peux trouver aucune api wordnet de php.

J'ai vu dans le forum quelqu'un dit (Spudley) il a appelé wordnet de php (en utilisant la fonction shell_exec ()), classe Thesaurus ou API pour PHP [édité]

Je voudrais vraiment savoir une méthode ou un exemple de code, un tutoriel peut-être commencer à utiliser le wordnet avec php.

Merci beaucoup

Était-ce utile?

La solution

L'extension PHP qui est lié à partir du site WordNet est très ancienne et obsolète -. Il prétend PHP4, donc je ne pense pas qu'il a été examiné dans les années

Il n'y a pas d'autres API disponibles pour WordNet-> PHP, donc je roulais ma propre solution.

WordNet peut être exécuté à partir de la ligne de commande, de sorte que la fonction de shell_exec() de PHP peut lire la sortie.

Si vous exécutez WordNet de la ligne de commande (cd au répertoire de Wordnet, puis juste wn) sans aucun paramètre, il vous affichera une liste des fonctions possibles que supports WordNet.

Toujours dans la ligne de commande, si vous essayez une / certaines de ces fonctions, vous verrez comment les sorties Wordnet ses résultats. Par exemple, si vous voulez synonymes du mot « star », vous pouvez essayer la fonction -synsn:

wn star -synsn

Cela produira une sortie qui ressemble un peu à ceci:

Synonymes / hyperonymes (par ordre de fréquence estimée) de star nom

8 sens de l'étoile

Sens 1 étoile => Le corps céleste, corps céleste

Sense 2 as, adepte, champion, sensation, Maven, Mavin, virtuose, génie, champion, étoile, superstar, whiz, whiz, assistant, wiz => Expert

Sense 3 étoiles => Le corps céleste, corps céleste

Sense 4 étoiles => Figure plane, la figure en deux dimensions

Sense 5 étoiles, le principal, le plomb => Acteur, histrion, joueur, comédien, joueur de rôle

Sense 6 tête d'affiche, étoiles => Interprète, artiste interprète

Sense 7 astérisque, étoile => Caractère, graphème, symbole graphique

Sense 8 topologie en étoile, étoile => Topologie, topologie réseau

En PHP, vous pouvez lire cette même sortie en utilisant la fonction shell_exec().

$result = shell_exec('/path/to/wn '.$word.' -synsn');

$result doit contenir le bloc de texte cité ci-dessus.

À ce stade, vous devez faire un bon codage. Vous aurez besoin de prendre ce bloc de texte et d'analyser pour les données que vous souhaitez.

C'est là que ça devient délicat. Étant donné que les données sont présentées dans un format conçu pour être lu par un humain plutôt que par un programme, il est difficile à analyser avec précision.

Il est important de noter que les différentes options de recherche présentent leur production légèrement différente. Et, quelques-uns des résultats renvoyés peuvent être quelque peu ésotérique. Je fini par écrire un système de pondération pour marquer les résultats, mais il était assez spécifique à mes besoins, vous aurez donc besoin d'expérimenter pour venir avec votre propre système.

J'espère que ce assez pour vous aider. :)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top