Developer Guides Getting Started Getting Started What is a Graph Database? Intro to Graph DBs Video Series Concepts: RDBMS to Graph Concepts: NoSQL to Graph Getting Started Resources Neo4j Graph Platform Graph Platform Overview Neo4j Database Neo4j Desktop Intro Neo4j… Read more →

Developer Guides

Want to Speak? Get $ back.

Natural Language Processing (NLP)

Neo4j offers powerful querying capabilities for structured data, but a lot of the world’s data exists in text documents. NLP techniques can help to extract the latent structure in these documents. This structure could be as simple as nodes representing tokens in a sentence or as complicated as nodes representing entities extracted using a named entity recognition algorithm.

Why NLP?

Extracting structure from text documents and storing it in a graph enables several different use cases, including:

  • Content based recommendations
  • Natural Language search
  • Document similarity

Neo4j NLP Tools and Products

There are two tools available for doing NLP analysis in Neo4j. We’ll learn about them in this section.


APOC is Neo4j’s standard library. It contains procedures that call the Amazon Web Services (AWS) and Google Cloud Platform (GCP) Natural Language APIs, and create a graph based on the results returned.

These procedures support entity extraction, key phrase extraction, sentiment analysis, and document classification.

This library is a good choice for your first graph based NLP project.

GraphAware Natural Language Processing

This is a Neo4j plugin that offers Graph Based Natural Language Processing capabilities and runs on top of the Stanford NLP and OpenNLP libraries. It provides a common interface for underlying text processors as well as a Domain Specific Language built atop stored procedures and functions making your Natural Language Processing workflow developer friendly.

The library supports text extraction, key word extraction, TextRank summarization, word embeddings using Word2Vec, and more. It is available as an open sourced community version as well as an enterprise version via the Hume Graph-Powered Insights Engine.

This library is very powerful, but also has a steeper learning curve. It is a good choice if you’re doing a serious graph based NLP project.