跳转到主要内容

Jupyter上NER任务的注解工具

项目描述

PyLighter:命名实体识别任务的注释工具

PyLighter是一个工具,允许数据科学家直接在Jupyter中对命名实体识别(NER)任务的数据集进行注释。

pylighter_gif

内容

安装

从Pypi: https://pypi.ac.cn/project/pylighter/

pip install pylighter
jupyter nbextension enable --py widgetsnbextension

从Github: https://github.com/PayLead/PyLighter

git clone git@github.com:PayLead/PyLighter.git
cd PyLighter
python setup.py install
jupyter nbextension enable --py widgetsnbextension

演示

演示文件夹包含PyLighter使用的示例。要查看它们,请打开Jupyter中的任何ipynb文件。

基本用法

PyLighter的使用案例是轻松在Jupyter中注释数据集。因此,让我们首先为这个示例定义一个数据集

corpus = [
    "PyLighter is an annotation tool for NER tasks directly on Jupyter. "
    + "It aims on helping data scientists easily and quickly annotate datasets. "
    + "This tool was developed by Paylead.",
    "PayLead is a fintech company specializing in transaction data analysis. "
    + "Paylead brings retail and banking together, so customers get rewarded when they buy. "
    + "Welcome to the data-for-value economy."
]

现在让我们开始注释!

from pylighter import Annotation

annotation = Annotation(corpus)

运行该单元格将给出以下输出

screenshot_basic_usage.png

您现在可以使用预定义的标签 l1l2 等注释实体。

当您的注释完成后,您可以通过点击保存按钮或检索当前笔记本中的结果。

  • 保存按钮将结果保存在名为 annotation.csv 的csv文件中,其中包含两列:文档和标签。
  • 您可以在 annotation.labels 中访问您的注释标签。

注意:给定的标签是IOB2格式。

高级用法

上面的示例运行良好,但PyLighter可以定制以最好地适应您的特定用例。

使用已注释的数据集

在大多数情况下,您想要使用已注释的数据集或简单地继续注释。

为此,您可以使用名为 labels 的参数,其中包含数据集的标签。此外,如果您在 th 个文档处停止,您可以使用 start_index=i 直接返回到停止的位置。

screenshot_pre_annotated

您可以在这里查看更多关于此的信息。

更改标签名称

PyLighter使用 l1l2、...、l7 作为默认标签名称,但在大多数情况下,您希望拥有显式的标签,如 名词动词 等。

您可以使用 labels_names 参数定义自己的标签名称。您还可以使用 labels_colors 参数定义自己的标签颜色,格式为HEX。

screenshot_labels_changed

您可以在这里查看更多关于此的信息。

文档样式

您可以使用 char_params 参数调整字体大小、两个字符之间的最小距离和空格的大小。

char_params的默认值为

# Each field expects css value as a string (ex:"10px", "1em", "large", etc.)
char_params = {
    "font_size": "medium", 
    "width_white_space": "1Opx",
    "min_width_between_chars": "4px",
}

添加附加信息

在某些情况下,您可能想要了解有关当前文档的附加信息,例如其来源。

要实现这个功能,您可以使用参数 additional_infos。这个参数必须是一个形状为 (语料库大小附加信息数量) 的 pandas DataFrame。DataFrame 的第 i 行将与语料库的第 i 个元素相关联。

给定的 DataFrame 的元素需要有合适的字符串表示,以便正确显示。

例如,要将来源添加到语料库的每个元素中

import pandas as pd

# define corpus of size 2
additional_infos = pd.DataFrame({"source":["Github", "Paylead.fr"]})
annotation = Annotation(corpus, additional_infos=additional_infos)

结果将是

screenshot_additional_information

您可以在这个示例中了解更多。

添加附加输出

在某些情况下,您可能想将文档标记为难以标注,或标记为错误,或给出一个表示您对标注置信度的值等。简而言之,您需要返回附加信息。

要实现这个功能,您可以使用参数: additional_outputs_elements。这个参数期望一个 pylighter.AdditionalOutputElement 列表。

pylighter.AdditionalOutputElement 定义如下

from pyligher import AdditionalOutputElement

AdditionalOutputElement(
    name="name_of_my_element",
    display_type="type_of_display" # checkbox, int_text, float_text, text, text_area
    description="Description of the element to display",
    default_value="Default value for the element"
)

以下是一个示例

screenshot_additional_outputs

注意:附加输出将被添加到保存文件中。但您也可以使用 annotation.additional_outputs_values 来检索它们。您还可以使用之前返回的附加输出值,参数为: additional_outputs_values(与标签相同)。

您可以在这个示例中了解更多。

使用键盘快捷键

标注任务相当无聊。因此,您可能希望使用键盘快捷键轻松更改文档或选择其他标签。

默认情况下,只有少数快捷键被定义

  • 下一个: Alt + n
  • 上一个: Alt + p
  • 跳过: Alt + s
  • 保存: Shift + Alt + s

但是,您可以使用参数: standard_shortcutslabels_shorcuts 完全自定义它们。其中 standard_shortcuts 参数用于重新定义标准按钮的快捷键,如下一个按钮的快捷键,而

快捷键定义如下

from pylighter import Shortcut

Shortcut(
    name="skip",  # Name of the button to bind on (ex: "next", "skip") or name of the label (ex: "l1", "l2", or one you defined)
    key="Ò",  # Usually represents the character that is displayed.
    code="KeyS",  # Usually represents the key that is pressed.
    shift_key=False,  # Wether the shift key is pressed
    alt_key=True,
    ctrl_key=False
)

知道 keycode 的值非常困难。这取决于许多不同的因素,例如您的键盘、浏览器等。

因此,您可以使用 ShortcutHelper 来选择正确的快捷键。以下是一个示例。

from pylighter import ShortcutHelper

ShortcutHelper()

screenshot_shortcut_helper

您可以在这个示例中了解更多。

贡献

测试

PyLighter 使用 pytest。因此,测试可以使用以下命令运行

make test

PyLighter 使用 flake8isortcheck-manifest 来控制代码质量。您可以使用以下命令测试代码质量

make test-quality

如果您想测试包括打包在内的一切,您可以运行

make test-all

许可证

MIT 许可证

pylighter_gif

项目详情


下载文件

下载适合您平台的应用程序。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

pylighter-0.0.3.tar.gz (32.6 kB 查看哈希值

上传时间:

构建分布

pylighter-0.0.3-py2.py3-none-any.whl (25.5 kB 查看哈希值

上传时间: Python 2 Python 3

由以下机构支持