title: NLTK CFG Grammar with multiple words
body: <p><strong>NLTK 3.0:</strong></p>
  
  <p>With a CFG configuration like below (Nonterminal team has 4 values with 1 value that has 2 words (sri lankan).</p>
  
  <p>When I generate the list of possible generations, I can see the two worded coming up in the result. But when I try to parse an input sentence with that two worded grammar, it does not parse.</p>
  
  <pre><code>import nltk
  from nltk.parse import generate
  from nltk.grammar import Nonterminal
  
  
  cfg = nltk.CFG.fromstring("""
  root -&gt; who_player has the most runs
  who_player -&gt; who
  who_player -&gt; which player
  who_player -&gt; which team player
  who -&gt; 'who'
  which -&gt; 'which'
  player -&gt; 'player'
  team -&gt; 'indian' | 'australian' | 'england' | 'sri lankan'
  has -&gt; 'has'
  the -&gt; 'the'
  this -&gt; 'this'
  most -&gt; 'most'
  runs -&gt; 'runs'
  """)
  
  print(list((n,sent) for n, sent in enumerate(generate.generate(cfg, n=100, start=Nonterminal('root')), 1)))
  
  # Above generate generates ['which', 'sri lankan', 'player', 'has', 'the', 'most', 'runs']
  # But the same sentence is not parsable by ChartParser.
  
  result1 = nltk.ChartParser(cfg).parse('which england player has the most runs'.split())
  print(list(result1))
  result2 = nltk.ChartParser(cfg).parse('which sri lankan player has the most runs'.split()) # Does not work.
  print(list(result2))
  </code></pre>
  
  <p>How to make multi worded configuration work with ChartParser.</p>