{"componentChunkName":"component---node-modules-carrotsearch-gatsby-theme-apidocs-templates-documentation-page-js","path":"/java-dictionaries/","result":{"data":{"html":{"frontmatter":{"id":"java-dictionaries","title":"Dictionaries"},"html":"<article>\n  <h1>Dictionaries</h1>\n\n  <p id=\"10c50f15\">\n    Lingo3G uses dictionaries to improve the quality of clustering for a\n    specific language. This article shows how to customize dictionaries in the\n    Java API.\n  </p>\n\n  <p id=\"1766fb31\">\n    Lingo3G delegates the management of dictionaries and other language\n    resources to the <code>LanguageComponent</code> instance. You can use its\n    methods to list the available languages, customize the location of\n    dictionaries or even replace the Lingo3G's built-in language resources, such\n    as stemmers. This chapter shows the basic use cases related to dictionary\n    customizations.\n  </p>\n\n  <section id=\"customizing-dictionaries\">\n    <h2>\n        <a class=\"anchor\" href=\"#customizing-dictionaries\" aria-hidden=\"true\"><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"/></svg></a>Customizing dictionaries\n      </h2>\n\n    <p id=\"customizing-dictionaries:f4678ed0\">\n      The simplest way to customize Lingo3G\n      <a href=\"/dictionaries/\">dictionaries</a> is to copy the\n      <a href=\"/dictionaries/#location-of-dictionary-files:java-api\">default dictionaries</a>\n      to your application-specific location, make the necessary changes and\n      provide a custom <code>ResourceLookup</code> implementation when loading\n      language resources. The following example loads English resources from a\n      class-relative classpath location.\n    </p>\n\n    <figure id=\"customizing-dictionaries:example\">\n      <div class=\"gatsby-highlight\">\n    <pre class=\"language-java\"><code data-language=\"java\"><span class=\"token class-name\">ResourceLookup</span> resourceLookup <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">ClassRelativeResourceLookup</span><span class=\"token punctuation\">(</span><span class=\"token function\">getClass</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token class-name\">LanguageComponents</span> english <span class=\"token operator\">=</span>\n    <span class=\"token class-name\">LanguageComponents</span><span class=\"token punctuation\">.</span><span class=\"token function\">loader</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n        <span class=\"token comment\">// We restrict the loaded resources to just English.</span>\n        <span class=\"token punctuation\">.</span><span class=\"token function\">limitToLanguages</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"English\"</span><span class=\"token punctuation\">)</span>\n        <span class=\"token comment\">// Note how we chain the overridden resource lookup location with the</span>\n        <span class=\"token comment\">// provider's default resources. Otherwise we'd have to copy over</span>\n        <span class=\"token comment\">// all resources from their default locations.</span>\n        <span class=\"token punctuation\">.</span><span class=\"token function\">withResourceLookup</span><span class=\"token punctuation\">(</span>\n            prov <span class=\"token operator\">-></span>\n                <span class=\"token keyword\">new</span> <span class=\"token class-name\">ChainedResourceLookup</span><span class=\"token punctuation\">(</span>\n                    <span class=\"token class-name\">List</span><span class=\"token punctuation\">.</span><span class=\"token function\">of</span><span class=\"token punctuation\">(</span>resourceLookup<span class=\"token punctuation\">,</span> prov<span class=\"token punctuation\">.</span><span class=\"token function\">defaultResourceLookup</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n        <span class=\"token punctuation\">.</span><span class=\"token function\">load</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n        <span class=\"token punctuation\">.</span><span class=\"token function\">language</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"English\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre>\n  </div>\n      <figcaption>\n        Loading English language components from a class-relative classpath\n        location.\n      </figcaption>\n    </figure>\n  </section>\n\n  <section id=\"ephemeral-dictionaries\">\n    <h2>\n        <a class=\"anchor\" href=\"#ephemeral-dictionaries\" aria-hidden=\"true\"><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"/></svg></a>Using ephemeral dictionaries\n      </h2>\n\n    <p id=\"ephemeral-dictionaries:c3d18cab\">\n      You can provide extra <em>ephemeral</em> dictionary entries for a specific\n      clustering request. Lingo3G applies these extra entries as an addition to\n      the default dictionaries. For example, if the end-user wants to remove\n      specific labels from the clustering result they are currently viewing,\n      your software can add such labels to the ephemeral label dictionary and\n      rerun the clustering.\n    </p>\n\n    <p id=\"ephemeral-dictionaries:e5ee1a48\">\n      The <code>dictionaries</code> field of\n      <code>Lingo3GClusteringAlgorithm</code>\n      groups all ephemeral dictionaries. You can add entries to the label,\n      synonym and word dictionaries.\n    </p>\n\n    <section id=\"ephemeral-dictionaries:label-dictionaries\">\n      <h3>\n        <a class=\"anchor\" href=\"#ephemeral-dictionaries:label-dictionaries\" aria-hidden=\"true\"><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"/></svg></a>Label dictionaries\n      </h3>\n\n      <p id=\"ephemeral-dictionaries:label-dictionaries:ddf858eb\">\n        To add an ephemeral label dictionary, create a new instance of the\n        <code>LabelMatcher</code> class and add entries to its\n        <code>glob</code>, <code>regex</code> or <code>exact</code> fields. Then\n        set the matcher instance on your\n        <code>Lingo3GClusteringAlgorithm</code> instance.\n      </p>\n\n      <p id=\"ephemeral-dictionaries:label-dictionaries:fca2eb3c\">\n        The following example adds two entries to the <em>glob</em> matcher of\n        the label dictionary.\n      </p>\n\n      <figure id=\"ephemeral-dictionaries:label-dictionaries:example\">\n        <div class=\"gatsby-highlight\">\n    <pre class=\"language-java\"><code data-language=\"java\"><span class=\"token class-name\">Lingo3GClusteringAlgorithm</span> algorithm <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">Lingo3GClusteringAlgorithm</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token comment\">// Create an ephemeral label filter that excludes two glob patterns.</span>\n<span class=\"token class-name\">LabelMatcher</span> dictionary <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">LabelMatcher</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\ndictionary<span class=\"token punctuation\">.</span>glob<span class=\"token punctuation\">.</span><span class=\"token function\">set</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"* mining *\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"* data-mining *\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token comment\">// Configure Lingo3G to use the ephemeral filters.</span>\nalgorithm<span class=\"token punctuation\">.</span>dictionaries<span class=\"token punctuation\">.</span>labels<span class=\"token punctuation\">.</span><span class=\"token function\">set</span><span class=\"token punctuation\">(</span><span class=\"token class-name\">List</span><span class=\"token punctuation\">.</span><span class=\"token function\">of</span><span class=\"token punctuation\">(</span>dictionary<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre>\n  </div>\n\n        <figcaption>\n          <p>Adding entries to the ephemeral label dictionary in Java API.</p>\n        </figcaption>\n      </figure>\n\n      <p id=\"ephemeral-dictionaries:label-dictionaries:9203c208\">\n        By default, <code>LabelMatcher</code> instances assign a zero weight to\n        the labels they match, removing them from the result. You can set the\n        <code>weight</code> field of the matcher to a value larger than 1 to\n        promote the labels.\n      </p>\n    </section>\n\n    <section id=\"ephemeral-dictionaries:synonym-dictionaries\">\n      <h3>\n        <a class=\"anchor\" href=\"#ephemeral-dictionaries:synonym-dictionaries\" aria-hidden=\"true\"><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"/></svg></a>Synonym dictionaries\n      </h3>\n\n      <p id=\"ephemeral-dictionaries:synonym-dictionaries:26deb9ed\">To add an ephemeral synonym dictionary, do the following:</p>\n\n      <ol>\n        <li>\n          <p id=\"ephemeral-dictionaries:synonym-dictionaries:c5cf6100\">\n            For each set of synonymous labels, create a <code>SynonymSet</code>\n            instance, providing the list of labels Lingo3G should treat as\n            synonymous. Note that Lingo3G allows only glob-style label matchers\n            in synonym definitions.\n          </p>\n\n          <p id=\"ephemeral-dictionaries:synonym-dictionaries:378705c3\">\n            Additionally, you can provide one label to represent all the\n            synonymous labels in cluster labels.\n          </p>\n        </li>\n\n        <li>\n          <p id=\"ephemeral-dictionaries:synonym-dictionaries:03535d25\">\n            Set a list of synonym sets on the\n            <code>dictionaries.synonyms</code> field of your<code>Lingo3GClusteringAlgorithm</code>\n            instance.\n          </p>\n        </li>\n      </ol>\n\n      <p id=\"ephemeral-dictionaries:synonym-dictionaries:607fbdc9\">\n        The following example adds one entry making the <em>software</em> and\n        <em>tools</em> label synonymous and represented by\n        <em>Tools & Software</em> for cluster labeling purposes.\n      </p>\n\n      <figure id=\"ephemeral-dictionaries:synonym-dictionaries:example\">\n        <div class=\"gatsby-highlight\">\n    <pre class=\"language-java\"><code data-language=\"java\"><span class=\"token class-name\">Lingo3GClusteringAlgorithm</span> algorithm <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">Lingo3GClusteringAlgorithm</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token comment\">// Create an ephemeral synonym dictionary.</span>\n<span class=\"token class-name\">List</span><span class=\"token generics\"><span class=\"token punctuation\">&lt;</span><span class=\"token class-name\">String</span><span class=\"token punctuation\">></span></span> synonyms <span class=\"token operator\">=</span> <span class=\"token class-name\">List</span><span class=\"token punctuation\">.</span><span class=\"token function\">of</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"software\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"tools\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token class-name\">SynonymSet</span> synonymSet <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">SynonymSet</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"Tools & Software\"</span><span class=\"token punctuation\">,</span> synonyms<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token comment\">// Configure Lingo3G to use the extra synonyms.</span>\nalgorithm<span class=\"token punctuation\">.</span>dictionaries<span class=\"token punctuation\">.</span>synonyms<span class=\"token punctuation\">.</span><span class=\"token function\">set</span><span class=\"token punctuation\">(</span><span class=\"token class-name\">List</span><span class=\"token punctuation\">.</span><span class=\"token function\">of</span><span class=\"token punctuation\">(</span>synonymSet<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre>\n  </div>\n\n        <figcaption>\n          <p>Adding entries to the ephemeral synonym dictionary in Java API.</p>\n        </figcaption>\n      </figure>\n    </section>\n\n    <section id=\"ephemeral-dictionaries:tag-dictionaries\">\n      <h3>\n        <a class=\"anchor\" href=\"#ephemeral-dictionaries:tag-dictionaries\" aria-hidden=\"true\"><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"/></svg></a>Tag dictionaries\n      </h3>\n\n      <p id=\"ephemeral-dictionaries:tag-dictionaries:d42fd42e\">\n        To add an ephemeral tag dictionary, create one or more instances of the\n        <code>Tag</code> class defining the list of words and the part-of-speech\n        tag for those words. Then set the list of tags on instance on your\n        <code>Lingo3GClusteringAlgorithm</code> instance.\n      </p>\n\n      <p id=\"ephemeral-dictionaries:tag-dictionaries:a43c4a85\">\n        The following example adds the word <em>whereas</em> with the\n        <code>fnc</code> tag.\n      </p>\n\n      <figure id=\"ephemeral-dictionaries:tag-dictionaries:example\">\n        <div class=\"gatsby-highlight\">\n    <pre class=\"language-java\"><code data-language=\"java\"><span class=\"token class-name\">Lingo3GClusteringAlgorithm</span> algorithm <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">Lingo3GClusteringAlgorithm</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token comment\">// Create an ephemeral tag dictionary.</span>\n<span class=\"token class-name\">Tag</span> fncTag <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">Tag</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"fnc\"</span><span class=\"token punctuation\">,</span> <span class=\"token class-name\">List</span><span class=\"token punctuation\">.</span><span class=\"token function\">of</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"whereas\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token comment\">// Configure Lingo3G to use the extra tags.</span>\nalgorithm<span class=\"token punctuation\">.</span>dictionaries<span class=\"token punctuation\">.</span>tags<span class=\"token punctuation\">.</span><span class=\"token function\">set</span><span class=\"token punctuation\">(</span><span class=\"token class-name\">List</span><span class=\"token punctuation\">.</span><span class=\"token function\">of</span><span class=\"token punctuation\">(</span>fncTag<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre>\n  </div>\n\n        <figcaption>\n          <p>\n            Adding entries to the ephemeral word tag dictionary in Java API.\n          </p>\n        </figcaption>\n      </figure>\n    </section>\n  </section>\n\n  <section id=\"listing-supported-languages\">\n    <h2>\n        <a class=\"anchor\" href=\"#listing-supported-languages\" aria-hidden=\"true\"><svg aria-hidden=\"true\" height=\"16\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"/></svg></a>Listing supported languages\n      </h2>\n\n    <p id=\"listing-supported-languages:25d94da0\">The following code lists all languages supported by Lingo3G:</p>\n\n    <figure id=\"listing-supported-languages:example\">\n      <div class=\"gatsby-highlight\">\n    <pre class=\"language-java\"><code data-language=\"java\"><span class=\"token class-name\">Lingo3GClusteringAlgorithm</span> algorithm <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">Lingo3GClusteringAlgorithm</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token class-name\">Set</span><span class=\"token generics\"><span class=\"token punctuation\">&lt;</span><span class=\"token class-name\">String</span><span class=\"token punctuation\">></span></span> supported <span class=\"token operator\">=</span>\n    <span class=\"token class-name\">LanguageComponents</span><span class=\"token punctuation\">.</span><span class=\"token function\">loader</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n        <span class=\"token comment\">// We can load language resources only for the given algorithm(s)</span>\n        <span class=\"token comment\">// which also limits the returned set of supported languages.</span>\n        <span class=\"token punctuation\">.</span><span class=\"token function\">limitToAlgorithms</span><span class=\"token punctuation\">(</span>algorithm<span class=\"token punctuation\">)</span>\n        <span class=\"token punctuation\">.</span><span class=\"token function\">load</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span>\n        <span class=\"token punctuation\">.</span><span class=\"token function\">languages</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token class-name\">System</span><span class=\"token punctuation\">.</span>out<span class=\"token punctuation\">.</span><span class=\"token function\">println</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"Lingo3G supports:\\n  \"</span> <span class=\"token operator\">+</span> <span class=\"token class-name\">String</span><span class=\"token punctuation\">.</span><span class=\"token function\">join</span><span class=\"token punctuation\">(</span><span class=\"token string\">\", \"</span><span class=\"token punctuation\">,</span> supported<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre>\n  </div>\n\n      <figcaption>\n        <p>Listing all supported languages in the Java API.</p>\n      </figcaption>\n    </figure>\n\n    <p id=\"listing-supported-languages:f7724fc2\">It prints:</p>\n\n    <div class=\"gatsby-highlight\">\n    <pre class=\"language-none\"><code data-language=\"none\">Lingo3G supports:\n  Arabic, Armenian, Bulgarian, Chinese-Simplified, Chinese-Traditional, Croatian, Czech, Danish, Dutch, English, Estonian, Finnish, French, Galician, German, Greek, Hindi, Hungarian, Indonesian, Irish, Italian, Japanese, Korean, Latvian, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Russian, Spanish, Swedish, Thai, Turkish</code></pre>\n  </div>\n\n    <p id=\"listing-supported-languages:4fba798b\">\n      Note that the code uses the <code>limitToAlgorithms</code> method to limit\n      the list to the languages Lingo3G supports. The unfiltered list contains\n      all languages defined in the\n      <a href=\"/basic-concepts/#carrot2\">Carrot<sup>2</sup></a>\n      framework; Lingo3G does not support some of those languages.\n    </p>\n  </section>\n</article>","tableOfContents":[{"heading":"Customizing dictionaries","anchor":"customizing-dictionaries"},{"heading":"Using ephemeral dictionaries","anchor":"ephemeral-dictionaries","sections":[{"heading":"Label dictionaries","anchor":"ephemeral-dictionaries:label-dictionaries"},{"heading":"Synonym dictionaries","anchor":"ephemeral-dictionaries:synonym-dictionaries"},{"heading":"Tag dictionaries","anchor":"ephemeral-dictionaries:tag-dictionaries"}]},{"heading":"Listing supported languages","anchor":"listing-supported-languages"}]}},"pageContext":{"slug":"/java-dictionaries/"}},"staticQueryHashes":["1164750013"]}