Answers.Body: <p>I have been reading and reading, and found answers to almost all my questions.</p>
  <p>I am sticking to <em>Earley</em> algorithm, given that it offers a dynamic programming approach (CKY does the same). Both algorithms are chart parsing algorithms.</p>
  <p>Earley is a context-free, top-down parsing algorithm, which makes it a goal-driven algorithm. From start symbol down. Furthermore, it is more efficient than the CKY algorithm.</p>
  <p><a href="https://www.cs.bgu.ac.il/%7Emichaluz/seminar/CKY1.pdf" rel="nofollow noreferrer">Here</a> are the slides that provide more info.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-02-06T12:34:26.817Z
Answers.Text: Use shift-reduce dependency parsing algorithm!
Answers.UserDisplayName: kiner_shah
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-02-06T12:36:18.280Z
Answers.Text: @kiner_shah thank you for your comment! I know SpaCy contains a shift-reduce dependency parsing algorithm. However,  why use shift-reduce depencency parsing algorithm over Earley? Couldn't find that answer. therefore had dropt it..
Answers.UserDisplayName: lilienfa
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-02-07T07:09:16.373Z
Answers.Text: Dependency parsing will give you the dependencies between various words in addition to parsing and validating the sentence structure. Those dependencies can be used for relation extraction in the question, to understand what the question is. Earley or CYK parsing will just give you the parse tree. You won't be able to do much with that parse tree!
Answers.UserDisplayName: kiner_shah
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2017-02-06T10:46:00.503Z
Answers.LastActivityDate: 2021-01-26T15:53:51.210Z
Answers.LastEditDate: 2021-01-26T15:53:51.210Z
Answers.UserDisplayName: lilienfa
Body: <p>I am currently working on my last project before graduating. For this project, I have to develop a Natural Language Question Answering System. Now, I have read quite some research papers regarding this topic and have figured out everything except for the parsing algorithm.</p>
  <p>The NL Q-A will be programmed in Python, and I will use the <a href="https://spacy.io/" rel="nofollow noreferrer">spaCy library</a> to finish this project. However, I am stuck when it comes to parsing algorithms. I managed to reduce the parsing algorithms to 3:</p>
  <ul>
  <li><strong>Cocke-Kasami-Younger (CKY)</strong> algorithm</li>
  <li><strong>Earley</strong> algorithm</li>
  <li><strong>Chart Parsing</strong> algorithm</li>
  </ul>
  <p>Note: I know that all three algorithms are chart parsing algorithms. I also know that the <em>Earley</em> algorithm is context-free, but has a low efficiency for a compiler.</p>
  <p>What I don't know is: <em>Which one should I pick?</em> (Please, provide a non-subjective answer to this question!)</p>
  <p>The system is for a specific domain. The answer to the natural question will be displayed in the form of the result of a calculation of some kind. Preferably in the tabular or graphical form.</p>
  <p>I have done my research. However, I probably do not understand the algorithms properly, which makes it difficult to make a selection.The algorithm should be efficient and perhaps outperform others.</p>
  
Tags: <natural-language-processing><question-answering><algorithm-request>
Title: Which parsing algorithm can I use for NLP question answering system?
UserDisplayName: lilienfa
ThreadText: # Which parsing algorithm can I use for NLP question answering system?
  
  (Asked by: username_0 on 2017-02-06)
  
  I am currently working on my last project before graduating. For this project, I have to develop a Natural Language Question Answering System. Now, I have read quite some research papers regarding this topic and have figured out everything except for the parsing algorithm.
  
  The NL Q-A will be programmed in Python, and I will use the [spaCy library](https://spacy.io/) to finish this project. However, I am stuck when it comes to parsing algorithms. I managed to reduce the parsing algorithms to 3:
  
  * **Cocke-Kasami-Younger (CKY)** algorithm
  * **Earley** algorithm
  * **Chart Parsing** algorithm
  
  Note: I know that all three algorithms are chart parsing algorithms. I also know that the *Earley* algorithm is context-free, but has a low efficiency for a compiler.
  
  What I don't know is: *Which one should I pick?* (Please, provide a non-subjective answer to this question!)
  
  The system is for a specific domain. The answer to the natural question will be displayed in the form of the result of a calculation of some kind. Preferably in the tabular or graphical form.
  
  I have done my research. However, I probably do not understand the algorithms properly, which makes it difficult to make a selection.The algorithm should be efficient and perhaps outperform others.
  
  **Tags:** natural-language-processing, question-answering, algorithm-request
  
  ---
  
  ## 1 answers
  
  ### Answer by username_0 on 2017-02-06. Score: 1
  
  I have been reading and reading, and found answers to almost all my questions.
  
  I am sticking to *Earley* algorithm, given that it offers a dynamic programming approach (CKY does the same). Both algorithms are chart parsing algorithms.
  
  Earley is a context-free, top-down parsing algorithm, which makes it a goal-driven algorithm. From start symbol down. Furthermore, it is more efficient than the CKY algorithm.
  
  [Here](https://www.cs.bgu.ac.il/%7Emichaluz/seminar/CKY1.pdf) are the slides that provide more info.
  
  > **Comments:**
  > **username_1**: Use shift-reduce dependency parsing algorithm!  
  > **username_0**: @kiner_shah thank you for your comment! I know SpaCy contains a shift-reduce dependency parsing algorithm. However,  why use shift-reduce depencency parsing algorithm over Earley? Couldn't find that answer. therefore had dropt it..  
  > **username_1**: Dependency parsing will give you the dependencies between various words in addition to parsing and validating the sentence structure. Those dependencies can be used for relation extraction in the question, to understand what the question is. Earley or CYK parsing will just give you the parse tree. You won't be able to do much with that parse tree!  
  
  ---
  
  