From 505e2df3a6183577649fd83a76ff540b49e4d398 Mon Sep 17 00:00:00 2001 From: maridda <49372461+maridda@users.noreply.github.com> Date: Fri, 21 Jun 2024 15:40:23 +0100 Subject: [PATCH] update scikit-learn to v. 1.5.0 --- .../nerval_jupyter-checkpoint.ipynb | 407 ++++++++++++++++++ dist/nerval-1.1.2-py3-none-any.whl | Bin 0 -> 10807 bytes dist/nerval-1.1.2.tar.gz | Bin 0 -> 12213 bytes nerval.egg-info/PKG-INFO | 167 +++++++ nerval.egg-info/SOURCES.txt | 11 + nerval.egg-info/dependency_links.txt | 1 + nerval.egg-info/top_level.txt | 1 + requirements.txt | 2 +- setup.cfg | 6 +- setup.py | 6 +- 10 files changed, 594 insertions(+), 7 deletions(-) create mode 100644 .ipynb_checkpoints/nerval_jupyter-checkpoint.ipynb create mode 100644 dist/nerval-1.1.2-py3-none-any.whl create mode 100644 dist/nerval-1.1.2.tar.gz create mode 100644 nerval.egg-info/PKG-INFO create mode 100644 nerval.egg-info/SOURCES.txt create mode 100644 nerval.egg-info/dependency_links.txt create mode 100644 nerval.egg-info/top_level.txt diff --git a/.ipynb_checkpoints/nerval_jupyter-checkpoint.ipynb b/.ipynb_checkpoints/nerval_jupyter-checkpoint.ipynb new file mode 100644 index 0000000..ed0b09e --- /dev/null +++ b/.ipynb_checkpoints/nerval_jupyter-checkpoint.ipynb @@ -0,0 +1,407 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "30ee1a4b", + "metadata": {}, + "source": [ + "# NER --- Confusion Matrix and Classification Report\n", + "\n", + "## How to use the nerval package" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "6cd5ce05", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied" + ] + } + ], + "source": [ + "!pip install nerval" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "11617be6", + "metadata": {}, + "outputs": [], + "source": [ + "from nerval import crm, plot_confusion_matrix" + ] + }, + { + "cell_type": "markdown", + "id": "8afddd0a", + "metadata": {}, + "source": [ + "## Test different dataset shapes :\n", + "\n", + "### 1. List of nested lists [[[ ]]] " + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "5fb18f8b", + "metadata": {}, + "outputs": [], + "source": [ + "y_true = [[['O', 'B-PER', 'I-PER', 'O', 'O', 'O', 'O', 'B-LOC', 'I-LOC'], \n", + " ['O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'B-DATE', 'O', 'O', 'O', 'O', 'O', 'B-ORG', 'I-ORG', 'I-ORG', \n", + " 'O', 'B-PER', 'O', 'O', 'O']], \n", + " [['B-TITLE', 'I-TITLE', 'B-PER', 'I-PER', 'O', 'O', 'O', 'O', 'O', 'O', 'O', \n", + " 'O', 'O', 'O', 'O', 'O', 'O', 'B-DATE', 'O', 'O', 'B-PER', 'O'], \n", + " ['B-LOC', 'O', 'O', 'O', 'O', 'B-ORG', \n", + " 'I-ORG', 'O', 'O', 'O', 'B-PER', 'I-PER', 'O', 'O', 'B-DATE', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', \n", + " 'B-LOC', 'O', 'O', 'O', 'O', 'O', 'O', 'O']]]\n", + "\n", + "\n", + "y_pred = [[['O', 'B-PER', 'O', 'O', 'O', 'O', 'O', 'O', 'B-LOC'],\n", + " ['B-GEOPOL', 'I-CURRENCY', 'B-GEOPOL', 'B-GEOPOL', 'I-ORG', 'O', 'O', 'B-GEOPOL', 'I-ORG', 'B-GEOPOL', 'O', \n", + " 'B-LOC', 'O', 'B-DATE', 'O', 'O', 'I-CURRENCY', 'I-PERCENT', 'O', 'B-DATE', 'O', 'B-DATE', 'O', 'I-PERCENT']], \n", + " [['B-TITLE', 'O', 'B-DATE', 'O', 'I-LOC', 'O', 'O', 'O', 'O', 'O', 'O', 'I-CURRENCY', 'O', 'I-PERCENT', 'O', \n", + " 'O', 'O', 'O', 'I-ORG', 'O', 'O', 'O'], \n", + " ['I-ORG', 'B-DATE', 'B-GEOPOL', 'I-CURRENCY', 'B-GEOPOL', 'I-CURRENCY', 'O', 'B-LOC', 'B-GEOPOL', 'B-GEOPOL', \n", + " 'B-LOC', 'I-CURRENCY', 'O', 'O', 'O', 'O', 'B-GEOPOL', 'B-GEOPOL', 'B-GEOPOL', 'I-CURRENCY', 'O', 'O', 'B-DATE', \n", + " 'I-CURRENCY', 'I-CURRENCY', 'O', 'B-GEOPOL', 'B-GEOPOL', 'B-DATE', 'O', 'I-PERCENT']]]" + ] + }, + { + "cell_type": "markdown", + "id": "b65ffed4", + "metadata": {}, + "source": [ + "### 2. Flat lists [ ]" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "a91cd31d", + "metadata": {}, + "outputs": [], + "source": [ + "# y_true = ['O', 'B-PER', 'I-PER', 'O', 'O', 'O', 'O', 'B-LOC', 'I-LOC']\n", + "# y_pred = ['O', 'B-PER', 'O', 'O', 'O', 'O', 'O', 'O', 'B-LOC']" + ] + }, + { + "cell_type": "markdown", + "id": "05b79b85", + "metadata": {}, + "source": [ + "### 3. Lists of flat lists [[ ]]" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "a16c5b85", + "metadata": {}, + "outputs": [], + "source": [ + "# y_true = [\n", + "# ['O', 'B-PER', 'I-PER', 'O', 'O', 'O', 'O', 'B-LOC', 'I-LOC'], \n", + "# ['O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'B-DATE', 'O', 'O', 'O', 'O', 'O', 'B-ORG', 'I-ORG', 'I-ORG', \n", + "# 'O', 'B-PER', 'O', 'O', 'O'], \n", + "# ['B-TITLE', 'I-TITLE', 'B-PER', 'I-PER', 'O', 'O', 'O', 'O', 'O', 'O', 'O', \n", + "# 'O', 'O', 'O', 'O', 'O', 'O', 'B-DATE', 'O', 'O', 'B-PER', 'O'], \n", + "# ['B-LOC', 'O', 'O', 'O', 'O', 'B-ORG', \n", + "# 'I-ORG', 'O', 'O', 'O', 'B-PER', 'I-PER', 'O', 'O', 'B-DATE', 'O', 'O', 'O', 'O', 'O', 'O', 'O', 'O', \n", + "# 'B-LOC', 'O', 'O', 'O', 'O', 'O', 'O', 'O']\n", + "# ]\n", + "\n", + "\n", + "# y_pred = [\n", + "# ['O', 'B-PER', 'O', 'O', 'O', 'O', 'O', 'O', 'B-LOC'],\n", + "# ['B-GEOPOL', 'I-CURRENCY', 'B-GEOPOL', 'B-GEOPOL', 'I-ORG', 'O', 'O', 'B-GEOPOL', 'I-ORG', 'B-GEOPOL', 'O', \n", + "# 'B-LOC', 'O', 'B-DATE', 'O', 'O', 'I-CURRENCY', 'I-PERCENT', 'O', 'B-DATE', 'O', 'B-DATE', 'O', 'I-PERCENT'], \n", + "# ['B-TITLE', 'O', 'B-DATE', 'O', 'I-LOC', 'O', 'O', 'O', 'O', 'O', 'O', 'I-CURRENCY', 'O', 'I-PERCENT', 'O', \n", + "# 'O', 'O', 'O', 'I-ORG', 'O', 'O', 'O'], \n", + "# ['I-ORG', 'B-DATE', 'B-GEOPOL', 'I-CURRENCY', 'B-GEOPOL', 'I-CURRENCY', 'O', 'B-LOC', 'B-GEOPOL', 'B-GEOPOL', \n", + "# 'B-LOC', 'I-CURRENCY', 'O', 'O', 'O', 'O', 'B-GEOPOL', 'B-GEOPOL', 'B-GEOPOL', 'I-CURRENCY', 'O', 'O', 'B-DATE', \n", + "# 'I-CURRENCY', 'I-CURRENCY', 'O', 'B-GEOPOL', 'B-GEOPOL', 'B-DATE', 'O', 'I-PERCENT']\n", + "# ]\n" + ] + }, + { + "cell_type": "markdown", + "id": "90d3f2d7", + "metadata": {}, + "source": [ + "## Create Classification Report and Confusion Matrix" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "70df9859", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Dataset was in the wrong shape: list of nested lists.\n", + "It has been converted into the correct shape: list of flat lists. \n", + "\n", + "************************************************************************************************************************\n", + "Dataset was in the wrong shape: list of nested lists.\n", + "It has been converted into the correct shape: list of flat lists. \n", + "\n", + "************************************************************************************************************************\n", + "True Entities: 14\n", + "Pred Entities: 35 \n", + "\n", + "True Entities with 3 or more tags: 1\n", + "Pred Entities with 3 or more tags: 1 \n", + "\n", + "True positives: 0\n", + "False positives (true = 'O'): 29\n", + "False positives (true <> pred): 6\n", + "ToT False positives: 35\n", + "False negatives: 8 \n", + "\n" + ] + } + ], + "source": [ + "cr, cm, cm_labels = crm(y_true, y_pred, scheme='BIO')" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "bb3d4ba7", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1_score true_entities pred_entities\n", + "PER 0.00 0.00 0.00 5.00 0.00\n", + "LOC 0.00 0.00 0.00 3.00 5.00\n", + "DATE 0.00 0.00 0.00 3.00 7.00\n", + "ORG 0.00 0.00 0.00 2.00 2.00\n", + "TITLE 0.00 0.00 0.00 1.00 0.00\n", + "PERCENT 0.00 0.00 0.00 0.00 3.00\n", + "GEOPOL 0.00 0.00 0.00 0.00 14.00\n", + "PER__ 0.00 0.00 0.00 0.00 1.00\n", + "TITLE__ 0.00 0.00 0.00 0.00 1.00\n", + "CURRENCY 0.00 0.00 0.00 0.00 2.00\n", + "micro_avg 0.00 0.00 0.00 14.00 35.00\n", + "macro_avg 0.00 0.00 0.00 14.00 35.00\n", + "weighted_avg 0.00 0.00 0.00 14.00 35.00\n" + ] + } + ], + "source": [ + "print(cr)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "acb20204", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "11\n", + "['CURRENCY', 'DATE', 'GEOPOL', 'LOC', 'O', 'ORG', 'PER', 'PERCENT', 'PER__', 'TITLE', 'TITLE__']\n" + ] + } + ], + "source": [ + "print(len(cm_labels))\n", + "print(cm_labels)\n", + "# print(cm)" + ] + }, + { + "cell_type": "markdown", + "id": "f8bb9a8e", + "metadata": {}, + "source": [ + "## Plot Not Normalised Confusion Matrix" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "59048975", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plot_confusion_matrix(cm, \n", + " cm_labels,\n", + " show=True, \n", + " save=False, \n", + " img_path=None, \n", + " normalize=None, # normalise: None, 'true', 'pred', 'all'. Default is None.\n", + " decimal_places=2,\n", + " figsize=(15,15), \n", + " SMALL_SIZE=8, \n", + " MEDIUM_SIZE=12, \n", + " BIGGER_SIZE=14, \n", + " cmap='OrRd', \n", + " xticks_rotation='vertical', \n", + " title='Confusion Matrix')" + ] + }, + { + "cell_type": "markdown", + "id": "52234267", + "metadata": {}, + "source": [ + "## Normalise = 'true'\n", + "\n", + "In an unnormalised confusion matrix, the sum of each row represents the actual total value for each class label (ORG, PER, LOC,...).\n", + "\n", + "**The confusion matrix normalised on 'true' will show what % of that actual total was predicted by the classifier to belong to each one of the available classes.**\n", + "\n", + "### Note: the values on the diagonal match the RECALL scores in the classification report" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "ec9a2092", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plot_confusion_matrix(cm, \n", + " cm_labels,\n", + " show=True, \n", + " save=False, \n", + " img_path=None, \n", + " normalize='true', # normalise: None, 'true', 'pred', 'all'. Default is None.\n", + " decimal_places=2,\n", + " figsize=(15,15), \n", + " SMALL_SIZE=8, \n", + " MEDIUM_SIZE=12, \n", + " BIGGER_SIZE=14, \n", + " cmap='OrRd', \n", + " xticks_rotation='vertical', \n", + " title='Confusion Matrix: normalize=true')" + ] + }, + { + "cell_type": "markdown", + "id": "345c785a", + "metadata": {}, + "source": [ + "## Normalise = 'pred'\n", + "\n", + "In an unnormalised confusion matrix, the sum of each column represents the predicted total value for each class label (ORG, PER, LOC,...).\n", + "\n", + "**The confusion matrix normalised on 'pred' will show what % of the total class predictions was made against each of the available classes.**\n", + "\n", + "### Note: the values on the diagonal match the PRECISION scores in the classification report" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "a05b6fe9", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plot_confusion_matrix(cm, \n", + " cm_labels,\n", + " show=True, \n", + " save=False, \n", + " img_path=None, \n", + " normalize='pred', # normalise: None, 'true', 'pred', 'all'. Default is None.\n", + " decimal_places=2,\n", + " figsize=(15,15), \n", + " SMALL_SIZE=8, \n", + " MEDIUM_SIZE=12, \n", + " BIGGER_SIZE=14, \n", + " cmap='OrRd', \n", + " xticks_rotation='vertical', \n", + " title='Confusion Matrix: normalize=pred')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0f6efc58", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "winter", + "language": "python", + "name": "winter" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.7" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/dist/nerval-1.1.2-py3-none-any.whl b/dist/nerval-1.1.2-py3-none-any.whl new file mode 100644 index 0000000000000000000000000000000000000000..ee39c5831606221eb70d47ab08be4e2cbc065f24 GIT binary patch literal 10807 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 N0Q8R^2`T@z`hPtZEJ*+W literal 0 HcmV?d00001 diff --git a/dist/nerval-1.1.2.tar.gz b/dist/nerval-1.1.2.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..689872a53a8d8e1897cc47affc50f66e57c6dd64 GIT binary patch literal 12213 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.6 +Description-Content-Type: text/markdown +License-File: LICENCE.txt + +# nerval +Entity-level confusion matrix and classification report to evaluate Named Entity Recognition (NER) models. + + +## Labelling schemes supported: +- IO +- BIO1 (IOB1) +- BIO2 (IOB2) +- IOE1 +- IOE2 +- IOBES +- BILOU +- BMEWO + + +## Options for the 'scheme' argument: +- **BIO** for the following schemes: IO / BIO1 (IOB1) / BIO2 (IOB2) / IOBES / BILOU / BMEWO +- **IOE** for the following schemes: IOE1 / IOE2 +- **BIO** is the default scheme. + + +## Output: +- Classification report +- Confusion matrix +- Labels for the confusion matrix +- Confusion matrix plot + + +## How to use it: + +```python +>>> from nerval import crm + +>>> y_true = [['O', 'B-PER', 'I-PER', 'O', 'O', 'O', 'O', 'B-LOC', 'I-LOC']] +>>> y_pred = [['O', 'B-PER', 'O', 'O', 'O', 'O', 'O', 'O', 'B-LOC']] + +>>> cr, cm, cm_labels = crm(y_true, y_pred, scheme='BIO') +True Entities: 2 +Pred Entities: 2 + +True Entities with 3 or more tags: 0 +Pred Entities with 3 or more tags: 0 + +True positives: 0 +False positives (true = 'O'): 1 +False positives (true <> pred): 1 +ToT False positives: 2 +False negatives: 1 + +>>> print(cr) +precision recall f1_score true_entities pred_entities +PER 0.00 0.00 0.00 1.00 0.00 +LOC 0.00 0.00 0.00 1.00 1.00 +PER__ 0.00 0.00 0.00 0.00 1.00 +micro_avg 0.00 0.00 0.00 2.00 2.00 +macro_avg 0.00 0.00 0.00 2.00 2.00 +weighted_avg 0.00 0.00 0.00 2.00 2.00 + +>>> print(cm) +[[0 1 0 0] + [1 0 0 0] + [0 0 0 1] + [0 0 0 0]] + +>>> print(cm_labels) +['LOC', 'O', 'PER', 'PER__'] +``` + +```python +>>> from nerval import plot_confusion_matrix + +>>> y_true = [['O', 'B-PER', 'I-PER', 'O', 'O', 'O', 'O', 'B-LOC', 'I-LOC']] +>>> y_pred = [['O', 'B-PER', 'O', 'O', 'O', 'O', 'O', 'O', 'B-LOC']] + +>>> plot_confusion_matrix(cm, cm_labels, show=True, save=False, img_path=None, normalize=None, decimal_places=2, figsize=(15,15), SMALL_SIZE=8, MEDIUM_SIZE=12, BIGGER_SIZE=14, cmap='OrRd', xticks_rotation='vertical', title='Confusion Matrix') + +>>> plot_confusion_matrix(cm, cm_labels, show=True, save=True, img_path=None) + +>>> plot_confusion_matrix(cm, cm_labels, show=True, save=True, img_path=r'C:\Users\...\my_conf_matrix.png') + +>>> plot_confusion_matrix(cm, cm_labels, show=False, save=True, img_path=None) + +>>> plot_confusion_matrix(cm, cm_labels, show=False, save=True, img_path=r'C:\Users\...\my_conf_matrix.png') +``` + +### Note 1: +**y_true** and **y_pred** could be: +- flat lists +- lists of flat lists +- lists of nested lists. + +Flat lists and lists of nested lists will be converted to lists of lists. + + +### Note 2: +The __ at the end of some entities means that true and pred have the same entity name for the first token but the prediction is somewhat different from the true label. +Examples: +```python +>>> y_true = ['B-ORG', 'I-ORG', 'I-ORG'] +>>> y_pred = ['B-ORG'] + +>>> y_true = ['B-ORG', 'I-ORG', 'I-ORG'] +>>> y_pred = ['B-ORG', 'I-ORG', 'I-ORG', 'I-ORG', 'I-ORG'] + +>>> y_true = ['B-ORG', 'I-ORG', 'I-ORG'] +>>> y_pred = ['B-ORG', 'I-PER'] + +>>> y_true = ['B-ORG', 'I-ORG', 'I-ORG'] +>>> y_pred = ['I-ORG', 'I-PER'] +``` + +### Note 3: +The normalize argument could be: +- None +- 'true' +- 'pred' +- 'all' + +Default is None. + + +### Note 4: +In case of division by zero, the result will default to zero. + +### Note 5: +Parameters in function plot_confusion_matrix(): +- show: show the plot (default: True) +- save: save the plot (default: False) +- img_path: where to save the plot - e.g. r'C:\Users\User\...\my_conf_matrix.png' (default: None - this means save the plot in current dir) + + +## Installation +```bash +pip install nerval +conda install -c conda-forge nerval +``` + + +## License +[MIT](https://github.com/maridda/nerval/blob/main/LICENCE.txt) + + +## Citation +```text +@misc{nerval, + title={{nerval}: Entity-level confusion matrix and classification report to evaluate Named Entity Recognition (NER) models.}, + url={https://github.com/maridda/nerval}, + note={Software available from https://github.com/maridda/nerval}, + author={Mariangela D'Addato}, + year={2022}, +} +``` diff --git a/nerval.egg-info/SOURCES.txt b/nerval.egg-info/SOURCES.txt new file mode 100644 index 0000000..f51e40e --- /dev/null +++ b/nerval.egg-info/SOURCES.txt @@ -0,0 +1,11 @@ +LICENCE.txt +README.md +pyproject.toml +setup.cfg +setup.py +nerval/__init__.py +nerval/nerval.py +nerval.egg-info/PKG-INFO +nerval.egg-info/SOURCES.txt +nerval.egg-info/dependency_links.txt +nerval.egg-info/top_level.txt \ No newline at end of file diff --git a/nerval.egg-info/dependency_links.txt b/nerval.egg-info/dependency_links.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/nerval.egg-info/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/nerval.egg-info/top_level.txt b/nerval.egg-info/top_level.txt new file mode 100644 index 0000000..da53a65 --- /dev/null +++ b/nerval.egg-info/top_level.txt @@ -0,0 +1 @@ +nerval diff --git a/requirements.txt b/requirements.txt index 19ab767..2f3a80d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ numpy==1.22.3 pandas==1.4.4 matplotlib-base==3.5.3 -scikit-learn==1.1.1 +scikit-learn==1.5.0 diff --git a/setup.cfg b/setup.cfg index 78419d2..fb4a3ae 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,14 +1,14 @@ [metadata] name = nerval -version = 1.1.1 +version = 1.1.2 author = Mariangela D'Addato author_email = mdadda.py@gmail.com description = Entity-level confusion matrix and classification report to evaluate Named Entity Recognition (NER) models. long_description = file: README.md long_description_content_type = text/markdown -url = https://github.com/mdadda/nerval +url = https://github.com/maridda/nerval project_urls = - Bug Tracker = https://github.com/mdadda/nerval/issues + Bug Tracker = https://github.com/maridda/nerval/issues classifiers = Programming Language :: Python :: 3 License :: OSI Approved :: MIT License diff --git a/setup.py b/setup.py index ff23dcb..2c211e5 100644 --- a/setup.py +++ b/setup.py @@ -5,15 +5,15 @@ setuptools.setup( name="nerval", - version="1.1.1", + version="1.1.2", author="Mariangela D'Addato", author_email="mdadda.py@gmail.com", description="Entity-level confusion matrix and classification report to evaluate Named Entity Recognition (NER) models.", long_description=long_description, long_description_content_type="text/markdown", - url="https://github.com/mdadda/nerval", + url="https://github.com/maridda/nerval", project_urls={ - "Bug Tracker": "https://github.com/mdadda/nerval/issues", + "Bug Tracker": "https://github.com/maridda/nerval/issues", }, classifiers=[ "Programming Language :: Python :: 3",