2008-10-19 9 views
22

Est-ce que quelqu'un connaît une bonne API de dictionnaire ou une bibliothèque ruby ​​pour rechercher les définitions de mots?API ou bibliothèque de dictionnaire

Je pense que cela devrait fonctionner quelque chose comme:.

  1. J'appelle get_definition (mot)
  2. Il renvoie la définition de ce mot (idéalement d'une certaine façon de formater facilement la définition pour l'affichage

Merci

Répondre

6

Ruby-WordNet sonne comme il le fait ce que vous cherchez:

Ruby-WordNet est une interface Ruby à la base de données WordNet® lexicaux. WordNet est un système de référence lexical en ligne dont la conception est inspirée par les actuelles théories psycholinguistiques de l'homme mémoire lexicale. Noms, verbes, adjectifs et adverbes sont organisés en ensembles de synonymes, chacun représentant un concept lexical sous-jacent. Différentes relations relient le synonyme ensembles.

+1

Juste avertissement, cette bibliothèque prend une éternité à installer et à configurer. Le processus de conversion est très lent. –

+0

@BobAman l'a-t-il fini? (Vous avez dit qu'il a fallu une éternité) –

14

J'ai découvert un webservice pour hier.

Accédez à la page d'accueil British Council et double-cliquez sur n'importe quel mot (qui n'est pas déjà un lien hypertexte).

Ceci devrait ouvrir une fenêtre contextuelle avec une définition de dictionnaire de Cambridge. L'API est relativement simple (et il est une API publique, je l'ai vérifié hier):

http://dictionary.cambridge.org/learnenglish/results.asp?searchword=SEARCH_PHRASE&dict=L 

Pour référence, voici le code qu'ils utilisent pour lancer ce double-cliquez sur:

/* BC double-click pop-up dictionary */ 
var NS = (navigator.appName == "Netscape" || navigator.product == 'Gecko') ? 1 : 0; 
if (NS) document.captureEvents(Event.DBLCLICK); 
document.ondblclick = dict; 
var dictvar; 

function dict() { 
    if (NS) { 
     t = document.getSelection(); 
     pass_to_dictionary(t); 
    } else { 
     t = document.selection.createRange(); 
     if(document.selection.type == 'Text' && t.text != '') { 
      document.selection.empty(); 
      pass_to_dictionary(t.text); 
     } 
    } 
} 

function pass_to_dictionary(text) { 
    //alert(text); 
    if (text > '') { 
     window.open('http://dictionary.cambridge.org/learnenglish/results.asp?searchword='+text+ '&dict=L', 'dict_win', 'width=650,height=400,resizable=yes,scrollbars=yes'); 
    } 
} 
+10

Ce service ne semble plus être disponible sous la forme décrite par l'auteur de la réponse. –

15

Wordnik.com a plusieurs API de mots-info, y compris un API de définitions. Plus d'informations est ici: http://developer.wordnik.com/

[Je travaille pour Wordnik. Nous aurons plus d'API bientôt, faites-nous savoir ce que vous voulez!]

+0

Cela semble très complet - il serait bon d'avoir d'autres types de données de retour s'il vous plaît, en particulier le rappel JSON! :) – Andy

+0

ou un exemple d'iPhone fonctionnant.Avec tant de classes c'est difficile de comprendre ce qui appelle ce que – amok

+0

Wordnik semble très bon! Je viens de commencer à implémenter une API .NET pour cela – Konstantinos

Questions connexes