16

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.

12

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

Other software packages.

enter image description here

7

BLLIP Parser is the current version of the Charniak-Johnson Parser:

Full disclosure: I am the maintainer of BLLIP Parser.

2

The Berkeley parser is an option:

  • free and open source (GPL 2.0 licensed)

  • written in Java, has Python bindings

  • state-of-the-art accuracy across many languages

  • models available for many languages (English, Bulgarian, Arabic, Chinese, French, German)

2

SyntaxNet:

  • 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

http://googleresearch.blogspot.com/2016/05/announcing-syntaxnet-worlds-most.html:

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:

enter image description here

1

The Link Grammar parser

  • GPL license

  • 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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.