GUI用于为命名实体识别目的手动注释文本
ner-annotator的Python项目详细描述
命名实体识别注释器
这个存储库包含一个NER实用程序,可以对给定的一些实体进行文本注释。在
Dark GUI | Light GUI |
---|---|
安装
要安装这个GUI,您需要确保您的系统上有Python 3
。
{然后运行到项目中,^然后运行到cd2:
pip install .
这将安装ner_annotator
包及其所需的依赖项(主要是PyQt5
)。在
使用
要运行此实用程序,请执行以下命令:
^{pr2}$这里,<input>
是输入文本文件的路径,应该包含训练文本行,用换行符分隔;<output>
是保存.json
输出文件的路径(如果没有给出,则默认为与输入文件相同的目录);<entities>
是要注释的实体列表。在
例如,我可以这样运行程序:
ner_annotator '~/Desktop/train.txt' -e 'BirthDate''Name'
您还可以选择将现有的NER模型传递给注释器,以便识别使用该模型的实体(GUI中上一行和下一行控件之间的按钮),并最终修改/添加/删除它们。例如:
ner_annotator '~/Desktop/train.txt' -e 'BirthDate''Name' -m '~/Desktop/NER'
目前,只支持SpaCy
模型,但是您可以通过检查ner_annotator
包中的model.py
文件来为项目做出贡献并添加与其他NER模型的兼容性。在
这个包最棒的地方在于它能够自动地为给定的模型识别正确的库(也就是说,您不必指定您的模型应该使用SpaCy
或任何其他NLP库来加载)。在
配置文件
为了获得更快的注释体验,您可以保存模型实体名称,以便下次需要此工具时重用它们。
为此,您需要创建一个.json
文件(请参见assets/json/config.json),其模式如下:
{"models":[{"name":"example-1","entities":["entity-1-1","entity-1-2","entity-1-3"]},{"name":"example-2","entities":["entity-2-1","entity-2-2"]}]}
例如,要使用模型example-1
的实体,可以运行:
python3 annotator.py '~/Desktop/train.txt' -c '~/Desktop/config.json' -n 'example-1'
这里,~/Desktop/config.json
是上述.json
文件的路径。
此bash命令在本例中是等效的:
python3 annotator.py '~/Desktop/train.txt' -e 'entity-1-1''entity-1-2''entity-1-3'
输出
实用程序软件将使用以下模式输出.json
文件:
[{"content":"text","entities":[[0,1,"entity"]]}]
通过将-p
选项传递给ner_annotator
工具,可以将此输出转换为NER模型所需的特定格式。这样,在输出文件夹中,您还将找到一个pickle
文件(与给定的.json
输出文件同名,但没有扩展名),然后可以使用该文件在另一个程序中使用所请求的NLP库加载实体。要加载保存的pickle文件,可以按照以下行执行操作:
importpicklepickle.load(open("~/Desktop/output",'rb'))
在这个例子中,ner_annotator
要么用-o ~/Desktop/output.json
调用,要么不使用-o
选项而用-i ~/Desktop/train.txt
或类似的方式调用。在
目前,只提供SpaCy
模型转换。在
分配
此软件包在PyPy
上可用,因此您也可以通过运行以下命令来安装它:
pip install ner-annotator
您还可以安装额外的软件包,如SpaCy
:
pip install ner-annotator[spacy]
Personal note:要将包的新版本上载到PyPy,只需执行scripts/deploy.sh
,插入{
多亏了
- 图形用户界面图标由Icons8提供
- 项目
标签: