{
  "id": 231106,
  "title": "Bird code mistake? (maybe a trivial problem)",
  "url": "/competitions/birdclef-2021/discussion/231106",
  "author_name": "",
  "post_date": "2021-04-07T00:35:23.605540600Z",
  "votes": 19,
  "comment_count": 5,
  "views": 0,
  "content": "<p>The primary label contains 397 types of code, but including the secondary label, there are 398 types.<br>\nYou can check the difference as follows.</p>\n<pre><code>train_df = pd.read_csv(\"../input/birdclef-2021/train_metadata.csv\")\nbirds_pri = list(train_df[\"primary_label\"].unique())\nsecondary_labels = train_df[\"secondary_labels\"].map( lambda s: s.replace(\"[\", \"\").replace(\"]\", \"\").replace(\",\", \"\").replace(\"'\", \"\").split(\" \")).values\n\nbirds_sec = []\nfor l in secondary_labels:\n     for i in l:\n         if i != \"\":\n             birds_sec.append(i)\n\nprint(len(set(birds_pri))) # &gt;&gt;&gt; 397\nprint(len(set(birds_sec))) # &gt;&gt;&gt; 393\nprint(len(set(birds_sec + birds_pri))) # &gt;&gt;&gt; 398\nprint(set(birds_sec + birds_pri) - set(birds_pri)) # &gt;&gt;&gt; {'rocpig1'}\n</code></pre>\n<p>Maybe the same as 'rocpig'?</p>",
  "messages": [
    {
      "id": "1265506",
      "postDate": "04/07/2021 00:35:23",
      "content": "<p>The primary label contains 397 types of code, but including the secondary label, there are 398 types.<br>\nYou can check the difference as follows.</p>\n<pre><code>train_df = pd.read_csv(\"../input/birdclef-2021/train_metadata.csv\")\nbirds_pri = list(train_df[\"primary_label\"].unique())\nsecondary_labels = train_df[\"secondary_labels\"].map( lambda s: s.replace(\"[\", \"\").replace(\"]\", \"\").replace(\",\", \"\").replace(\"'\", \"\").split(\" \")).values\n\nbirds_sec = []\nfor l in secondary_labels:\n     for i in l:\n         if i != \"\":\n             birds_sec.append(i)\n\nprint(len(set(birds_pri))) # &gt;&gt;&gt; 397\nprint(len(set(birds_sec))) # &gt;&gt;&gt; 393\nprint(len(set(birds_sec + birds_pri))) # &gt;&gt;&gt; 398\nprint(set(birds_sec + birds_pri) - set(birds_pri)) # &gt;&gt;&gt; {'rocpig1'}\n</code></pre>\n<p>Maybe the same as 'rocpig'?</p>",
      "rawMarkdown": "The primary label contains 397 types of code, but including the secondary label, there are 398 types.\nYou can check the difference as follows.\n\n``` python\ntrain_df = pd.read_csv(\"../input/birdclef-2021/train_metadata.csv\")\nbirds_pri = list(train_df[\"primary_label\"].unique())\nsecondary_labels = train_df[\"secondary_labels\"].map( lambda s: s.replace(\"[\", \"\").replace(\"]\", \"\").replace(\",\", \"\").replace(\"'\", \"\").split(\" \")).values\n\nbirds_sec = []\nfor l in secondary_labels:\n     for i in l:\n         if i != \"\":\n             birds_sec.append(i)\n\nprint(len(set(birds_pri))) # >>> 397\nprint(len(set(birds_sec))) # >>> 393\nprint(len(set(birds_sec + birds_pri))) # >>> 398\nprint(set(birds_sec + birds_pri) - set(birds_pri)) # >>> {'rocpig1'}\n```\n\nMaybe the same as 'rocpig'?",
      "votes": null
    },
    {
      "id": "1265798",
      "postDate": "04/07/2021 08:11:10",
      "content": "<p>Yes and no :) The Rock Pigeon is a bit of a tricky case. eBird has two entries for this species, <em>rocpig</em> and <em>rocpig1</em>. Yet, they both refer to the same species (<em>Columba livia</em>). I think, it is ok to treat both codes as one class. However, you should only use <em>primary_labels</em> for a submission.</p>",
      "rawMarkdown": "Yes and no :) The Rock Pigeon is a bit of a tricky case. eBird has two entries for this species, *rocpig* and *rocpig1*. Yet, they both refer to the same species (*Columba livia*). I think, it is ok to treat both codes as one class. However, you should only use *primary_labels* for a submission.",
      "votes": null
    },
    {
      "id": "1266072",
      "postDate": "04/07/2021 13:08:33",
      "content": "<p>Thank you for the clear answer!</p>",
      "rawMarkdown": "Thank you for the clear answer!",
      "votes": null
    },
    {
      "id": "1268904",
      "postDate": "04/09/2021 23:38:42",
      "content": "<p>This does raise a related question. The differentiation in the Clements list between rocpig and rocpig1 seems to be wild vs. domestic. I know that no domestics are in the primary label list, so that's a non-issue. </p>\n<p>However, if a domestic bird (such as a chicken) is heard in the background of a soundscape recording, is that a non-target sound that should be ignored? I ask because I <em>think</em> I hear a rooster in one or two of the Costa Rican training soundscapes, and there's no bird indicated at the relevant time stamps that I've looked at. Barking dogs suggest a rural domestic setting that would be compatible with the chicken interpretation. </p>\n<p>Thanks again!</p>",
      "rawMarkdown": "This does raise a related question. The differentiation in the Clements list between rocpig and rocpig1 seems to be wild vs. domestic. I know that no domestics are in the primary label list, so that's a non-issue. \n\nHowever, if a domestic bird (such as a chicken) is heard in the background of a soundscape recording, is that a non-target sound that should be ignored? I ask because I *think* I hear a rooster in one or two of the Costa Rican training soundscapes, and there's no bird indicated at the relevant time stamps that I've looked at. Barking dogs suggest a rural domestic setting that would be compatible with the chicken interpretation. \n\nThanks again!",
      "votes": null
    },
    {
      "id": "1269217",
      "postDate": "04/10/2021 09:55:40",
      "content": "<p>Uh, tricky one. I have to admit that I am not 100% familiar with the annotations, the only thing I know is that our annotators tried to label every bird call that they were able to identify. Yet, they might have missed some. However, in this competition, that would be a \"nocall\". All the birds that were annotated do have training data, the training data itself still contains other birds that might be likely to occur at the recording sites.</p>",
      "rawMarkdown": "Uh, tricky one. I have to admit that I am not 100% familiar with the annotations, the only thing I know is that our annotators tried to label every bird call that they were able to identify. Yet, they might have missed some. However, in this competition, that would be a \"nocall\". All the birds that were annotated do have training data, the training data itself still contains other birds that might be likely to occur at the recording sites.",
      "votes": null
    },
    {
      "id": "1269320",
      "postDate": "04/10/2021 12:24:59",
      "content": "<p>Thanks so much for all of your prompt responses. I have a few more annotation questions coming, but I'll try to put them together in a list that the annotators might be able to address all at once. It might be a few days. </p>",
      "rawMarkdown": "Thanks so much for all of your prompt responses. I have a few more annotation questions coming, but I'll try to put them together in a list that the annotators might be able to address all at once. It might be a few days.",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 1265798,
      "author_name": "stefankahl",
      "author_url": "",
      "post_date": "04/07/2021 08:11:10",
      "content": "<p>Yes and no :) The Rock Pigeon is a bit of a tricky case. eBird has two entries for this species, <em>rocpig</em> and <em>rocpig1</em>. Yet, they both refer to the same species (<em>Columba livia</em>). I think, it is ok to treat both codes as one class. However, you should only use <em>primary_labels</em> for a submission.</p>",
      "votes": null,
      "replies": [
        {
          "id": 1266072,
          "author_name": "tattaka",
          "author_url": "",
          "post_date": "04/07/2021 13:08:33",
          "content": "<p>Thank you for the clear answer!</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1268904,
      "author_name": "jmreuter",
      "author_url": "",
      "post_date": "04/09/2021 23:38:42",
      "content": "<p>This does raise a related question. The differentiation in the Clements list between rocpig and rocpig1 seems to be wild vs. domestic. I know that no domestics are in the primary label list, so that's a non-issue. </p>\n<p>However, if a domestic bird (such as a chicken) is heard in the background of a soundscape recording, is that a non-target sound that should be ignored? I ask because I <em>think</em> I hear a rooster in one or two of the Costa Rican training soundscapes, and there's no bird indicated at the relevant time stamps that I've looked at. Barking dogs suggest a rural domestic setting that would be compatible with the chicken interpretation. </p>\n<p>Thanks again!</p>",
      "votes": null,
      "replies": [
        {
          "id": 1269217,
          "author_name": "stefankahl",
          "author_url": "",
          "post_date": "04/10/2021 09:55:40",
          "content": "<p>Uh, tricky one. I have to admit that I am not 100% familiar with the annotations, the only thing I know is that our annotators tried to label every bird call that they were able to identify. Yet, they might have missed some. However, in this competition, that would be a \"nocall\". All the birds that were annotated do have training data, the training data itself still contains other birds that might be likely to occur at the recording sites.</p>",
          "votes": null,
          "replies": [
            {
              "id": 1269320,
              "author_name": "jmreuter",
              "author_url": "",
              "post_date": "04/10/2021 12:24:59",
              "content": "<p>Thanks so much for all of your prompt responses. I have a few more annotation questions coming, but I'll try to put them together in a list that the annotators might be able to address all at once. It might be a few days. </p>",
              "votes": null,
              "replies": []
            }
          ]
        }
      ]
    }
  ],
  "raw_markdown_by_id": {
    "1265506": "The primary label contains 397 types of code, but including the secondary label, there are 398 types.\nYou can check the difference as follows.\n\n``` python\ntrain_df = pd.read_csv(\"../input/birdclef-2021/train_metadata.csv\")\nbirds_pri = list(train_df[\"primary_label\"].unique())\nsecondary_labels = train_df[\"secondary_labels\"].map( lambda s: s.replace(\"[\", \"\").replace(\"]\", \"\").replace(\",\", \"\").replace(\"'\", \"\").split(\" \")).values\n\nbirds_sec = []\nfor l in secondary_labels:\n     for i in l:\n         if i != \"\":\n             birds_sec.append(i)\n\nprint(len(set(birds_pri))) # >>> 397\nprint(len(set(birds_sec))) # >>> 393\nprint(len(set(birds_sec + birds_pri))) # >>> 398\nprint(set(birds_sec + birds_pri) - set(birds_pri)) # >>> {'rocpig1'}\n```\n\nMaybe the same as 'rocpig'?",
    "1265798": "Yes and no :) The Rock Pigeon is a bit of a tricky case. eBird has two entries for this species, *rocpig* and *rocpig1*. Yet, they both refer to the same species (*Columba livia*). I think, it is ok to treat both codes as one class. However, you should only use *primary_labels* for a submission.",
    "1266072": "Thank you for the clear answer!",
    "1268904": "This does raise a related question. The differentiation in the Clements list between rocpig and rocpig1 seems to be wild vs. domestic. I know that no domestics are in the primary label list, so that's a non-issue. \n\nHowever, if a domestic bird (such as a chicken) is heard in the background of a soundscape recording, is that a non-target sound that should be ignored? I ask because I *think* I hear a rooster in one or two of the Costa Rican training soundscapes, and there's no bird indicated at the relevant time stamps that I've looked at. Barking dogs suggest a rural domestic setting that would be compatible with the chicken interpretation. \n\nThanks again!",
    "1269217": "Uh, tricky one. I have to admit that I am not 100% familiar with the annotations, the only thing I know is that our annotators tried to label every bird call that they were able to identify. Yet, they might have missed some. However, in this competition, that would be a \"nocall\". All the birds that were annotated do have training data, the training data itself still contains other birds that might be likely to occur at the recording sites.",
    "1269320": "Thanks so much for all of your prompt responses. I have a few more annotation questions coming, but I'll try to put them together in a list that the annotators might be able to address all at once. It might be a few days."
  },
  "source": "meta"
}