{
  "id": 5592,
  "title": "Restrictions?",
  "url": "/competitions/facebook-recruiting-iii-keyword-extraction/discussion/5592",
  "author_name": "",
  "post_date": "2013-08-30T20:40:51.973Z",
  "votes": null,
  "comment_count": 11,
  "views": 3662,
  "content": "<p>&quot;The task is to predict the tags (a.k.a. keywords, topics, summaries), given only the question text and its title.&quot;</p>\n<p>&nbsp;</p>\n<p>How literal is this, e.g.: No use of dictionaries? Or is analysis purely based on training data, no legitimate/neutral outside influences?</p>",
  "messages": [
    {
      "id": "29799",
      "postDate": "08/30/2013 20:40:51",
      "content": "<p>&quot;The task is to predict the tags (a.k.a. keywords, topics, summaries), given only the question text and its title.&quot;</p>\n<p>&nbsp;</p>\n<p>How literal is this, e.g.: No use of dictionaries? Or is analysis purely based on training data, no legitimate/neutral outside influences?</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "29803",
      "postDate": "08/30/2013 20:47:11",
      "content": "<p>Scratch that, another case of RTFM:</p>\n<p>&nbsp;</p>\n<p>&quot;No External Data</p>\n<p>Participants are not allowed to use external data, including crawling/querying the Stack Exchange sites. You may be asked to provide your code to verify the legitimacy of your approach.&quot;</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "29804",
      "postDate": "08/30/2013 20:49:12",
      "content": "<p>No worries... RTFM is a quality Facebook likes to see in its applicants ;-)</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "29805",
      "postDate": "08/30/2013 20:51:08",
      "content": "<p>:) (y)</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "29806",
      "postDate": "08/30/2013 21:11:08",
      "content": "<p>I'd still like a clarification on what &quot;querying the Stack Exchange sites&quot; really is and what information one may use. Example: I am a Stack Exchange user. From my personal experience (a.k.a. querying by hand) I know that different SE sites allow different markup variations, i.e. LaTeX style formulae are only available on very few SE sites. This knowledge might make my choice of tags easier. Is this allowed? Or is this just a&nbsp;<em>&quot;text =&gt; algorithm =&gt; tags&quot;</em> challenge for really general methods?</p>\n<p>As an extension, if your answer to my first question is yes, how much does this generalize to using meta-information from the SE sites? Does the rule only mean one is forbidden from aquiring more questions as training data, or is it also forbidden to aquire meta-data from the SE sites. Examples of this meta-data include:</p>\n<ul>\n<li>Getting a list of all available SE sites and programming a heusristic&nbsp;<em>&quot;text =&gt; what SE site might it belong to? =&gt; what tags might be useful for this site, regarding to the text =&gt; tags&quot;</em></li>\n<li>Getting a list of popular (or even all) tags from all available SE sites (or just the most popular ones)</li>\n</ul>\n<p>I am asking this question because one of the example submissions is &quot;javascript c# python php java&quot;, which assigns the same tags to all questions, based on the prior knowledge that Stack Overflow is one of the most popular (<em>the</em> most popular?) SE sites and that the aforementioned tags are very popular on Stack Overflow, making for a good general guess.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "29807",
      "postDate": "08/30/2013 21:18:26",
      "content": "<p>Your question is a bit of a slippery-slope question. We can't forbid you from using some domain knowledge, e.g. &quot;web sites use html and therefore this text may have html tags in it.&quot; The no scraping and no external data rules are there to prevent things like:</p>\n<ul>\n<li>Searching for the text, scraping the actual Stack page, and extracting the tags</li>\n<li>Searching the text and using external data/corpuses/pages to do word association</li>\n<li>etc.</li>\n</ul>\n<p>To give a concrete answer, your model should take text and spit out tags. If we pulled new data at the end of the competition, you should be able to rerun your method and achieve similar performance without the need to hand-code new assumptions.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "29808",
      "postDate": "08/30/2013 21:38:03",
      "content": "<p>I know this question is kind of mean, that's why it is important to me to clarify this issue. It's obvious that this rule exists to prevent cheating, and it is (or at least should be) obvious that one's model should not access external data sources.</p>\n<p>To put another perspective on my question: let's imagine that SE wanted to implement a solution like this on their sites, and provide a tag suggestion feature for new questions, or flag questions where the acutal tags and the computed tags don't line up at all. Let's also say, to comply with this challenge, that all SE sites would use one central tag suggestion service. It is reasonable to assume that this service won't scrape SE for similar questions. But it is also reasonable to assume that the service would have some sort of idea of the tags that are available on each site. This information might not be alwas up-to-date, the service might receive new tag lists from all SE sites only every day, week or month, but it might still help it to do its job.</p>\n<p>My previous question was in the light of this example. Should this challenge (and its rules) be seen more like an academic challenge on how to retrieve tags from a text (maybe with a few small, obvious tweaks), or (as this is a recruiting challenge) can one assume (and thus, hard-code) a (static) database of some kind? For example, the ten most popular tags on the ten most popular SE sites.</p>\n<p>I am truly sorry that I am trying to strain the rules and your patience, but since it is open for all participants, it could serve to establish a common ground on what's acceptable for this challenge and what's not. This common ground doesn't necessarily need to be laid out in one answer, but might arise through discussion, because it&nbsp;<em>really is</em> a complex thing, and as you said, a slippery slope.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "29810",
      "postDate": "08/30/2013 21:56:53",
      "content": "<p>It's a great question, so no need to apologize for asking it.</p>\n<p>Our constraints of running a fair competition are certainly different than if Stack were to put this in a production system, and may not be ideal for such a system. &nbsp;So, while you can build up a library of popular tags from the training set, you can't use Stack's synonym library or other meta data to build this. &nbsp;The way to think about it is to imagine that this is a brand new site and the provided data is the only Stack data that exists.</p>\n<p>Another question that comes up often with NLP problems is whether you can use things like a parts of speech tagger. &nbsp;We consider these tools more than data, and generally allow them. &nbsp;In other words, you shouldn't have to reinvent the English language to solve an NLP problem. However, it can be a slippery slope with these things, so it's best to post to the forums if you think what you are using is more data than tool.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "29811",
      "postDate": "08/30/2013 22:08:08",
      "content": "<p>Thanks! Your answer is really helpful regarding the questions I'm having. Especially the</p>\n<p style=\"padding-left: 30px\"><em>The way to think about it is to imagine that this is a brand new site and the provided data is the only Stack data that exists.</em></p>\n<p>is a good rule to go, as it eliminates my questions regarding a list of SE sites and a comprehensive list of all SE tags, as the proper way to generate those lists would be to examine the training data.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "29816",
      "postDate": "08/30/2013 22:58:43",
      "content": "<p>Hi William Cukierski!</p>\n<p>Following your post about /not reinventing the English language/, I'd like to ask whether the use of external data is allowed provided that the data does not depend on the training data. I'm talking about pure linguistic copora, such as the well-known Brown corpus or other pure semantic lexicon. If not, am I right saying that the problem is more of a Machine Learning problem than of a NLP problem as mentioned earlier?</p>\n<p>Cheers!</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "29821",
      "postDate": "08/31/2013 01:56:58",
      "content": "<p>Similarly to HMICN's question, are we allowed to use lexical databases (ie: Wordnet) for this competition?&nbsp;</p>\n<p>&nbsp;</p>\n<p>&nbsp;</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "29822",
      "postDate": "08/31/2013 03:28:14",
      "content": "<p>&quot;Participants are not allowed to use external data&quot; seems pretty clear to me =)</p>",
      "rawMarkdown": "",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 29803,
      "author_name": "justinrovang",
      "author_url": "",
      "post_date": "08/30/2013 20:47:11",
      "content": "<p>Scratch that, another case of RTFM:</p>\n<p>&nbsp;</p>\n<p>&quot;No External Data</p>\n<p>Participants are not allowed to use external data, including crawling/querying the Stack Exchange sites. You may be asked to provide your code to verify the legitimacy of your approach.&quot;</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 29804,
      "author_name": "wcukierski",
      "author_url": "",
      "post_date": "08/30/2013 20:49:12",
      "content": "<p>No worries... RTFM is a quality Facebook likes to see in its applicants ;-)</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 29805,
      "author_name": "costella",
      "author_url": "",
      "post_date": "08/30/2013 20:51:08",
      "content": "<p>:) (y)</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 29806,
      "author_name": "carstenbrachem",
      "author_url": "",
      "post_date": "08/30/2013 21:11:08",
      "content": "<p>I'd still like a clarification on what &quot;querying the Stack Exchange sites&quot; really is and what information one may use. Example: I am a Stack Exchange user. From my personal experience (a.k.a. querying by hand) I know that different SE sites allow different markup variations, i.e. LaTeX style formulae are only available on very few SE sites. This knowledge might make my choice of tags easier. Is this allowed? Or is this just a&nbsp;<em>&quot;text =&gt; algorithm =&gt; tags&quot;</em> challenge for really general methods?</p>\n<p>As an extension, if your answer to my first question is yes, how much does this generalize to using meta-information from the SE sites? Does the rule only mean one is forbidden from aquiring more questions as training data, or is it also forbidden to aquire meta-data from the SE sites. Examples of this meta-data include:</p>\n<ul>\n<li>Getting a list of all available SE sites and programming a heusristic&nbsp;<em>&quot;text =&gt; what SE site might it belong to? =&gt; what tags might be useful for this site, regarding to the text =&gt; tags&quot;</em></li>\n<li>Getting a list of popular (or even all) tags from all available SE sites (or just the most popular ones)</li>\n</ul>\n<p>I am asking this question because one of the example submissions is &quot;javascript c# python php java&quot;, which assigns the same tags to all questions, based on the prior knowledge that Stack Overflow is one of the most popular (<em>the</em> most popular?) SE sites and that the aforementioned tags are very popular on Stack Overflow, making for a good general guess.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 29807,
      "author_name": "wcukierski",
      "author_url": "",
      "post_date": "08/30/2013 21:18:26",
      "content": "<p>Your question is a bit of a slippery-slope question. We can't forbid you from using some domain knowledge, e.g. &quot;web sites use html and therefore this text may have html tags in it.&quot; The no scraping and no external data rules are there to prevent things like:</p>\n<ul>\n<li>Searching for the text, scraping the actual Stack page, and extracting the tags</li>\n<li>Searching the text and using external data/corpuses/pages to do word association</li>\n<li>etc.</li>\n</ul>\n<p>To give a concrete answer, your model should take text and spit out tags. If we pulled new data at the end of the competition, you should be able to rerun your method and achieve similar performance without the need to hand-code new assumptions.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 29808,
      "author_name": "carstenbrachem",
      "author_url": "",
      "post_date": "08/30/2013 21:38:03",
      "content": "<p>I know this question is kind of mean, that's why it is important to me to clarify this issue. It's obvious that this rule exists to prevent cheating, and it is (or at least should be) obvious that one's model should not access external data sources.</p>\n<p>To put another perspective on my question: let's imagine that SE wanted to implement a solution like this on their sites, and provide a tag suggestion feature for new questions, or flag questions where the acutal tags and the computed tags don't line up at all. Let's also say, to comply with this challenge, that all SE sites would use one central tag suggestion service. It is reasonable to assume that this service won't scrape SE for similar questions. But it is also reasonable to assume that the service would have some sort of idea of the tags that are available on each site. This information might not be alwas up-to-date, the service might receive new tag lists from all SE sites only every day, week or month, but it might still help it to do its job.</p>\n<p>My previous question was in the light of this example. Should this challenge (and its rules) be seen more like an academic challenge on how to retrieve tags from a text (maybe with a few small, obvious tweaks), or (as this is a recruiting challenge) can one assume (and thus, hard-code) a (static) database of some kind? For example, the ten most popular tags on the ten most popular SE sites.</p>\n<p>I am truly sorry that I am trying to strain the rules and your patience, but since it is open for all participants, it could serve to establish a common ground on what's acceptable for this challenge and what's not. This common ground doesn't necessarily need to be laid out in one answer, but might arise through discussion, because it&nbsp;<em>really is</em> a complex thing, and as you said, a slippery slope.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 29810,
      "author_name": "wcukierski",
      "author_url": "",
      "post_date": "08/30/2013 21:56:53",
      "content": "<p>It's a great question, so no need to apologize for asking it.</p>\n<p>Our constraints of running a fair competition are certainly different than if Stack were to put this in a production system, and may not be ideal for such a system. &nbsp;So, while you can build up a library of popular tags from the training set, you can't use Stack's synonym library or other meta data to build this. &nbsp;The way to think about it is to imagine that this is a brand new site and the provided data is the only Stack data that exists.</p>\n<p>Another question that comes up often with NLP problems is whether you can use things like a parts of speech tagger. &nbsp;We consider these tools more than data, and generally allow them. &nbsp;In other words, you shouldn't have to reinvent the English language to solve an NLP problem. However, it can be a slippery slope with these things, so it's best to post to the forums if you think what you are using is more data than tool.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 29811,
      "author_name": "carstenbrachem",
      "author_url": "",
      "post_date": "08/30/2013 22:08:08",
      "content": "<p>Thanks! Your answer is really helpful regarding the questions I'm having. Especially the</p>\n<p style=\"padding-left: 30px\"><em>The way to think about it is to imagine that this is a brand new site and the provided data is the only Stack data that exists.</em></p>\n<p>is a good rule to go, as it eliminates my questions regarding a list of SE sites and a comprehensive list of all SE tags, as the proper way to generate those lists would be to examine the training data.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 29816,
      "author_name": "david99",
      "author_url": "",
      "post_date": "08/30/2013 22:58:43",
      "content": "<p>Hi William Cukierski!</p>\n<p>Following your post about /not reinventing the English language/, I'd like to ask whether the use of external data is allowed provided that the data does not depend on the training data. I'm talking about pure linguistic copora, such as the well-known Brown corpus or other pure semantic lexicon. If not, am I right saying that the problem is more of a Machine Learning problem than of a NLP problem as mentioned earlier?</p>\n<p>Cheers!</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 29821,
      "author_name": "zachfry",
      "author_url": "",
      "post_date": "08/31/2013 01:56:58",
      "content": "<p>Similarly to HMICN's question, are we allowed to use lexical databases (ie: Wordnet) for this competition?&nbsp;</p>\n<p>&nbsp;</p>\n<p>&nbsp;</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 29822,
      "author_name": "alecradford",
      "author_url": "",
      "post_date": "08/31/2013 03:28:14",
      "content": "<p>&quot;Participants are not allowed to use external data&quot; seems pretty clear to me =)</p>",
      "votes": null,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "29799": "",
    "29803": "",
    "29804": "",
    "29805": "",
    "29806": "",
    "29807": "",
    "29808": "",
    "29810": "",
    "29811": "",
    "29816": "",
    "29821": "",
    "29822": ""
  },
  "source": "meta"
}