Logos is the foundation upon a NLP application can be build using Docker and Django Neomodel. It receives document in a form of a string and it generates a graph which represents the given text. Then someone can easily query with Cypher. Logos also automatically generates rules from the given text that can be used to link together future entities.
On the above image we see the graph representation of the following three sentences:
the big dog ate some poop and then got away from the police.
the small dog barked really loud
hound slept on the pillow
The above graph can be easily generated by executing the logos.web.core.analysis.document_analysis
with the appropriate text or by executing the test test_entity_graph_without_cache
while
changing again the text.
docker-compose build
docker-compose up
As mentioned someone can easily generate any graph by running the method logos.web.core.analysis.document_analysis
.
This method will perform the following for every sentence.
got away
is one nodethe big dog
and the big cat
,
and also have common properties, then we can assume that the shared properties derive from the shared tokens.
So when we find the same tokens in an entity set then we can automatically apply those properties.
For example the property does not fit - in the small box
if it is shared in the above entity sets then we can assume
that every entity set with the tokens the big X
has the mentioned property.With this repository someone can explore how a django neomodel and docker nlp application can be created. If we generate a big graph then querying this graph can be challenging and an optimization of the graph architecture might be needed.