<a href="https://github.com/OpenNyAI/Opennyai"><img src="https://github.com/OpenNyAI/Opennyai/raw/master/asset/final-logo-01.jpeg" width="190" height="65" align="right" /></a>
# Opennyai : An efficient NLP Pipeline for Indian Legal documents
[![Current Release Version](https://img.shields.io/github/release/OpenNyAI/opennyai.svg?style=flat-square&logo=github)](https://github.com/OpenNyAI/Opennyai/releases)
[![PyPI version](https://img.shields.io/pypi/v/opennyai.svg?style=flat-square&logo=pypi&logoColor=white)](https://pypi.org/project/opennyai/)
[![python version](https://img.shields.io/badge/Python-%3E=3.7-blue)](https://github.com/OpenNyAI/Opennyai)
[![Downloads](https://pepy.tech/badge/opennyai)](https://github.com/OpenNyAI/Opennyai)
Opennyai is a python library for natural language preprocessing on Indian legal texts.
This library provides unified access to the following 3 pre-trained AI models developed by OpenNyAI which focus on
Indian court
judgments:
* Named Entity Recognition (NER): [GitHub](https://github.com/Legal-NLP-EkStep/legal_NER)
, [paper](https://arxiv.org/pdf/2211.03442.pdf)
* Judgment Structuring using Sentence Rhetorical
Roles: [GitHub](https://github.com/Legal-NLP-EkStep/rhetorical-role-baseline)
, [paper](http://www.lrec-conf.org/proceedings/lrec2022/pdf/2022.lrec-1.470.pdf)
* Extractive Summarizer: [GitHub](https://github.com/Legal-NLP-EkStep/judgment_extractive_summarizer)
This library is mainly for running the pretrained models on your custom input judgments text. For more details about
data and model training, please refer to individual git repo links.
# 🔧 1. Installation
To get started using opennyai first create a new python virtual environment using [conda](https://www.anaconda.com/):
```bash
conda create -n opennyai python=3.8
conda activate opennyai
```
Install it using pip by running the following line in your terminal
```bash
pip install -U opennyai
```
#### For GPU support
If you want to utilize spacy with GPU please install [Cupy](https://anaconda.org/conda-forge/cupy) and
[cudatoolkit](https://anaconda.org/anaconda/cudatoolkit) dependency of appropriate version.
```bash
conda install cudatoolkit==<your_cuda_version> #### E.g. cudatoolkit==11.2
pip install cupy-cuda<your_cuda_version> ##### E.g. cupy-cuda112
```
In case of any issue with installation please refer to [spacy installation with cupy](https://spacy.io/usage)
Remember you need spacy of 3.2.4 version for models to work perfectly.
# 📖 2. Documentation
Please refer to the [Documentation](https://opennyai.readthedocs.io/en/latest/index.html#) for more details.
# 👩💻 3. Usage
To run the 3 OpenNyAI models on judgment texts of your choice please run following python code
```python
from opennyai import Pipeline
from opennyai.utils import Data
import urllib
# Get court judgment texts on which to run the AI models
text1 = urllib.request.urlopen(
'https://raw.githubusercontent.com/OpenNyAI/Opennyai/master/samples/sample_judgment1.txt').read().decode()
text2 = urllib.request.urlopen(
'https://raw.githubusercontent.com/OpenNyAI/Opennyai/master/samples/sample_judgment2.txt').read().decode()
# you can also load your text files directly into this
texts_to_process = [text1, text2]
# create Data object for data preprocessing before running ML models
data = Data(texts_to_process)
# If you have access to GPU then set this to True else False
use_gpu = True
# Choose which of the AI models you want to run from the 3 models 'NER', 'Rhetorical_Role','Summarizer'. E.g. If just Named Entity is of interest then just select 'NER'
pipeline = Pipeline(components=['NER', 'Rhetorical_Role', 'Summarizer'], use_gpu=use_gpu, verbose=True)
results = pipeline(data)
```
The output of each model is present in following keys of each element of the output
```python
results[0][
'annotations'] ## shows the result of model at sentence level, each entry will have entities, rhetorical role, and other details
results[0]['summary'] ## shows Summary for each of the Rheorical Role for first judgment text
```
For more details on usage please refer to the [documentation](https://opennyai.readthedocs.io/en/latest/index.html#)
Google Colab Notebook
----------------------
| Description | Link |
|---------------------------|-------|
| Run Inference | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1rNA6XVyD-GCTd0YtosjiKON_p9bGuVwz) |
Visualization of outputs
-----------------------
We encourage users to use [our webapp](https://summarizer-fer6v2lowq-uc.a.run.app/) for visualizing the results for a
judgment of your choice.
Raw data
{
"_id": null,
"home_page": "",
"name": "opennyai",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.7.0",
"maintainer_email": "",
"keywords": "law indianlegalner legalner legal ner lawtech legaltech nlp spacy SpaCy rhetorical role summarizer extractive_summarizer",
"author": "Aman Tiwari",
"author_email": "aman.tiwari@thoughtworks.com",
"download_url": "https://files.pythonhosted.org/packages/7e/e5/ff097643eee0bfbe3a248a15613c23a473b6dae2d7c28180c351a1405016/opennyai-0.0.11.tar.gz",
"platform": null,
"description": "<a href=\"https://github.com/OpenNyAI/Opennyai\"><img src=\"https://github.com/OpenNyAI/Opennyai/raw/master/asset/final-logo-01.jpeg\" width=\"190\" height=\"65\" align=\"right\" /></a>\n\n# Opennyai : An efficient NLP Pipeline for Indian Legal documents\n\n[![Current Release Version](https://img.shields.io/github/release/OpenNyAI/opennyai.svg?style=flat-square&logo=github)](https://github.com/OpenNyAI/Opennyai/releases)\n[![PyPI version](https://img.shields.io/pypi/v/opennyai.svg?style=flat-square&logo=pypi&logoColor=white)](https://pypi.org/project/opennyai/)\n[![python version](https://img.shields.io/badge/Python-%3E=3.7-blue)](https://github.com/OpenNyAI/Opennyai)\n[![Downloads](https://pepy.tech/badge/opennyai)](https://github.com/OpenNyAI/Opennyai)\n\nOpennyai is a python library for natural language preprocessing on Indian legal texts.\n\nThis library provides unified access to the following 3 pre-trained AI models developed by OpenNyAI which focus on\nIndian court\njudgments:\n\n* Named Entity Recognition (NER): [GitHub](https://github.com/Legal-NLP-EkStep/legal_NER)\n , [paper](https://arxiv.org/pdf/2211.03442.pdf)\n* Judgment Structuring using Sentence Rhetorical\n Roles: [GitHub](https://github.com/Legal-NLP-EkStep/rhetorical-role-baseline)\n , [paper](http://www.lrec-conf.org/proceedings/lrec2022/pdf/2022.lrec-1.470.pdf)\n* Extractive Summarizer: [GitHub](https://github.com/Legal-NLP-EkStep/judgment_extractive_summarizer)\n\nThis library is mainly for running the pretrained models on your custom input judgments text. For more details about\ndata and model training, please refer to individual git repo links.\n\n# \ud83d\udd27 1. Installation\n\nTo get started using opennyai first create a new python virtual environment using [conda](https://www.anaconda.com/):\n\n```bash\nconda create -n opennyai python=3.8\nconda activate opennyai\n```\n\nInstall it using pip by running the following line in your terminal\n\n```bash\npip install -U opennyai\n```\n\n#### For GPU support\n\nIf you want to utilize spacy with GPU please install [Cupy](https://anaconda.org/conda-forge/cupy) and\n[cudatoolkit](https://anaconda.org/anaconda/cudatoolkit) dependency of appropriate version.\n\n```bash\nconda install cudatoolkit==<your_cuda_version> #### E.g. cudatoolkit==11.2\npip install cupy-cuda<your_cuda_version> ##### E.g. cupy-cuda112\n```\n\nIn case of any issue with installation please refer to [spacy installation with cupy](https://spacy.io/usage)\n\nRemember you need spacy of 3.2.4 version for models to work perfectly.\n\n# \ud83d\udcd6 2. Documentation\n\nPlease refer to the [Documentation](https://opennyai.readthedocs.io/en/latest/index.html#) for more details.\n\n# \ud83d\udc69\u200d\ud83d\udcbb 3. Usage\n\nTo run the 3 OpenNyAI models on judgment texts of your choice please run following python code\n\n```python\nfrom opennyai import Pipeline\nfrom opennyai.utils import Data\nimport urllib\n\n# Get court judgment texts on which to run the AI models\ntext1 = urllib.request.urlopen(\n 'https://raw.githubusercontent.com/OpenNyAI/Opennyai/master/samples/sample_judgment1.txt').read().decode()\ntext2 = urllib.request.urlopen(\n 'https://raw.githubusercontent.com/OpenNyAI/Opennyai/master/samples/sample_judgment2.txt').read().decode()\n\n# you can also load your text files directly into this\ntexts_to_process = [text1, text2]\n\n# create Data object for data preprocessing before running ML models\ndata = Data(texts_to_process)\n\n# If you have access to GPU then set this to True else False\nuse_gpu = True\n\n# Choose which of the AI models you want to run from the 3 models 'NER', 'Rhetorical_Role','Summarizer'. E.g. If just Named Entity is of interest then just select 'NER'\n\npipeline = Pipeline(components=['NER', 'Rhetorical_Role', 'Summarizer'], use_gpu=use_gpu, verbose=True)\n\nresults = pipeline(data)\n```\n\nThe output of each model is present in following keys of each element of the output\n\n```python\nresults[0][\n 'annotations'] ## shows the result of model at sentence level, each entry will have entities, rhetorical role, and other details\nresults[0]['summary'] ## shows Summary for each of the Rheorical Role for first judgment text \n```\n\nFor more details on usage please refer to the [documentation](https://opennyai.readthedocs.io/en/latest/index.html#)\n\nGoogle Colab Notebook\n----------------------\n\n| Description | Link |\n|---------------------------|-------|\n| Run Inference | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/1rNA6XVyD-GCTd0YtosjiKON_p9bGuVwz) |\n\nVisualization of outputs\n-----------------------\nWe encourage users to use [our webapp](https://summarizer-fer6v2lowq-uc.a.run.app/) for visualizing the results for a\njudgment of your choice.\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A SpaCy pipeline and models for NLP on indian legal text.",
"version": "0.0.11",
"project_urls": null,
"split_keywords": [
"law",
"indianlegalner",
"legalner",
"legal",
"ner",
"lawtech",
"legaltech",
"nlp",
"spacy",
"spacy",
"rhetorical",
"role",
"summarizer",
"extractive_summarizer"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "616ff5a97aea3ecf1e4b633b7ab6735d0e554f838eab07872d6265e94b5fd01e",
"md5": "71b906837eabfb37ff484ea6d790d58d",
"sha256": "59a1ad21998bdba2a70978af033f9e196829e052a89658a691436c34c5774c92"
},
"downloads": -1,
"filename": "opennyai-0.0.11-py3-none-any.whl",
"has_sig": false,
"md5_digest": "71b906837eabfb37ff484ea6d790d58d",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7.0",
"size": 169561,
"upload_time": "2023-09-01T12:58:18",
"upload_time_iso_8601": "2023-09-01T12:58:18.104539Z",
"url": "https://files.pythonhosted.org/packages/61/6f/f5a97aea3ecf1e4b633b7ab6735d0e554f838eab07872d6265e94b5fd01e/opennyai-0.0.11-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7ee5ff097643eee0bfbe3a248a15613c23a473b6dae2d7c28180c351a1405016",
"md5": "7304fb94f9a26856a080762f5be620eb",
"sha256": "9a62dfbcc8a66d980c60967d3f94895b123ad462ab184830eb5e2508d0e4bf7f"
},
"downloads": -1,
"filename": "opennyai-0.0.11.tar.gz",
"has_sig": false,
"md5_digest": "7304fb94f9a26856a080762f5be620eb",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7.0",
"size": 141598,
"upload_time": "2023-09-01T12:58:21",
"upload_time_iso_8601": "2023-09-01T12:58:21.412699Z",
"url": "https://files.pythonhosted.org/packages/7e/e5/ff097643eee0bfbe3a248a15613c23a473b6dae2d7c28180c351a1405016/opennyai-0.0.11.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-09-01 12:58:21",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "opennyai"
}