I need a tool-kit (preferably written in Java or Python) which parses an English sentence into a syntactic tree. Something like the Charniak parser.
You can use the Stanford Parser:
- free and open source
- written in Java
- accuracy pretty close to "state-of-the-art" (whatever that means as standard benchmark datasets might not reflect your data)
- wrappers available in a few others languages like Python and Ruby.
- online demo
- free and open source (Apache 2.0 licensed)
- written in C/C++ so it's reasonably fast, has Python and Java bindings
- state-of-the-art accuracy for English on multiple datasets
- multiple parsing models (news, biomedical, web) available
Full disclosure: I am the maintainer of BLLIP Parser.
- implemented in TensorFlow
- open source
- based on http://arxiv.org/abs/1603.06042
- provides one trained model for English
- fast: around 600 words/second on a modern desktop
- state-of-the-art results
At Google, we spend a lot of time thinking about how computer systems can read and understand human language in order to process it in intelligent ways. Today, we are excited to share the fruits of our research with the broader community by releasing SyntaxNet, an open-source neural network framework implemented in TensorFlow that provides a foundation for Natural Language Understanding (NLU) systems. Our release includes all the code needed to train new SyntaxNet models on your own data, as well as Parsey McParseface, an English parser that we have trained for you and that you can use to analyze English text.
From the readme:
The Link Grammar parser
Bindings for java, python, perl, clisp, ocaml, autoit, node.js
Written in C/C++
Very high accuracy for English
Fairly complete support for Russian; some Persian; prototypes for other languages.