[Func] Recherche les définitions de mots sur internet
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
- Ahbadiane
- 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
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 ")
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é 339 fois
-
_DicoDefinition.au3
- La fonction
- (24.34 Kio) Téléchargé 323 fois
Modifié en dernier par Ahbadiane le lun. 23 janv. 2012 14:05, modifié 2 fois.
- Ahbadiane
- Niveau 5
- Messages : 139
- Enregistré le : jeu. 20 déc. 2007 22:39
- Localisation : Paris
- Status : Hors ligne
Re: [Func] Dico sur internet
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
- Yle
- Niveau 5
- Messages : 171
- Enregistré le : mar. 21 avr. 2009 17:22
- Localisation : La NORMANDIE -76
- Status : Hors ligne
Re: [Func] Dico sur internet
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...
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...
- Ahbadiane
- Niveau 5
- Messages : 139
- Enregistré le : jeu. 20 déc. 2007 22:39
- Localisation : Paris
- Status : Hors ligne
Re: [Func] Dico sur internet
@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
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
- PandiPanda
- Membre émérite
- Messages : 656
- Enregistré le : mar. 19 juil. 2011 14:03
- Localisation : Bruxelles
- Status : Hors ligne
Re: [Func] Dico sur internet
Bonsoir,
Si vous voulez rendre votre "recherche" de mot un peu plus rapide, vous pouvez toujours utiliser un
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;
le meme exemple en utilisant _IEXXX;
La différence de temps est assez énorme chez moi ...
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)
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
► Afficher le texte
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
-
- Niveau 7
- Messages : 368
- Enregistré le : ven. 09 déc. 2011 11:25
- Status : Hors ligne
Re: [Func] Dico sur internet
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
Le mieux reste d'utiliser des requêtes avec une liste de proxys et le multithread.
Bonne chance

- Ahbadiane
- Niveau 5
- Messages : 139
- Enregistré le : jeu. 20 déc. 2007 22:39
- Localisation : Paris
- Status : Hors ligne
Re: [Func] Dico sur internet
@PandiPanda, je vais étudier ta solution, elle paraît effectivement plus efficace
@lesolutionneur, j'ai fait un test de 50.000 mots et je n'ai pas eu de problème

@lesolutionneur, j'ai fait un test de 50.000 mots et je n'ai pas eu de problème
-
- Niveau 7
- Messages : 368
- Enregistré le : ven. 09 déc. 2011 11:25
- Status : Hors ligne
Re: [Func] Dico sur internet
C'est dangereux ça !
Le site pourrait se faire attaquer...
Le site pourrait se faire attaquer...
- Ahbadiane
- 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
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.
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
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.
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 !
- Ahbadiane
- 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
Merci DimVar, je vais maintenant intégrer cette fonction dans Je2Mots