{"componentChunkName":"component---node-modules-carrotsearch-gatsby-theme-apidocs-templates-documentation-page-js","path":"/synonym-dictionary/","result":{"data":{"html":{"frontmatter":{"id":"synonym-dictionary","title":"Synonym dictionary"},"html":"<article>\n  <h1>Synonym dictionary</h1>\n\n  <p id=\"d5a4c226\">\n    The synonym dictionary lets you define words and phrases that represent the\n    same concept, such as <em>photo</em> and <em>picture</em>, so that Lingo3G\n    puts documents discussing those concepts in the same cluster.\n  </p>\n\n  <p id=\"568b2d0b\">\n    Lingo3G\n    <a href=\"/dictionaries/#location-of-dictionary-files\">reads</a> the\n    synonym dictionary from a JSON file named\n    <code><em>language</em>.synonyms.json</code>, where <em>language</em> is the\n    language name. The synonym dictionary must be an array of objects with the\n    following structure:\n  </p>\n\n  <figure id=\"synonym-dictionary:structure\">\n    <div class=\"gatsby-highlight\">\n    <pre class=\"language-json\"><code data-language=\"json\"><span class=\"token punctuation\">[</span>\n  <span class=\"token comment\">// zero or more includes.</span>\n  <span class=\"token punctuation\">{</span>\n    <span class=\"token property\">\"include\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"relative-path-to-include.json\"</span><span class=\"token punctuation\">,</span>\n    <span class=\"token property\">\"required\"</span><span class=\"token operator\">:</span> <span class=\"token boolean\">true</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n\n  <span class=\"token comment\">// zero or more synonym sets consisting of label matching rules</span>\n  <span class=\"token punctuation\">{</span>\n    <span class=\"token property\">\"comment\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"Example synonym set for various words describing a 'picture'.\"</span><span class=\"token punctuation\">,</span>\n    <span class=\"token property\">\"glob\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span>\n      <span class=\"token string\">\"picture\"</span><span class=\"token punctuation\">,</span>\n      <span class=\"token string\">\"pictures\"</span><span class=\"token punctuation\">,</span>\n      <span class=\"token string\">\"pic\"</span><span class=\"token punctuation\">,</span>\n      <span class=\"token string\">\"pics\"</span>\n    <span class=\"token punctuation\">]</span>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">]</span></code></pre>\n  </div>\n\n    <figcaption>\n      <p>The structure of a Lingo3G synonym dictionary.</p>\n    </figcaption>\n  </figure>\n\n  <p id=\"24c54377\">\n    The dictionary definition is an array of the following types of objects.\n  </p>\n\n  <dl class=\"narrow\">\n    <dt>include</dt>\n    <dd>\n      <p id=\"be38632e\">\n        Includes all entries from another synonym dictionary into this\n        dictionary. You can use includes to split a large synonym dictionary\n        into smaller ones or extract a common part of a set of synonym\n        dictionaries.\n      </p>\n\n      <div class=\"gatsby-highlight\">\n    <pre class=\"language-json\"><code data-language=\"json\"><span class=\"token punctuation\">{</span> <span class=\"token property\">\"include\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"name.json\"</span><span class=\"token punctuation\">,</span> <span class=\"token property\">\"required\"</span><span class=\"token operator\">:</span> <span class=\"token boolean\">true</span> <span class=\"token punctuation\">}</span></code></pre>\n  </div>\n\n      <dl class=\"narrow\">\n        <dt id=\"synonym-dictionary:include\" class=\"api\">include</dt>\n        <dd>\n          <p id=\"54627f62\">\n            (required) Path to the synonym dictionary to include, relative to\n            the location of this dictionary.\n          </p>\n        </dd>\n\n        <dt id=\"synonym-dictionary:required\" class=\"api\">required</dt>\n        <dd>\n          <p id=\"b568e934\">\n            If <code>true</code> and the file to include does not exist, Lingo3G\n            will trigger an error.\n          </p>\n\n          <p id=\"51d71a11\">\n            If <code>false</code>, Lingo3G will ignore a non-existing include\n            file.\n          </p>\n        </dd>\n      </dl>\n    </dd>\n\n    <dt>synonym set</dt>\n    <dd>\n      <p id=\"cbec8c83\">\n        Represents a single synonym set. An array of\n        <a href=\"/dictionaries/#label-matchers:glob\">glob rules</a> defines\n        the set of synonymous words and phrases.\n      </p>\n\n      <div class=\"gatsby-highlight\">\n    <pre class=\"language-json\"><code data-language=\"json\"><span class=\"token punctuation\">{</span>\n  <span class=\"token property\">\"comment\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"The 'movie' concept\"</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"label\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"Movie\"</span><span class=\"token punctuation\">,</span>\n  <span class=\"token property\">\"glob\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span>\n    <span class=\"token string\">\"film\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"motion picture\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"movie\"</span>\n  <span class=\"token punctuation\">]</span>\n<span class=\"token punctuation\">}</span></code></pre>\n  </div>\n\n      <dl class=\"narrow\">\n        <dt id=\"synonym-dictionary:glob\" class=\"api\">glob</dt>\n        <dd>\n          <p id=\"c67721ea\">\n            (required) An array of\n            <a href=\"/dictionaries/#label-matchers:glob\">glob rules</a>\n            defining the synonymous labels.\n          </p>\n        </dd>\n\n        <dt id=\"synonym-dictionary:label\" class=\"api\">label</dt>\n        <dd>\n          <p id=\"ca50562a\">\n            (optional) The label Lingo3G should use to describe a cluster formed\n            from any word or phrase in this synonym set.\n          </p>\n\n          <p id=\"a31ba45a\">\n            If you don't provide the preferred label, Lingo3G will describe the\n            cluster with an arbitrary label from the synonym set.\n          </p>\n        </dd>\n\n        <dt id=\"synonym-dictionary:comment\" class=\"api\">comment</dt>\n        <dd>\n          <p id=\"b7ed5616\">An optional comment for this synonym set.</p>\n        </dd>\n      </dl>\n    </dd>\n  </dl>\n\n  <div class=\"warning\" id=\"6f173264\">\n    <strong>Heads up, synonym dictionary limitations.</strong>\n\n    <ul>\n      <li>\n        <p id=\"b376a36f\">\n          <strong>\n            You can only use\n            <a href=\"/dictionaries/#label-matchers:glob\">glob matching rules</a>\n            in the synonym dictionary.\n          </strong>\n          Lingo3G does not support regexp and exact matchers in synonym\n          definitions.\n        </p>\n      </li>\n\n      <li>\n        <p id=\"f5d2ba01\">\n          <strong>Lingo3G does not apply synonyms when matching\n            <a href=\"/label-dictionary/\">label dictionary</a> entries</strong>. To match synonyms in the label dictionary, add a matcher entry for\n          each synonym explicitly.\n        </p>\n      </li>\n\n      <li>\n        <p id=\"5c5c71e8\">\n          <strong>Synonym sets are not transitive with respect to matching rule\n            definitions.</strong>\n          For example, Lingo3G does not collapse the following two declarations,\n          which share the first rule, into one synonym set:\n        </p>\n\n        <div class=\"gatsby-highlight\">\n    <pre class=\"language-json\"><code data-language=\"json\"><span class=\"token punctuation\">[</span>\n  <span class=\"token punctuation\">{</span>\n    <span class=\"token property\">\"glob\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span> <span class=\"token string\">\"dm\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"data mining\"</span> <span class=\"token punctuation\">]</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n  <span class=\"token punctuation\">{</span>\n    <span class=\"token property\">\"glob\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span> <span class=\"token string\">\"dm\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"drum machine\"</span> <span class=\"token punctuation\">]</span>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">]</span>\n</code></pre>\n  </div>\n\n        <p id=\"d3e66cf1\">\n          Make sure each synonym set covers a distinct subset of potential\n          cluster labels. When a label matches more than one synonym set,\n          Lingo3G assigns the label to an arbitrary synonym set.\n        </p>\n      </li>\n    </ul>\n  </div>\n\n  <p id=\"2cf437d9\">A real-world synonym dictionary can look like this:</p>\n\n  <figure id=\"synonym-dictionary:example\">\n    <div class=\"gatsby-highlight\">\n    <pre class=\"language-json\"><code data-language=\"json\"><span class=\"token punctuation\">[</span>\n  <span class=\"token punctuation\">{</span>\n    <span class=\"token property\">\"label\"</span><span class=\"token operator\">:</span> <span class=\"token string\">\"New York\"</span><span class=\"token punctuation\">,</span>\n    <span class=\"token property\">\"glob\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span>\n      <span class=\"token string\">\"nyc\"</span><span class=\"token punctuation\">,</span>\n      <span class=\"token string\">\"new york city\"</span><span class=\"token punctuation\">,</span>\n      <span class=\"token string\">\"big apple\"</span>\n    <span class=\"token punctuation\">]</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n  <span class=\"token punctuation\">{</span>\n    <span class=\"token property\">\"glob\"</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span>\n      <span class=\"token string\">\"movie\"</span><span class=\"token punctuation\">,</span>\n      <span class=\"token string\">\"film\"</span><span class=\"token punctuation\">,</span>\n      <span class=\"token string\">\"motion picture\"</span>\n    <span class=\"token punctuation\">]</span>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">]</span></code></pre>\n  </div>\n\n    <figcaption>\n      <p>Example synonym dictionary.</p>\n    </figcaption>\n  </figure>\n\n  <p id=\"cd46e4bf\">\n    With the above dictionary, Lingo3G puts documents containing\n    <em>NYC</em>, <em>New York City</em> or <em>Big apple</em> in a single\n    cluster labelled <em>New York</em>.\n  </p>\n</article>","tableOfContents":[]}},"pageContext":{"slug":"/synonym-dictionary/"}},"staticQueryHashes":["1164750013"]}