Metadata-Version: 2.1
Name: reason
Version: 0.3.0
Summary: NLP Toolbox
Home-page: https://github.com/alisoltanirad/reason
Author: Ali Soltani Rad
Author-email: soltaniradali@gmail.com
License: UNKNOWN
Description: # Reason
        
        [![License](https://img.shields.io/pypi/l/reason.svg)](https://github.com/alisoltanirad/Reason/blob/main/LICENSE)
        [![PyPI](https://img.shields.io/pypi/v/reason.svg)](https://pypi.org/project/reason/)
        [![Downloads](https://img.shields.io/pypi/dw/reason)](https://pypi.org/project/reason/)
        [![Lines](https://img.shields.io/tokei/lines/github/alisoltanirad/reason)](https://github.com/alisoltanirad/Reason/)
        [![Activity](https://img.shields.io/github/last-commit/alisoltanirad/reason)](https://github.com/alisoltanirad/Reason/)
        
        Python easy-to-use natural language processing toolbox.
        
        
        ## Toolbox
        
        - Classifier
        - Machine learning metrics
        - Confusion matrix
        - Word and sentence tokenizer
        - Frequency distribution
        - Bigrams, trigrams and Ngrams.
        
        
        ## Install
        
        Install latest stable version using pip:
        ```
        pip install reason
        ```
        
        
        ## Quick Start
        
        Classification:
        
        ```python
        >>> from reason.classify import NaiveBayesClassifier
        >>> classifier = NaiveBayesClassifier(train_set)
        >>> y_pred = classifier.classify(new_data)
        
        >>> from reason.metrics import accuracy
        >>> accuracy(y_true, y_pred)
        0.9358
        ```
        
        Confusion Matrix:
        
        ```python
        >>> from reason.metrics import ConfusionMatrix
        >>> cm = ConfusionMatrix(y_true, y_pred)
        
        >>> cm
        68 21 13
        16 70 11
        14 10 77
        
        >>> cm[actual, predicted]
        16
        
        >>> from reason.metrics import BinaryConfusionMatrix
        >>> bcm = BinaryConfusionMatrix(b_y_true, b_y_pred)
        
        >>> bcm.precision()
        0.7837
        >>> bcm.recall()
        0.8055
        >>> bcm.f1_score()
        0.7944
        ```
        
        Word Tokenization:
        
        ```python
        >>> from reason.tokenize import word_tokenize
        
        >>> text = "Testing reason0.1.0, (on: 127.0.0.1). Cool stuff..."
        >>> word_tokenize(text, 'alphanumeric')
        ['Testing', 'reason0.1.0', 'on', '127.0.0.1', 'Cool', 'stuff']
        ```
        
        Sentence Tokenization:
        
        ```python
        >>> from reason.tokenize import sent_tokenize
        
        >>> text = "Hey, what's up? I love using Reason library!"
        >>> sents = sent_tokenize(text)
        >>> for sent in sents:
        ...     print(sent)
        Hey, what's up?
        I love using Reason library!
        ```
        
        Frequency Distribution:
        
        ```python
        >>> from reason.analysis import FreqDist
        
        >>> words = ['hey', 'hey', 'oh', 'oh', 'oh', 'yeah']
        >>> fd = FreqDist(words)
        
        >>> fd
        Frequency Distribution
        Most-Common: [('oh', 3), ('hey', 2), ('yeah', 1)]
        >>> fd.most_common(2)
        [('oh', 3), ('hey', 2)]
        >>> fd['yeah']
        1
        ```
        
        Ngrams:
        
        ```python
        >>> sent = 'Reason is easy to use'
        
        >>> from reason.util import bigrams
        >>> bigrams(sent)
        [('Reason', 'is'), ('is', 'easy'), ('easy', 'to'), ('to', 'use')]
        
        >>> from reason.util import trigrams
        >>> trigrams(sent)
        [('Reason', 'is', 'easy'), ('is', 'easy', 'to'), ('easy', 'to', 'use')]
        
        >>> from reason.util import ngrams
        >>> ngrams(sent, 4)
        [('Reason', 'is', 'easy', 'to'), ('is', 'easy', 'to', 'use')]
        ```
        
        
        ## Dependencies
        
        - [NumPy](https://numpy.org)  
        Used to handle data
        - [Pandas](https://pandas.pydata.org)  
        Used in classify package
        
        Keep in mind *NumPy* will be automatically installed with *Reason*.
        
        
        ## License
        
        MIT -- See [LICENSE](https://github.com/alisoltanirad/Reason/blob/main/LICENSE) 
        for details.
        
Platform: UNKNOWN
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Classifier: Topic :: Text Processing
Classifier: Development Status :: 3 - Alpha
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Operating System :: OS Independent
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Education
Classifier: Natural Language :: English
Requires-Python: >=3.7
Description-Content-Type: text/markdown
