title: Natural categorization of common nouns
body: <p>In the software I'm developing, I have to <strong>divide arbitrary nouns</strong> of common things (belonging to a single natural language) <strong>into some predefined natural categories</strong>, obtaining a tree structure.</p>
  <p>Example: &quot;<em>wine</em>&quot; must fall under &quot;<em>drink</em>&quot;, &quot;<em>drink</em>&quot; under &quot;<em>food</em>&quot;.</p>
  <p><strong>Are there any archives</strong> that can be used for this type of categorization, or component/services that perform it automatically (even for a fee)? If for Javascript or Java or C++, all the better, but the important for me is the archive, not the software.
  Or could you tell me if there is a precise label with which to call it, so that I can search for material in google?</p>
  <p>Any suggestions, or references to useful focused reading, will be greatly appreciated.</p>
  <h2>Details:</h2>
  <p>In the non-digital world, the categorization I need is operated in dictionaries called -at least in Italy- &quot;<strong>Analog Dictionaries</strong>&quot; (but in the English language, it doesn't seem to be a fixed term to define these dictionaries), but I need a <em>digital</em> archive/tool, to use in my program.</p>
  <p>My research has made me find tools related to Machine Learning or Natural Language Processing (that I don't know), but none seem to meet my need (despite they being able to perform much more complex categorizations). For example, Google's &quot;<strong>Cloud Natural Language</strong>&quot; API offers the &quot;Classifying Content&quot; tool: passing a text to the <code>classifyText()</code> method, a category is returned. However, the possible categories form an unstructured and very limited list, and there is also a constraint on the input that must be at least 20 words.
  Some tools (related to &quot;tagging&quot;) instead seem able to do what I need, but first providing them with a database, which is the main thing I miss.</p>
  <p>Since in my case the set of input words is probably limited to commonly used terms, I also thought of writing such an archive myself, perhaps using the various monothematic lists I found on the web; however it would not be a short job and probably already done by others.</p>
  <p>Furthermore, in the future I may need to support in input not only nouns but noun phrases (I refer to the Generative Grammar terminlogy: article + adjective + noun), and therefore having to remove the article and any adjectives before categorizing the substantive: it would therefore be useful if the syntactic category of each word was also available in the archive (even if, for my needs, the syntactic order would often be enough for the parsing: for example &quot;a good man&quot; -&gt; &quot;man&quot;).</p>