<p>I would like to extract a reduced collection of "meaningful" tags (10 max) out of an english text of any size. </p>

<p><a href="http://tagcrowd.com/" rel="noreferrer">http://tagcrowd.com/</a> is quite interesting but the algorithm seems very basic (just word counting)</p>

<p>Is there any other existing algorithm to do this?</p>

[{'answer_id': 67759, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 2, 'selected': False, 'text': '<p>When you subtract the human element (tagging), all that is left is frequency. "Ignore common English words" is the next best filter, since it deals with exclusion instead of inclusion. I tested a few sites, and it is very accurate. There really is no other way to derive "meaning", which is why the Semantic Web gets so much attention these days. It is a way to imply meaning with HTML... of course, that has a human element to it as well.</p>\n'}, {'answer_id': 67795, 'author': 'Chuck Wooters', 'author_id': 8879, 'author_profile': 'https://Stackoverflow.com/users/8879', 'pm_score': 0, 'selected': False, 'text': '<p>Perhaps "Term Frequency - Inverse Document Frequency" <a href="http://en.wikipedia.org/wiki/Tf-idf" rel="nofollow noreferrer">TF-IDF</a> would be useful...</p>\n'}, {'answer_id': 67797, 'author': 'Andrew', 'author_id': 8871, 'author_profile': 'https://Stackoverflow.com/users/8871', 'pm_score': 1, 'selected': False, 'text': '<p>In text classification, this problem is known as dimensionality reduction.  There are many useful algorithms in the literature on this subject.</p>\n'}, {'answer_id': 67800, 'author': 'Torsten Marek', 'author_id': 9567, 'author_profile': 'https://Stackoverflow.com/users/9567', 'pm_score': 1, 'selected': False, 'text': '<p>Basically, this is a text categorization problem/document classification problem. If you have access to a number of already tagged documents, you could analyze which (content) words trigger which tags, and then use this information for tagging new documents. </p>\n\n<p>If you don\'t want to use a machine-learning approach and you still have a document collection, then you can use metrics like <a href="http://en.wikipedia.org/wiki/Tf-idf" rel="nofollow noreferrer">tf.idf</a> to filter out interesting words. </p>\n\n<p>Going one step further, you can use <a href="http://wordnet.princeton.edu/" rel="nofollow noreferrer">Wordnet</a> to find synonyms and replace words by their synonym, if the frequency of the synonym is higher.</p>\n\n<p><a href="http://nlp.stanford.edu/fsnlp/" rel="nofollow noreferrer">Manning &amp; Schütze</a> contains a lot more introduction on text categorization.</p>\n'}, {'answer_id': 67813, 'author': 'ceejayoz', 'author_id': 1902010, 'author_profile': 'https://Stackoverflow.com/users/1902010', 'pm_score': 3, 'selected': False, 'text': '<p>There are existing web services for this. <s>Two</s> Three examples:</p>\n\n<ul>\n<li><a href="http://developer.yahoo.com/search/content/V1/termExtraction.html" rel="nofollow noreferrer">Yahoo\'s Term Extraction API</a></li>\n<li>Topicalizer</li>\n<li><a href="http://www.opencalais.com/" rel="nofollow noreferrer">OpenCalais</a></li>\n</ul>\n'}, {'answer_id': 71865, 'author': 'Max Galkin', 'author_id': 2351099, 'author_profile': 'https://Stackoverflow.com/users/2351099', 'pm_score': 1, 'selected': False, 'text': '<p>You want to do the <a href="http://en.wikipedia.org/wiki/Semantic_analysis" rel="nofollow noreferrer">semantic analysis</a> of a text.</p>\n\n<p>Word frequency analysis is one of the easiest ways to do the semantic analysis. Unfortunately (and obviously) it is the least accurate one. It can be improved by using special dictionaries (like for synonims or forms of a word), "stop-lists" with common words, other texts (to find those "common" words and exclude them)...</p>\n\n<p>As for <strong>other algorithms</strong> they could be based on:</p>\n\n<ul>\n<li>Syntax analysis (like trying to find the main subject and/or verb in a sentence)</li>\n<li>Format analysis (analyzing headers, bold text, italic... where applicable)</li>\n<li>Reference analysis (if the text is in Internet, for example, then a reference can describe it in several words... used by some search engines)</li>\n</ul>\n\n<p>BUT... you should understand that these algorithms are mereley heuristics for semantic analysis, not the strict algorithms of achieving the goal. \nThe problem of semantic analysis is one of the main problems in Artificial Intelligence/Machine Learning studies since the first computers appeared.</p>\n'}, {'answer_id': 40411114, 'author': 'Rob', 'author_id': 5538787, 'author_profile': 'https://Stackoverflow.com/users/5538787', 'pm_score': 0, 'selected': False, 'text': '<p>You can use this in two steps:</p>\n\n<p>1 - Try topic modeling algorithms:</p>\n\n<ul>\n<li>Latent Dirichlet Allocation</li>\n<li>Latent word Embeddings</li>\n</ul>\n\n<p>2 - After that you can select the most representative word of every topic as a tag</p>\n'}]
['https://Stackoverflow.com/questions/67725', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/1152057/']