CINXE.COM

Datamuse API

<html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="description" content=""> <meta name="author" content=""> <title>Datamuse API</title> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.3/jquery-ui.min.js"></script> <script src="https://d3js.org/d3.v3.min.js"></script> <link rel="stylesheet" href="https://www.datamuse.com/css/wordgraph.css"/> <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.3/themes/smoothness/jquery-ui.css" /> <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700' rel='stylesheet' type='text/css'> <style> .wikdemo { margin: auto; width: 60%; } a.apilink { text-decoration: none; font-size: 1.0rem; } a:link.apilink { text-shadow: none; background: none; } .metricstable { font-size: 15px; clear:both; } wordgraph { align: middle; } body { font-family: 'Open Sans', sans-serif; font-weight: 400; margin-left: 10%; margin-right: 10%; } #logo { height:95px; overflow:hidden; margin:auto } #logotext { font-size: 1.5em; } </style> </head> <body> <center> <table><td> <center> <div id="logo"> <a href="https://www.datamuse.com/"><img src="datamuse-logo-rgb.png"></a> </div> <span id="logotext"><center>API</center></span> <br> <table class="stattable"> <tr> <td> Current API version: </td> <td width=10></td> <td> <span id="metrics_version"></span> </td> </tr> <tr> <td> Current queries per second: </td> <td width=10></td> <td> <span id="metrics_qps_5"></span> </td> </tr> <tr> <td> Latency (/words): </td> <td width=10></td> <td> <span id="metrics_latency_words_50"></span> ms (median), <span id="metrics_latency_words_99"></span> ms (99 &#37;ile) </td> </tr> <tr> <td> Latency (/sug): </td> <td width=10></td> <td> <span id="metrics_latency_sug_50"></span> ms (median), <span id="metrics_latency_sug_99"></span> ms (99 &#37;ile) </td> </tr> </table> </td></table> </center> <br> <script> $(function() { $.ajax({ dataType: "json", type : 'Get', url: 'https://api.datamuse.com/metrics', success: function(data) { var latency_re = /latency_.*/; var qps = 0.0; for (x in data) { if (data[x]["key"].match(latency_re)) { // Convert from seconds to milliseconds, round v = Math.round(data[x]["value"] * 100000) / 100.0; } else { v = Math.round(data[x]["value"] * 100) / 100.0; } if (data[x]["key"] === "qps_5") qps += v; else $( "#metrics_" + data[x]["key"] ).html("<b>" + v + "</b>"); } $.ajax({ dataType: "json", type : 'Get', url: 'https://api.onelook.com/metrics', success: function(data2) { for (x in data2) { if (data2[x]["key"] === "qps_5") { v = Math.round((data2[x]["value"] + qps) * 100) / 100.0 $( "#metrics_" + data2[x]["key"] ).html("<b>" + Math.round(v) + "</b>"); } } }}); }})}); </script> <center> (Recent additions: <a href="#md">Metadata fields</a>, <a href="#triggers">Triggers</a>, <a href="#vocabs">Spanish</a>) </center> <h2>What is it?</h2> <p>The <a href="https://www.datamuse.com">Datamuse</a> API is a <b>word-finding</b> query engine for developers. You can use it in your apps to find words that match a given set of <b>constraints</b> and that are likely in a given <b>context</b>. You can specify a wide variety of constraints on meaning, spelling, sound, and vocabulary in your queries, in any combination. <h2>What is it good for?</h2> <p> Applications <a href="users.html">use the API</a> for a wide range of features, including autocomplete on text input fields, search relevancy ranking, assistive writing apps, word games, and more. The following examples illustrate the kinds of queries you can make:<br><br> <table class="fullwidth" cellpadding=10> <thead> <tr> <th class="text">In order to find...</th> <th class="text">...use https://api.datamuse.com&hellip;</th> </tr> </thead> <tbody> <tr> <td class="text">words with a meaning similar to <i>ringing in the ears</i></td> <td class="text"><a href="https://api.datamuse.com/words?ml=ringing+in+the+ears" class="apilink">/words?ml=ringing+in+the+ears</a></td> </tr> <tr> <td class="text">words related to <i>duck</i> that start with the letter <i>b</i></td> <td class="text"><a href="https://api.datamuse.com/words?ml=duck&amp;sp=b*&max=10" class="apilink">/words?ml=duck&amp;sp=b*</a></td> </tr> <tr> <td class="text">words related to <i>spoon</i> that end with the letter <i>a</i></td> <td class="text"><a href="https://api.datamuse.com/words?ml=spoon&amp;sp=*a&max=10" class="apilink">/words?ml=spoon&amp;sp=*a</a></td> </tr> <tr> <td class="text">words that sound like <i>jirraf</i></td> <td class="text"><a href="https://api.datamuse.com/words?sl=jirraf" class="apilink">/words?sl=jirraf</a></td> </tr> <tr> <td class="text">words that start with <i>t</i>, end in <i>k</i>, and have two letters in between</td> <td class="text"><a href="https://api.datamuse.com/words?sp=t??k" class="apilink">/words?sp=t??k</a></td> </tr> <tr> <td class="text">words that are spelled similarly to <i>hipopatamus</i></td> <td class="text"><a href="https://api.datamuse.com/words?sp=hipopatamus" class="apilink">/words?sp=hipopatamus</a></td> </tr> <tr> <td class="text">adjectives that are often used to describe <i>ocean</i></td> <td class="text"><a href="https://api.datamuse.com/words?rel_jjb=ocean" class="apilink">/words?rel_jjb=ocean</a></td> </tr> <tr> <td class="text">adjectives describing <i>ocean</i> sorted by how related they are to <i>temperature</i></td> <td class="text"><a href="https://api.datamuse.com/words?rel_jjb=ocean&topics=temperature" class="apilink">/words?rel_jjb=ocean&topics=temperature</a></td> </tr> <tr> <td class="text">nouns that are often described by the adjective <i>yellow</i></td> <td class="text"><a href="https://api.datamuse.com/words?rel_jja=yellow" class="apilink">/words?rel_jja=yellow</a></td> </tr> <tr> <td class="text">words that often follow "drink" in a sentence, that start with the letter <i>w</i></td> <td class="text"><a href="https://api.datamuse.com/words?lc=drink&sp=w*" class="apilink">/words?lc=drink&sp=w*</a></td> </tr> <tr> <td class="text"><a name="triggers"></a>words that are triggered by (strongly associated with) the word "cow"</td> <td class="text"><a href="https://api.datamuse.com/words?rel_trg=cow" class="apilink">/words?rel_trg=cow</a></td> </tr> <tr> <td class="text">suggestions for the user if they have typed in <i>rawand</i> so far</td> <td class="text"><a href="https://api.datamuse.com/sug?s=rawand" class="apilink">/sug?s=rawand</a></td> </tr> </table> <h2>How can I use it?</h2> <p>You can access most of the features of the API at the URL <code>api.datamuse.com/words</code>, with the query parameters described below. An additional endpoint, <code>api.datamuse.com/sug</code>, is useful as a backend for an autocomplete function on search input fields. This is a strictly read-only service and an API token is not required. The service supports both HTTP and HTTPS requests.</p> <br> <h3><b>/words endpoint</b></h3> <p> This endpoint returns a list of words (and multiword expressions) from a given vocabulary that match a given set of constraints. <p>In the table below, the first four parameters (<i>rd</i>, <i>sl</i>, <i>sp</i>, <i>rel_[code]</i>, and <i>v</i>) can be thought of as hard <i>constraints</i> on the result set, while the next three (<i>topics</i>, <i>lc</i>, and <i>rc</i>) can be thought of as context hints. The latter only impact the order in which results are returned. All parameters are optional. <p> <table class="fullwidth"> <thead> <tr> <th colspan=2 class="text">Query parameters</th> </tr> </thead> <tbody> <tr> <td class="text" width=100 valign=top>ml</td> <td class="text"><b>Means like</b> constraint: require that the results have a meaning related to this string value, which can be any word or sequence of words. (This is effectively the <a href="https://onelook.com/reverse-dictionary.shtml">reverse dictionary</a> feature of OneLook.)</td> </tr> <tr> <td class="text" valign=top>sl</td> <td class="text"><b>Sounds like</b> constraint: require that the results are pronounced similarly to this string of characters. (If the string of characters doesn't have a known pronunciation, the system will make its best guess using a text-to-phonemes algorithm.) </tr> <tr> <td class="text" valign=top>sp</td> <td class="text"><b>Spelled like</b> constraint: require that the results are spelled similarly to this string of characters, or that they match this <a target="_blank" href="https://onelook.com/thesaurus/#patterns">wildcard pattern</a>. A pattern can include any combination of alphanumeric characters and the symbols described on that page. The most commonly used symbols are <code>*</code> (a placeholder for any number of characters) and <code>?</code> (a placeholder for exactly one character). Please be sure that your parameters are properly <a target="_blank" href="https://www.w3schools.com/tags/ref_urlencode.asp">URL encoded</a> when you form your request. </td> <tr> <td class="text" valign=top>rel_[code]</td> <td class="text"><b>Related word</b> constraints: require that the results, when paired with the word in this parameter, are in a predefined lexical relation indicated by [code]. Any number of these parameters may be specified any number of times. An assortment of semantic, phonetic, and corpus-statistics-based relations are available. At this time, these relations are available for English-language vocabularies only. <br><br>[code] is a three-letter identifier from the list below. <div> <table class="fullwidth"> <thead> <th width=100>[code]</th> <th>Description</th> <th width=200>Example</th> </thead> <tbody> <tr> <td align=left>jja</td> <td align=left>Popular nouns modified by the given adjective, per Google Books Ngrams</td> <td align=left>gradual &rarr; increase</td> </tr> <tr> <td align=left>jjb</td> <td align=left>Popular adjectives used to modify the given noun, per Google Books Ngrams</td> <td align=left>beach &rarr; sandy</td> </tr> <tr> <td align=left>syn</td> <td align=left>Synonyms (words contained within the same WordNet synset)</td> <td align=left>ocean &rarr; sea</td> </tr> <tr> <td align=left>trg</td> <td align=left>"Triggers" (words that are statistically associated with the query word in the same piece of text.)</td> <td align=left>cow &rarr; milking</td> </tr> <tr> <td align=left>ant</td> <td align=left>Antonyms (per WordNet)</td> <td align=left>late &rarr; early</td> </tr> <tr> <td align=left>spc</td> <td align=left>"Kind of" (direct hypernyms, per WordNet)</td> <td align=left>gondola &rarr; boat</td> </tr> <tr> <td align=left>gen</td> <td align=left>"More general than" (direct hyponyms, per WordNet)</td> <td align=left>boat &rarr; gondola</td> </tr> <tr> <td align=left>com</td> <td align=left>"Comprises" (direct holonyms, per WordNet)</td> <td align=left>car &rarr; accelerator</td> </tr> <tr> <td align=left>par</td> <td align=left>"Part of" (direct meronyms, per WordNet)</td> <td align=left>trunk &rarr; tree</td> </tr> <tr> <td align=left>bga</td> <td align=left>Frequent followers (w&prime; such that P(w&prime;|w) &ge; 0.001, per Google Books Ngrams)</td> <td align=left>wreak &rarr; havoc</td> </tr> <tr> <td align=left>bgb</td> <td align=left>Frequent predecessors (w&prime; such that P(w|w&prime;) &ge; 0.001, per Google Books Ngrams)</td> <td align=left>havoc &rarr; wreak</td> </tr> <tr> <td align=left>hom</td> <td align=left>Homophones (sound-alike words)</td> <td align=left>course &rarr; coarse</td> </tr> <tr> <td align=left>cns</td> <td align=left>Consonant match</td> <td align=left>sample &rarr; simple</td> </tr> </tbody> </table> </div> </td> </tr> <tr> </tr> <tr> <td class="text" valign=top>v</td> <td class="text"><a name="vocabs">Identifier for the vocabulary to use. If none is provided, a 550,000-term vocabulary of English words and multiword expressions is used. (The value <code>es</code> specifies a 500,000-term vocabulary of words from Spanish-language books. The value <code>enwiki</code> specifies an approximately 6 million-term vocabulary of article titles from the English-language Wikipedia, updated monthly.) Please <a href="https://www.onelook.com/?c=about&sel=api#feedback">contact us</a> to set up a custom vocabulary for your application.</td> </tr> <tr> <td class="text" valign=top>topics</td> <td class="text"><b>Topic words</b>: An optional hint to the system about the theme of the document being written. Results will be skewed toward these topics. At most 5 words can be specified. Space or comma delimited. Nouns work best.</td> </tr> <tr> <td class="text" valign=top>lc</td> <td class="text"><b>Left context</b>: An optional hint to the system about the word that appears immediately to the left of the target word in a sentence. (At this time, only a single word may be specified.)</td> </tr> <tr> <td class="text" valign=top>rc</td> <td class="text"><b>Right context</b>: An optional hint to the system about the word that appears immediately to the right of the target word in a sentence. (At this time, only a single word may be specified.)</td> </tr> <tr> <td class="text" valign=top>max</td> <td class="text"><b>Maximum</b> number of results to return, not to exceed 1000. (default: 100) </tr> <tr> <td class="text" valign=top><a name="md"></a>md</td> <td class="text"><b>Metadata</b> flags: A list of single-letter codes (no delimiter) requesting that extra lexical knowledge be included with the results. The available metadata codes are as follows: <br> <div> <table class="fullwidth" cellspacing=5> <thead> <th width=100>Letter</th> <th>Description</th> <th>Implementation notes</th> </thead> <tbody> <tr> <td align=left valign=top>d</td> <td align=left valign=top>Definitions</td> <td align=left>Produced in the <code>defs</code> field of the result object. The definitions are from <a href="https://wiktionary.org">Wiktionary</a> and <a href="https://wordnet.princeton.edu">WordNet</a>. If the word is an inflected form (such as the plural of a noun or a conjugated form of a verb), then an additional <code>defHeadword</code> field will be added indicating the base form from which the definitions are drawn. </td> </tr> <tr> <td align=left valign=top>p</td> <td align=left valign=top>Parts of speech</td> <td align=left>One or more part-of-speech codes will be added to the <code>tags</code> field of the result object. "n" means <i>noun</i>, "v" means <i>verb</i>, "adj" means <i>adjective</i>, "adv" means <i>adverb</i>, and "u" means that the part of speech is none of these or cannot be determined. Multiple entries will be added when the word's part of speech is ambiguous, with the most popular part of speech listed first. This field is derived from an analysis of <a href="https://books.google.com/ngrams">Google Books Ngrams</a> data. </td> </tr> <tr> <td align=left valign=top>s</td> <td align=left valign=top>Syllable count</td> <td align=left>Produced in the <code>numSyllables</code> field of the result object. In certain cases the number of syllables may be ambiguous, in which case the system's best guess is chosen based on the entire query. </td> </tr> <tr> <td align=left valign=top>r</td> <td align=left valign=top>Pronunciation</td> <td align=left>Produced in the <code>tags</code> field of the result object, prefixed by "pron:". This is the system's best guess for the pronunciation of the word or phrase. The format of the pronunication is a space-delimited list of <a href="https://en.wikipedia.org/wiki/Arpabet">Arpabet</a> phoneme codes. If you add "<code>&ipa=1</code>" to your API query, the pronunciation string will instead use the <a href="https://en.wikipedia.org/wiki/International_Phonetic_Alphabet">International Phonetic Alphabet</a>. Note that for terms that are very rare or outside of the vocabulary, the pronunciation will be guessed based on the spelling. In certain cases the pronunciation may be ambiguous, in which case the system's best guess is chosen based on the entire query. </td> </tr> <tr> <td align=left valign=top>f</td> <td align=left valign=top>Word frequency</td> <td align=left>Produced in the <code>tags</code> field of the result object, prefixed by "f:". The value is the number of times the word (or multi-word phrase) occurs per million words of English text according to <a href="https://books.google.com/ngrams">Google Books Ngrams</a>. </td> </tr> </tbody> </table> The API makes an effort to ensure that metadata values are consistent with the sense or senses of the word that best match the API query. For example, the word "refuse" is tagged as a verb ("v") in the results of a search for words related to "deny" but as a noun ("n") in the results of a search for words related to "trash". And "resume" is shown to have 2 syllables in a search of synonyms for "start" but 3 syllables in a search of synonyms for "dossier". There are occasional errors in this guesswork, particularly with pronunciations. Metadata is available for both English (default) and Spanish (<code>v=es</code>) vocabularies. </tr> <tr> <td class="text" valign=top>qe</td> <td class="text"><b>Query echo</b>: The presence of this parameter asks the system to prepend a result to the output that describes the query string from some other parameter, specified as the argument value. This is useful for looking up metadata about specific words. For example, <a href="https://api.datamuse.com/words?sp=flower&qe=sp&md=fr&max=1">/words?sp=flower&qe=sp&md=fr</a> can be used to get the pronunciation and word frequency for <i>flower</i>. </tr> </tbody> </table> <br> <h3><b>/sug endpoint</b></h3> <p> This resource is useful as a backend for &ldquo;autocomplete&rdquo; widgets on websites and apps when the vocabulary of possible search terms is very large. It provides word suggestions given a partially-entered query using a combination of the operations described in the &ldquo;/words&rdquo; resource above. The suggestions perform live spelling correction and intelligently fall back to choices that are phonetically or semantically similar when an exact prefix match can't be found. Here is a Wikipedia search box that demonstrates this endpoint in action: &nbsp;&nbsp; <div class="wikdemo"><form id="wikform"><input name="word" id="wiksearch" style="width: 300px;"> <div id="menu-container" style="position:absolute; width: 300px;"></div></form></div> <p>The endpoint produces JSON output similar to the /words resource and is suitable for widgets such as <a href="https://api.jqueryui.com/autocomplete/">JQuery Autocomplete</a>, used in the above demo.</p> <p> <table class="fullwidth"> <thead> <tr> <th colspan=2 class="text">Query parameters</th> </tr> </thead> <tbody> <tr> <td class="text" width=100 valign=top>s</td> <td class="text"> Prefix hint string; typically, the characters that the user has entered so far into a search box. (Note: The results are sorted by a measure of popularity. The results may include spell-corrections of the prefix hint or semantically similar terms when exact matches cannot be found; that is to say, the prefix hint will not necessarily form a prefix of each result.)</td> </tr> <tr> <td class="text" valign=top>max</td> <td class="text">Maximum number of results to return, not to exceed 1000. (default: 10)</td> </tr> <tr> <td class="text" valign=top>v</td> <td class="text">Identifier for the vocabulary to use. Equivalent to the <a href="#vocabs">v parameter</a> in <code>/words</code>. </tr> </table> <script> $(function() { last_req = ""; $( "#wiksearch" ).autocomplete({ minLength: 3, delay: 50, appendTo: '#menu-container', select: function(event, ui) { $( "#wiksearch" ).val(ui.item.value); window.location.href = "https://en.wikipedia.org/wiki/" + encodeURIComponent(ui.item.value); }, source: function( request, response ) { $.ajax({ dataType: "json", type : 'Get', url: 'https://api.datamuse.com/sug?k=demo&v=enwiki&s=' + encodeURIComponent(request.term), success: function(data) { response( $.map( data, function(item) { return item["word"]; })) }, }); last_req = request.term; } }); }); </script> <h2>Interpreting the results</h2> <p> For both <code>/words</code> and <code>/sug</code>, the result of an API call is always a JSON list of word objects, like so: <blockquote> $ curl "https://api.datamuse.com/words?ml=ringing+in+the+ears&max=4" | python -mjson.tool <pre> [ { "word":"tinnitus", "score":57312 }, { "word":"ring", "score":50952 }, { "word":"cinchonism", "score":50552 }, { "word":"acouasm", "score":48952 } ] </pre> </blockquote> <p>Each list item is an object that contains the matching vocabulary entry ("word") and some metadata, currently just an integer score. An empty list ([]) will be returned if no words or phrases are found that match your constraints. Note that popular multiword expressions like "hot dog" are included in the default vocabulary, and these will appear as space-delimited strings. <p>For queries that have a semantic constraint, results are ordered by an estimate of the strength of the relationship, most to least. Otherwise, queries are ranked by an estimate of the popularity of the word in written text, most to least. At this time, the "score" field has no interpretable meaning, other than as a way to rank the results. <a name="limits"/> <h2>Usage limits</h2> <p>You can use this service without restriction and without an API key for up to 100,000 requests per day. Please be aware that beyond that limit, requests may be rate-limited without notice. If you'd like to use this in a customer-facing application, or if you need a custom vocabulary, or if you plan to make more than 100,000 requests per day, please describe your application (and a traffic estimate) in a <a href="https://www.onelook.com/?c=about&sel=api#feedback">message to us</a>. (Note: While we are committed keeping the API freely available for the foreseeable future, we cannot commit to any improvements and may not be able to respond to all support requests.) <p>If you use the API within a publicly available app, kindly acknowledge the Datamuse API within your app's documentation. Here are some <a href="users.html">examples</a> of projects that we know about which use the Datamuse API. <a name="privacy"></a> <h2>Privacy</h2> <p> The Datamuse API servers keep a temporary log file of the queries made to the service. This log file is discarded at the end of the day after the request was made. We save no long-term usage data other than a count of the number of requests broken out by the broad category of the request. <h2>Data sources</h2> <p> The Datamuse API leans on many freely available data sources to do its work: <ul> <li><b>Phonetic data</b>: The <a href="http://www.speech.cs.cmu.edu/cgi-bin/cmudict">CMU pronouncing dictionary</a> is used as a source of phonetic transcriptions for the "sounds-like" constraint and for the various English-language phonetic relations. <li><b>Corpus-based data</b>: The <a href="https://storage.googleapis.com/books/ngrams/books/datasetsv2.html">Google Books Ngrams</a> data set is used to build the language model that scores candidate words by context, and also for some of the lexical relations. <a href="https://code.google.com/archive/p/word2vec/">word2vec</a> is used for reranking result sets by topic (the "topics" parameter). word2vec as well as the excellent <a href="https://www.cis.upenn.edu/~ccb/ppdb/">Paraphrase Database</a> are used to backfill the results for single-word "means-like" constraints (the "ml" parameter); in particular, the "XXL" lexical paraphrases are used, without modification. <li><b>Semantic knowledge</b>: <a href="https://wordnet.princeton.edu">WordNet 3.0</a> is used for several of the static semantic lexical relations. For the "means-like" ("ml") constraint, dozens of online dictionaries crawled by <a href="https://onelook.com/">OneLook</a> are used in addition to WordNet. Definitions come from both WordNet and <a href="https://www.wiktionary.org/">Wiktionary</a>. (Kudos to the excellent <a href="https://github.com/tatuylonen/wiktextract">wiktextract</a> for making it easy to to process Wiktionary data.) </ul> <h2>Future work</h2> <p> This is <b>v1.1</b> of the API, which was created by Doug Beeferman and finalized on <b>2016-12-05</b>. Ongoing work for /v2/ is focused on the following areas: <ul> <li>&rarr; Custom vocabulary creation through the API <li>&rarr; Predefined vocabularies in more languages than English (<a title="Now available in v1.1">&#9989</a>) <li>&rarr; Improvements to "means-like" accuracy and breadth (<a title="Now available in v1.1">&#9989</a>) <li>&rarr; More metadata in the response document, including parts of speech and usage frequencies (<a title="Now available in v1.1">&#9989</a>) <li>&rarr; A stronger language model for integrating the near and long-distance context clues ("lc", "rc", "topics") <li>&rarr; Open-sourcing the API engine and its data ETL pipeline <li>&rarr; Reduced tail latency for hard queries (<a title="Now available in v1.1">&#9989</a>) <li>&rarr; Deployment in multiple geographic regions for reduced latency to clients <li>&rarr; More sample apps and client libraries (<a title="Now available in v1.1">&#9989</a>) </ul> <p>Although we're making accuracy improvements regularly and may add new metadata fields to the otuput, substantially new versions of the API will have a differentiated URL, so your queries to v1 will be uninterrupted as new versions are released. Please <a href="https://www.onelook.com/?c=about&sel=api#feedback">drop us a line</a> if you have a use-case for the API which is not well-served today. <a name="cl"> <h2>Client libraries and other resources</h2> <p> Several people have written client libraries for the Datamuse API: There's now <a href="https://github.com/sjblair/Datamuse4J">Datamuse4J</a> for Java; <a href="https://github.com/margaret/python-datamuse">python-datamuse</a> for Python; a module for <a href="https://www.npmjs.com/package/datamuse">node.js</a>; and a module for <a href="https://www.drupal.org/project/datamuse_api">Drupal</a>. <p> The Datamuse API is focused on <i>finding</i> words and phrases, whether for helping your users search, or helping your users write more effectively. It lacks features for <i>describing</i> words and phrases (rich definitions, example sentences, <i>etc</i>.) If you need such amenities for your app, the <a href="https://developer.wordnik.com/">Wordnik API</a> is a good choice. </tbody> </table> <hr> <br><br> <p><i>Below is an interactive visualization of adjective/noun relationships in English. It was made using the "rel_jjb" and "rel_jja" constraints in the API, and the <a href="https://d3js.org/">D3</a> visualization library. (Click on a blue pill to see the popular nouns for that adjective, and then click on another blue pill to see the popular adjectives for that noun, and so forth. Click on the white pill to edit it to a different starting noun.) <div class="wordgraph"> <script src="https://www.datamuse.com/js/wordgraph.js"></script> </div> </body>

Pages: 1 2 3 4 5 6 7 8 9 10