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.
Other software packages.
I think you are talking about EULAlyzer. It was done by JavaCoolSoftware up to some time ago, now BrightFort LLC. It has some analysis tools that helps you to identify weird clauses about third parties, data collection, advertising, etc.
I have used it and didn't gave me trouble finding stuff in lengthy text nor unexpected behaviors. It comes as freeware ...
BLLIP Parser is the current version of the Charniak-Johnson Parser:
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.
You can also try ElasticSearch.
ElasticSearch it's a search server on top of Lucene. It provides a Json API for performing the search queries and it's really handy when it comes to scalability.
In order to to index an existing database you should continually poll it's content.
Here is a tutorial for that.
On the downside, you should be familiar with ...
You are looking for a POS-tagger(= part-of-speech tagger).
One of the most accurate and widely used is the Stanford Part-Of-Speech Tagger:
free (except for commercial non-open source software)
open source, written in Java
trained models for English, Arabic, Chinese, French, and German are available.
Binding available in many other languages:...
It's not a built-in function, but you can do so with python and nltk.
A simple code would be like this :
with open(file) as f:
for line in f:
tmp = nltk.word_tokenize(line)
You can find explanation for each tag here (figure 5.1).
Trouble is, it will return the most probable tag and not everyone of ...
Well, you said the 3 magic words: database, text-search and Java. I would strongly suggest using Hibernate-Search because it's made for this purpose.
To be more precise, Hibernate-Search has the ability to:
Add text-search in your existing database by annotations in your existing entities.
find by approximation (fuzzy search) and rank results.
It's Lucene ...
Solr might be a good fit for your choice.
As ElasticSearch, Solr is based on Lucene and provides the same functionalities like full-text search, hit highlighting and easy-scalability among others.
Generally when searching for those 2 solutions you will find many resources. I leave it to you to decide which one to use ;) Solr has definitely the advantage ...
You can use the Apache OpenNLP library:
free and open source, written in Java
supports the most common NLP tasks, such as tokenization, sentence segmentation, part-of-speech tagging, named entity extraction, chunking, parsing, and coreference resolution.
includes maximum entropy and perceptron based machine learning.
Part-of-Speech Tagger Documentation:
During my research I found two excellent tools for dealing with CFG's I want to share here (since I am sure they will help others as they helped me):
This application removes left-corner cycles from a context-free
grammar to make it more acceptable for LL parsers. Of course, this can
I would be surprised if you find any API combining those features. As the two most useful features are certainly the picture and the name by far, I would use a Face gender detection API such as Lambda Labs's API (picked randomly, you might want to search for benchmark if there are any), combined with a name to gender mapping. To solve the conflicts , you ...
Some of the questions you posted can be solved by linear simultaneous equations technique.
Sequalator is a software which can solve linear simultaneous equations for you.
It can not only tackle thousands of equations in a fraction of a second but also provides some unique tools that let you analyse the solutions of your equations.
And the best part is that ...
It sound like you are looking for pythons Natural Language Toolkit, NLTK. It fits all your requirements:
Free (both Libra & FLOSS)
Cross platform - Linux has python installed by default in most distros but installs are available for just about everything.
An example of what you are looking to do can be found here but looks like:
There is a service called Terms of Service; Didn't read on which gives you a rating on terms of services. It is available as a browser addon for Firefox, Chrome, Opera and Safari.
It is at least closely related to what you look for.
Boilerpipe is written in Java and does exactly that.
You can try their demo. The demo does sometimes go over quota and becomes unavailable; if that happens just try again later.
I found it very useful and easy to implement.
The concept is the following:
First, install Alfresco and the Calais integration (it might take a day depending on your experience).
Then upload all of your documents to Alfresco.
Calais is a library/API developed by Reuters to extract semantic information from human text.
You will now be able to:
Find all documents about purchasing, with a nice tag cloud.
Quickly search for all ...
You can also use Rasa
Rasa NLU and Rasa Core are completely open source, and you can use them as an alternative to Dialogflow, IBM Watson, or Lex. There is a very active community of developers, and a bunch of tutorials and additional tools built by the community.
Disclaimer - I'm a maintainer of these libraries.
I'm not sure how easy it would be to embed into Amazon Turk (it's a standalone webapp), but you might want to try brat (brat rapid annotation tool).
open source (MIT License)
Among other types of annotations, it supports annotating a span of text with a specific (predefined) class which sounds like it might fit your needs
supports multiple users (but again, ...
You can use IBM LanguageWare (Wikipedia):
free (you need to register to be able to download it)
not sure how active the project is, the latest version is 2011-10-21.
Note that LanguageWare does not currently provide part of speech (POS) disambiguation and therefore all ambiguities are passed back up to the calling application.
UIMA-based (UIMA = ...
You can use the module sklearn.cluster from the Python library scikit-learn (free and open-source).
E.g. if you want to use the k-means algorithm:
import numpy as np
from sklearn.cluster import KMeans
kmeans_model = KMeans(n_clusters=3, random_state=1).fit(X)
labels = kmeans_model.labels_
metrics.silhouette_score(X, labels, metric='euclidean')
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)
implemented in TensorFlow
based on http://arxiv.org/abs/1603.06042
provides one trained model for English
fast: around 600 words/second on a modern desktop
At Google, we spend a lot of time thinking about how computer ...
I suggest taking a look at the python Natural Language Toolkit, nltk, you will need to install python first if your platform doesn't come with it, i.e. MS-Windows but it is available for most platforms.
The advantage is that rather than simply splitting the sentence into words and shuffling them - hoping for a meaningful result - which you can do in about ...
I think that what you are looking for is the combination of python and the natural language toolkit, (nltk).
The book Bird, Steven, Edward Loper and Ewan Klein (2009), Natural Language Processing with Python. O’Reilly Media Inc. states in its opening chapter:
Technologies based on NLP are becoming increasingly widespread. For
example, phones and ...
here are a couple resources I have found, that provide an open source "dialog system".
I just ran this yesterday locally, with the telnet interface for rules it looks interesting. There is an example using websockets; but I didn't get that working as of yet.
This is an open source library and its source code is available here. According to your question, this library can detect a number, unit, and noun. Here are below examples that I taken from nlp_compromise documentation:
You can use RASA's open source project: https://github.com/RasaHQ/rasa
It is open source and also works with Python.
You will also have control of your own data.
However, it is not as easy as dialogflow and will require some time to setup.
For more differences refer here:
You can also ...
I found this tool: Hong's Hangul Conversion Tools. It converts text from English to Korean and vice versa through transliteration dictionaries. It is indeed open source as mentioned in the comments on the OP, and the code is licensed under GPLv3.
Here is an example: