Kadot, unsupervised natural language processing.

natural, language, processing, natural-language-processing, text-classification, text-generation, tokenizer, word-embeddings
pip install Kadot==0.1.9



Unsupervised natural language processing library.

Build Status Code Health PyPI version GitHub license

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.

🔨 Installation

Use the pip command that refair to the Python 3.5 or 3.6 interpreter. In my case :

$ pip3 install kadot

⚖️ License

Kadot is under MIT license.

🚀 Contribute

Issues and pull requests are gratefully welcome. Come help us !