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

Partagez des fonctions et des UDF AutoIt.
Règles du forum
.
Répondre
Avatar du membre
Ahbadiane
Niveau 5
Niveau 5
Messages : 139
Enregistré le : jeu. 20 déc. 2007 22:39
Localisation : Paris
Status : Hors ligne

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

#1

Message 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 ")
Fichiers joints
DicoDefinition.au3
L'interface de test
(15.6 Kio) Téléchargé 281 fois
_DicoDefinition.au3
La fonction
(24.34 Kio) Téléchargé 268 fois
Modifié en dernier par Ahbadiane le lun. 23 janv. 2012 14:05, modifié 2 fois.
Avatar du membre
Ahbadiane
Niveau 5
Niveau 5
Messages : 139
Enregistré le : jeu. 20 déc. 2007 22:39
Localisation : Paris
Status : Hors ligne

Re: [Func] Dico sur internet

#2

Message 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
Avatar du membre
Yle
Niveau 5
Niveau 5
Messages : 167
Enregistré le : mar. 21 avr. 2009 17:22
Localisation : La NORMANDIE -76
Status : Hors ligne

Re: [Func] Dico sur internet

#3

Message 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...
Avatar du membre
Ahbadiane
Niveau 5
Niveau 5
Messages : 139
Enregistré le : jeu. 20 déc. 2007 22:39
Localisation : Paris
Status : Hors ligne

Re: [Func] Dico sur internet

#4

Message 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
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [Func] Dico sur internet

#5

Message 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 ...
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
lesolutionneur
Niveau 7
Niveau 7
Messages : 368
Enregistré le : ven. 09 déc. 2011 11:25
Status : Hors ligne

Re: [Func] Dico sur internet

#6

Message 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 :)
Avatar du membre
Ahbadiane
Niveau 5
Niveau 5
Messages : 139
Enregistré le : jeu. 20 déc. 2007 22:39
Localisation : Paris
Status : Hors ligne

Re: [Func] Dico sur internet

#7

Message 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
lesolutionneur
Niveau 7
Niveau 7
Messages : 368
Enregistré le : ven. 09 déc. 2011 11:25
Status : Hors ligne

Re: [Func] Dico sur internet

#8

Message par lesolutionneur »

C'est dangereux ça !
Le site pourrait se faire attaquer...
Avatar du membre
Ahbadiane
Niveau 5
Niveau 5
Messages : 139
Enregistré le : jeu. 20 déc. 2007 22:39
Localisation : Paris
Status : Hors ligne

Re: [Func] Recherche dans les dictionnaires sur internet

#9

Message 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.
Avatar du membre
DimVar
Niveau 10
Niveau 10
Messages : 867
Enregistré le : ven. 30 mai 2008 15:08
Status : Hors ligne

Re: [Func] Recherche dans les dictionnaires sur internet

#10

Message 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.
N'évoquons pas la pierre, les jeunes risqueraient d'en poire !
Avatar du membre
Ahbadiane
Niveau 5
Niveau 5
Messages : 139
Enregistré le : jeu. 20 déc. 2007 22:39
Localisation : Paris
Status : Hors ligne

Re: [Func] Recherche dans les dictionnaires sur internet

#11

Message par Ahbadiane »

Merci DimVar, je vais maintenant intégrer cette fonction dans Je2Mots
Répondre