Unsupervised natural language processing library.
Kadot just lets you process a text easily.
>>> hello_world = Text("Kadot just lets you process a text easily.") >>> hello_world.ngrams(n=2) [('Kadot', 'just'), ('just', 'lets'), ('lets', 'you'), ('you', 'process'), ('process', 'a'), ('a', 'text'), ('text', 'easily')]
🔋 What's included ?
Kadot includes tokenizers, text generators, classifiers, word-level and document-level vectorizers.
The philosophy of Kadot is "never hardcode the language rules" : use unsupervised solutions to support most languages. So it will never includes Treebank based algorithms (like a POS Tagger) : use TextBlob to do that.
🤔 How to use it ?
You can play with the TextBlob-like syntax :
>>> from kadot import Text >>> example_text = Text("This is an example text !") >>> example_text.words ['This', 'is', 'an', 'example', 'text'] >>> example_text.ngrams(n=2) [('This', 'is'), ('is', 'an'), ('an', 'example'), ('example', 'text')]
And use the words vectorizer to get words relations :
>>> large_corpus = """Enter a large text, in preference about history.""" >>> history_book = Text(large_corpus) >>> vectors = history_book.vectorize(window=20, reduce_rate=300) >>> vectors.apply_translation(vectors['man'], vectors['woman'], vectors['king'], best=1) # 'man' is to 'woman' what 'king' is to... [('queen', 0.86899999)]
For more usages, check examples. An advanced documentation is coming.
pip command that refair to the Python 3.5 or 3.6 interpreter.
In my case :
$ pip3 install kadot
Kadot is under MIT license.
Issues and pull requests are welcome.