title: Python - WordNet NLTK KeyError
body: <p>I really don`t get it. I´m using WordNet and I get in trouble. I call the following method with strings like that:</p>
  
  <p>F2F - Process started, Create planning data, Create a goods receipt, Goods receipt created</p>
  
  <pre><code>def lemmatise(word, pos=NOUN):
          return WordNetLemmatizer().lemmatize(word, pos)
  </code></pre>
  
  <p>This one calls the next method:</p>
  
  <pre><code>def lemmatize(self, word, pos=NOUN):
      lemmas = wordnet._morphy(word, pos)
      return min(lemmas, key=len) if lemmas else word
  </code></pre>
  
  <p>And the method morphy() is where the error says that the problem comes from (see error message).</p>
  
  <pre><code>def _morphy(self, form, pos):
      # from jordanbg:
      # Given an original string x
      # 1. Apply rules once to the input to get y1, y2, y3, etc.
      # 2. Return all that are in the database
      # 3. If there are no matches, keep applying rules until you either
      #    find a match or you can't go any further
  L1687   exceptions = self._exception_map[pos]
          substitutions = self.MORPHOLOGICAL_SUBSTITUTIONS[pos]
  </code></pre>
  
  <p><strong>Error Message</strong></p>
  
  <pre><code>[18/Nov/2016 15:02:57] "GET / HTTP/1.1" 200 4364
  [18/Nov/2016 15:02:57] "GET /static/website/js/animation.js HTTP/1.1" 200 180
  [18/Nov/2016 15:02:57] "GET /static/website/css/animation.css HTTP/1.1" 200 1069
  [18/Nov/2016 15:02:57] "GET /static/website/img/mamegra_pro_thumbnail.png HTTP/1.1" 200 3588
  [18/Nov/2016 15:02:57] "GET /static/website/css/bootstrap.min.css HTTP/1.1" 200 121260
  [18/Nov/2016 15:02:59] "GET /syntactic_matching_final/ HTTP/1.1" 200 5571
  [18/Nov/2016 15:03:02] "GET /semantic_matching_final/ HTTP/1.1" 200 5571
  Internal Server Error: /semantic_matching_final/
  Traceback (most recent call last):
    File "C:\Users\Bebop\AppData\Local\Programs\Python\Python35\lib\site-packages\django\core\handlers\exception.py", line 39, in inner
      response = get_response(request)
    File "C:\Users\Bebop\AppData\Local\Programs\Python\Python35\lib\site-packages\django\core\handlers\base.py", line 249, in _legacy_get_response
      response = self._get_response(request)
    File "C:\Users\Bebop\AppData\Local\Programs\Python\Python35\lib\site-packages\django\core\handlers\base.py", line 187, in _get_response
      response = self.process_exception_by_middleware(e, request)
    File "C:\Users\Bebop\AppData\Local\Programs\Python\Python35\lib\site-packages\django\core\handlers\base.py", line 185, in _get_response
      response = wrapped_callback(request, *callback_args, **callback_kwargs)
    File "C:\Users\Bebop\OneDrive\Masterarbeit\MamegraPro\MamegraProApp\views.py", line 418, in semantic_matching_final
      matches = matching.match_optimization('semantic_final', enable_infocontent) #perform syntactic matching and save matches in variable
    File "C:\Users\Bebop\OneDrive\Masterarbeit\MamegraPro\MamegraProApp\classes\class_matching.py", line 55, in match_optimization
      scores = {(n1, n2): self.semantic_score_final(n1.name, n2.name, enable_infocontent) if self.semantic_score_final(n1.name, n2.name, enable_infocontent) &gt;= self.minimum_ratio else 0 for n1 in nodes1 for n2 in nodes2}
    File "C:\Users\Bebop\OneDrive\Masterarbeit\MamegraPro\MamegraProApp\classes\class_matching.py", line 55, in &lt;dictcomp&gt;
      scores = {(n1, n2): self.semantic_score_final(n1.name, n2.name, enable_infocontent) if self.semantic_score_final(n1.name, n2.name, enable_infocontent) &gt;= self.minimum_ratio else 0 for n1 in nodes1 for n2 in nodes2}
    File "C:\Users\Bebop\OneDrive\Masterarbeit\MamegraPro\MamegraProApp\classes\class_matching.py", line 557, in semantic_score_final
      lemmas = self.corpusBase.lemmatise(w1)
    File "C:\Users\Bebop\OneDrive\Masterarbeit\MamegraPro\MamegraProApp\classes\class_wordnetWrapper.py", line 8, in lemmatise
      return WordNetLemmatizer().lemmatize(word, pos)
    File "C:\Users\Bebop\AppData\Local\Programs\Python\Python35\lib\site-packages\nltk\stem\wordnet.py", line 40, in lemmatize
      lemmas = wordnet._morphy(word, pos)
    File "C:\Users\Bebop\AppData\Local\Programs\Python\Python35\lib\site-packages\nltk\corpus\reader\wordnet.py", line 1687, in _morphy
      exceptions = self._exception_map[pos]
  KeyError: 'Created'
  [18/Nov/2016 15:03:11] "POST /semantic_matching_final/ HTTP/1.1" 500 122256
  Not Found: /favicon.ico
  [18/Nov/2016 15:03:12] "GET /favicon.ico HTTP/1.1" 404 4238
  </code></pre>
  
  <p>The strange thing is that it randomly switches the word where it throws the error even with the same input. Please help me!</p>