基于终端的文本注释工具
slate-nlp的Python项目详细描述
这是一个标记文本文档的工具。 Slate支持不同规模(字符、标记、行或文档的跨度)和不同类型(自由文本、标签和链接)的批注。 这包括一系列任务,如词性标注、命名实体识别、文本分类(包括情感分析)、话语结构等。
为什么要在其他文本注释工具的范围内使用这个工具?
- 快
- 琐碎的安装
- 将所有屏幕空间集中在批注上(适合大字体)
- 基于终端,因此它在受限制的环境中工作(例如,仅允许对计算机的ssh访问)
- 不难配置和修改
安装
两个选项:
<H3>1。使用PIP安装pip install slate-nlp
然后以以下两种方式之一从任何目录运行:
slate
python -m slate
<H3>2。或在不安装的情况下下载并运行作为zip文件下载:
curl https://codeload.github.com/jkkummerfeld/slate/zip/master -o "slate.zip" unzip slate.zip cd slate-master
或者克隆存储库:
git clone https://github.com/jkkummerfeld/slate
cd slate
然后使用以下任一选项运行:
python slate.py
./slate.py
要从其他目录运行,请使用:
python PATH_TO_SLATE/slate.py
PATH_TO_SLATE/slate.py
要求
这段代码只需要python(2或3),可以开箱即用。 要使用该工具,您的终端必须至少宽80个字符,高20个字符。
引用
如果您在工作中使用此工具,请引用:
@InProceedings{acl19slate,
title = {SLATE: A Super-Lightweight Annotation Tool for Experts},
author = {Jonathan K. Kummerfeld},
booktitle = {Proceedings of {ACL} 2019, System Demonstrations},
location = {Florence, Italy},
month = {July},
year = {2019},
pages = {},
url = {https://github.com/jkkummerfeld/slate/raw/master/paper/acl19slate.pdf},
software = {https://jkk.name/slate},
}
开始
注意:如果您使用pip安装,请在下面的任何地方使用 运行 输入文件应该是纯文本,可以随意组织。
使用您最喜欢的分句和/或标记软件(例如,spacy)准备数据。
如果您使用python 3,那么应该支持unicode,但是代码还没有用非英语文本进行过广泛的测试(请分享任何问题!) 启动该工具时,默认情况下会显示一组核心命令。
下面还指定了这些命令以及其他命令。 该工具将注释保存在单独的文件中( 一些注释: 此存储库中包含一组交互式教程,教您如何从工具本身使用工具。 此工具已用于两个注释ef涉及多个注释器的Forts(Durrett等人,2017年和Kummerfeld等人,2018年)。
我们的工作流程如下: 您还可以在文件中定义参数并按如下方式传入: 该工具一次显示一个纯文本文件。命令是: 共享命令: 注意:特殊键,如 若要注释多个文件,请指定多个作为参数。
为了获得更好的控制,请在用 例如,这些命令将创建一个文件列表,使用它,然后稍后返回: 当包含 注:判决没有经过彻底的检验。
请分享你遇到的任何问题! 颜色和钥匙可定制。对于标签,默认值为: 对于链接,默认值为: Slate有一个相对较小的代码库(大约2200行),旨在使添加新功能不太困难。
代码划分如下: 用于确定在代码的两个部分中的颜色分布的逻辑。
在 添加新命令包括: 如果您有任何问题,请: 如果您在代码中发现错误,请提交一个问题,甚至更好,一个带有修复的请求。 该工具部分基于IBM根据合同4915012629支持的工作,以及ONR根据Muri Grant N000140911081支持的工作。
所表达的任何意见、发现、结论或建议都是作者的,并不一定反映IBM的观点。slate
python slate.py
python slate.py<;filename>;
以开始在标记跨度上使用标签注释<;filename>;
。
整个接口都包含在终端中,没有gui。
使用命令行参数,您可以改变属性,例如注释类型(标签或链接)和注释范围(字符、标记、行、文档)。<;filename>;。默认情况下,注释
可以根据以下所述的文件列表进行更改。
注释文件的格式为每个注释项一行。
该项是用一组数字指定的。
对于标签,该项后接连字符和标签列表。
对于链接,在连字符之前的行上有两个项。
例如,这是两个注释文件,一个用于标记跨距的标签,另一个用于行之间的链接:==> label.annotations <==
(2, 1) - label:a
((3, 5), (3, 8)) - label:a
(7, 8) - label:s label:a
==> link.annotations <==
13 0 -
13 7 -
16 7 -
教程
< /广告><正文>任务 命令
标记文档中文本的跨距 python slate.py教程/label.md-t分类-s令牌-o-hh-l log.tutorial.label.txt
链接文档中的行 python slate.py教程/link.md-t link-s line-o-hh-l log.tutorial.link.txt
比较注释 待创建 示例工作流
详细使用说明
调用选项
usage: slate.py [-h] [-d DATA_LIST [DATA_LIST ...]] [-t {categorical,link}]
[-s {character,token,line,document}] [-c CONFIG_FILE]
[-l LOG_PREFIX] [-ld] [-hh] [-r] [-o] [-ps] [-pf]
[--do-not-show-linked] [--alternate-comparisons]
[data [data ...]]
A tool for annotating text data.
positional arguments:
data Files to be annotated
optional arguments:
-h, --help show this help message and exit
-d DATA_LIST [DATA_LIST ...], --data-list DATA_LIST [DATA_LIST ...]
Files containing lists of files to be annotated
-t {categorical,link}, --ann-type {categorical,link}
The type of annotation being done.
-s {character,token,line,document}, --ann-scope {character,token,line,document}
The scope of annotation being done.
-c CONFIG_FILE, --config-file CONFIG_FILE
A file containing configuration information.
-l LOG_PREFIX, --log-prefix LOG_PREFIX
Prefix for logging files
-ld, --log-debug Provide detailed logging.
-hh, --hide-help Do not show help on startup.
-r, --readonly Do not allow changes or save annotations.
-o, --overwrite If they exist already, read abd overwrite output
files.
-ps, --prevent-self-links
Prevent an item from being linked to itself.
-pf, --prevent-forward-links
Prevent a link from an item to one after it.
--do-not-show-linked Do not have a special color to indicate any linked
token.
--alternate-comparisons
Activate alternative way of showing different
annotations (one colour per set of markings, rather
than counts).
pip install slate-nlp
0
键绑定
< /广告><正文>键入 <>键标记影响
链接影响
移动 j或 向左移动 将所选项目向左移动 i或 上移一行 将所选项目上移一行 o或 向下移动一行 将所选项目下移一行 ;或。 向右移动 将所选项目向右移动 j或[移位+] 转到行的开头 向左移动链接项 i或[移位+] 转到第一行 将链接项上移一行 o或[移位+] 转到最后一行 将链接项下移一行 :或[移位+] 转到行的末尾 向右移动链接项 编辑范围 m 向左延伸 向左扩展选定项 k 合同左侧 合同选定项目左 / 向右延伸 向右扩展选定项 l 右侧合同 合同选定项目权限 m - 向左扩展链接项 k - 合同链接项左 - 向右扩展链接项 l - 合同链接项权利 标签注释(默认) 空格然后a [取消]将此项目标记为
- 空格然后s [取消]将此项目标记为s - 空格然后d [取消]将此项目标记为D - 空格然后v [取消]将此项标记为v - 链接注释 d - 创建链接并向右/向下移动 d - 创建链接 注释模式 u 撤消对此项目的批注 撤消当前项目的所有批注 < /广告><正文>键入 模式 <>键影响
搜索 正常 \ 进入查询编辑模式 查询 < KBD>?或输入退出查询编辑模式 查询 < KBD>!或退格删除查询中的最后一个字符 查询 除了以外的字符?和! 向查询添加字符 正常 p 转到上一个匹配项 正常 n 转到下一场比赛 正常 p 转到链接行的上一个匹配项 正常 n 转到下一个链接行匹配项 指定文本标签 正常 t 进入标签编辑模式 标签 < KBD>?或输入退出标签编辑模式并指定标签 标签 < KBD>!或退格删除标签中的最后一个字符 标签 除了以外的字符?和! 向标签添加字符 保存、退出等
正常 保存并转到下一个文件 正常 [ 保存并转到上一个文件 正常 q 保存并退出 正常 s 保存 正常 q 退出 其他 正常 切换行号 正常 h 切换帮助信息(默认打开) 正常 {或向上翻页 向上移动视图5行 正常 }或向下翻页 向下移动视图5行 正常 >;然后p 切换显示文件进度 正常 >;然后l 切换显示标签的图例 正常 >;然后m 切换显示当前项上的标记 enter
和backspace
在非OS-X操作系统上可能不起作用。这就是为什么在所有使用它们的地方,我们都有替代品。其他
--data list
指定的文件中提供一个文件列表。
列表格式如下,[]表示可选值:pip install slate-nlp
1
pip install slate-nlp
2
附加注释文件
时,将激活裁决模式。
默认情况下,所有其他文件中显示的所有批注都将添加到当前批注中。
文本中的分歧是彩色的,但一旦做出决定(使用常规注释命令),分歧就会消失。定制
修改代码
annotate.py是主程序,它有一个核心循环来获取用户输入。
config.py
包含默认配置,包括颜色和键盘绑定。data.py
,用于读取、存储和写入数据的类。view.py
,呈现屏幕。data.py
中,确定项的标签集。
在view.py
中,这组标签用于选择合适的颜色。config.py中的
input_action_list
annotate.py中的
action\u to\u函数中添加从名称到函数的映射
annotate.py中添加或修改函数
data.py
或view.py
以应用操作
问题
贡献
致谢
推荐PyPI第三方库