Page 1 sur 1

[Func] Recherche les définitions de mots sur internet

Posté : jeu. 05 janv. 2012 17:30
par Ahbadiane
Bonjour,

Voici un script qui vous permet de rechercher la définition d’un mot sur l’un des quatre dictionnaires en ligne :
Version du 17 janvier 2011 : _DicoDefinition($sStrategieDico, $sMot, $hForm, $bStopPossible = True, $bDebug = False)
$ sStrategieDico : Donne la stratégie de recherche dans les différents dictionnaires, la première lettre de chaque dictionnaire.
Pour les autres paramètres voir l'entête de la fonction.
La fonction retourne un tableau 2D, voir l'entête de la fonction.

Tests effectués le 14 et 15 janvier 2011, sur 100.000 mots extraits des mots du Scrabble
Dictionnaire.net : TauxOK=89%, LongDef=110car, DefMin=55
Larousse.fr : TauxOK=85%, LongDef=228car, DefMin=38
TV5.org : TauxOK=83%, LongDef=81, DefMin=38
Exionnaire.com : TauxOK=99%, LongDef=5car, DefMin=47
Avec :
TauxOK : Pourcentage de mots trouvés
LongDef : Nombre de caractères moyen par définition
DefMin : Nombre de définitions par minute (la valeur est très relative, fonction de votre PC et de votre connexion internet)

En conclusion : Exionnaire.com est le site retournant le plus de définition et Larousse.fr est le site donnant des définitions les plus détaillées.

La difficulté réside dans la recherche des mots conjugués et des mots accentués que les dictionnaires interprètent plus ou moins bien.
La fonction permet de combiner la recherche d’un dictionnaire à un autre si le mot n’est pas trouvé dans le premier.
Exemple 1 : rechercher un mot sur Dictionnaire.net, puis Larousse.fr et enfin TV5.org ($sStrategieDico = « DLT »)
Vous pouvez également lui demander de revenir sur un dictionnaire précis avec le mot trouvé dans un autre dictionnaire.
Exemple 2 : ACCROUPISSES n'est pas trouvé sur Larousse.fr mais sur TV5.org le mot nous ramène au verbe ACCROUPIR et donc si vous voulez avoir une définition qui revienne du Larousse, la fonction pourra reprendre le mot ACCROUPIR pour en trouver la définition sur Larousse.fr. ($sStrategieDico = " DLT/L ")

Re: [Func] Dico sur internet

Posté : jeu. 05 janv. 2012 17:33
par Ahbadiane
Une mise à jour pour :
  • - Un petit bug dans l'exemple : le mode debug n'était pas pris en compte (il permet d'enregistrer les pages visitées et le texte retenu - fichier txt - le tout dans un sous-dossier de la première lettre du mot)
    - Un ajout dans la fonction elle-même : le passage en mode sans image d'IE permettant un chargement plus rapide

Re: [Func] Dico sur internet

Posté : jeu. 05 janv. 2012 18:16
par Yle
Bonjour,

Je n'ai pas regardé de près ton programme mais avec ton outil, est il ou serait il possible d'extraire tous les mots des dicos consultés.
J'ai un outil qui me sert pour le Scrabble et toute la difficulté est de trouver la liste de tous les (nouveaux) mots d'un dictionnaire.

Ce soir, je regarderai plus en détail ta fonction...

Re: [Func] Dico sur internet

Posté : jeu. 05 janv. 2012 18:38
par Ahbadiane
@Yle,
La liste des mots ne peut pas être données par les dictionnaires en lignes (du moins, je ne crois pas)
Par contre, tu peux prendre tous tes mots et appeler autant de fois la fonction mais bonjour le temps. Il y a 380 mille mots dans le dico du scrabble (si une recherche en moyenne prend 3 secondes, il faudra 13 jours pour aller chercher toutes les définitions !!!)
Si tu as besoin d'aide pour coder la recherche, n'hésite pas

Re: [Func] Dico sur internet

Posté : jeu. 05 janv. 2012 19:21
par PandiPanda
Bonsoir,
Si vous voulez rendre votre "recherche" de mot un peu plus rapide, vous pouvez toujours utiliser un

Code : Tout sélectionner

BinaryToString(InetRead($url),0)
le 0 permettant => [optional] 0 = (default) Get the file from local cache if available.
et ainsi permettre une recherche bien plus rapide si vous devez rechercher le meme mot plusieurs fois.

De manière générale, "BinaryToString(InetRead($url),0)" sera plus rapide qu'une recherche via _IEXXX

Voici 2 fonctions qui font la meme chose;
► Afficher le texte
le meme exemple en utilisant _IEXXX;
► Afficher le texte
La différence de temps est assez énorme chez moi ...

Re: [Func] Dico sur internet

Posté : jeu. 05 janv. 2012 19:36
par lesolutionneur
Vous risquez de vous prendre un ban/ip de la part du site (en général, tous les sites ont cette protection).
Le mieux reste d'utiliser des requêtes avec une liste de proxys et le multithread.

Bonne chance :)

Re: [Func] Dico sur internet

Posté : jeu. 05 janv. 2012 21:05
par Ahbadiane
@PandiPanda, je vais étudier ta solution, elle paraît effectivement plus efficace :o

@lesolutionneur, j'ai fait un test de 50.000 mots et je n'ai pas eu de problème

Re: [Func] Dico sur internet

Posté : jeu. 05 janv. 2012 21:10
par lesolutionneur
C'est dangereux ça !
Le site pourrait se faire attaquer...

Re: [Func] Recherche dans les dictionnaires sur internet

Posté : mar. 17 janv. 2012 15:30
par Ahbadiane
Bonjour,

Mise à jour de la fonction ce jour, avec trois principales modifications :

Suite aux idées de @PandiPanda, j'ai abandonné _IExxx() pour utiliser $oHTTP=ObjCreate("winhttp.winhttprequest.5.1"), $oHTTP.Open("GET", $sUrl), $oHTTP.Send() …
Plus rapide, cette modification m'a obligé également à gérer les erreurs de COM avec ObjEvent("AutoIt.Error", "FuncErreur").

Comme le taux de mot trouvé sur les 3 premiers dictionnaires était au mieux 96% (en combinant la recherche sur les 3 dictionnaires). J'ai donc recherché un autre dictionnaire pour améliorer ce taux et le site Exionnaire.com est certainement le meilleur pour trouver le mot "racine" (par racine, je pense au verbe infinitif pour la recherche d'un verbe conjugué). La fonction permet de revenir sur un autre dictionnaire si le mot recherché abouti à une autre orthographe de ce mot. En combinant la recherche on arrive à un taux de recherche de 99,9%.

Pour suivre l'idée de @Yle, j'ai grandement modifié l'interface de test de la fonction.
Un onglet pour rechercher un mot et surtout un onglet qui permet de générer, à partir d'un fichier TXT, un fichier des définitions XML directement ouvrable dans Excel.

Le premier post a été mis à jour avec tout cela.

Re: [Func] Recherche dans les dictionnaires sur internet

Posté : mar. 17 janv. 2012 16:27
par DimVar
Merci pour cet outils ! Et pour les autres d'ailleurs...
Je file souvent ton url à des gens qui me disent que "Macro" est la definition d'AutoIt.
Toujours du beau boulot.

Bonne continuation.

Re: [Func] Recherche dans les dictionnaires sur internet

Posté : mar. 17 janv. 2012 21:46
par Ahbadiane
Merci DimVar, je vais maintenant intégrer cette fonction dans Je2Mots