跳转到主要内容

使用e2e对荷兰语进行指代消解

项目描述

Python package Scrutinizer Code Quality codecov DOI

e2e-Dutch

荷兰语e2e核心指模型代码。代码基于原始的英语e2e模型,并修改以适用于荷兰语。如果您使用此代码,请引用它,并引用原始的e2e论文

此代码可用于使用SoNaR-1数据集训练的荷兰语预训练模型。模型文件和文档可在10.5281/zenodo.5153574找到

安装

要求

  • Python 3.6或3.7
  • pip
  • tensorflow v2.0.0或更高版本

在此存储库中运行

pip install -r requirements.txt
pip install .

或者,您可以直接从Pypi安装

pip install tensorflow
pip install e2e-Dutch

快速入门 - Stanza

e2edutch可以作为Stanza管道的一部分使用。

指代与Stanza实体类似添加

  • 一个文档有一个属性clusters,它是一个指代簇列表;
  • 一个指代簇是一个Stanza Spans列表。
import stanza
import e2edutch.stanza

nlp = stanza.Pipeline(lang='nl', processors='tokenize,coref')

doc = nlp('Dit is een test document. Dit document bevat coreferenties.')
print ([[span.text for span in cluster] for cluster in doc.clusters])

请注意,您首先需要使用stanza.download('nl')下载stanza模型。在加载管道时,e2e-Dutch模型文件将自动下载到stanza资源目录。

快速开始

有预训练模型可供下载

python -m e2edutch.download [-d DATAPATH]

这将下载模型文件,默认位置是python包位置内的data目录。也可以使用DATAPATH参数手动设置,或者通过指定环境变量E2E_HOME

预训练模型可用于预测conll 2012文件、jsonlines文件、NAF文件或纯文本文件(在后一种情况下,stanza包将用于分词)。

python -m e2edutch.predict.py [-h] [-o OUTPUT_FILE] [-f {conll,jsonlines,naf}] [-m MODEL] [-c WORD_COL] [--cfg_file CFG_FILE] [--model_cfg_file MODEL_CFG_FILE] [-v] input_filename

positional arguments:
  input_filename

optional arguments:
  -h, --help            show this help message and exit
  -o OUTPUT_FILE, --output_file OUTPUT_FILE
  -f {conll,jsonlines,naf}, --format_out {conll,jsonlines,naf}
  -m MODEL, --model MODEL
                        model name
  -c WORD_COL, --word_col WORD_COL
  --cfg_file CFG_FILE   config file
  --model_cfg_file MODEL_CFG_FILE
                        model config file
  -v, --verbose

用户特定的配置(如数据目录、数据文件等)可以提供在单独的配置文件中,默认值在cfg/defaults.conf中指定。当您想使用用户指定的模型而不是预训练模型进行预测时,model_cfg_filemodel选项是相关的(有关如何训练模型的说明,请参阅下文)。

训练自己的模型

要训练新模型

  • 确保模型配置文件(默认:e2edutch/cfg/models.conf)描述了您要训练的模型
  • 确保您的配置文件(默认:e2edutch/cfg/defaults.conf)包含了您想要用于训练的数据文件
  • 运行scripts/setup_train.sh e2edutch/cfg/defaults.conf。此脚本将conll2012数据转换为jsonlines文件,并缓存单词和上下文嵌入。
  • 如果您想启用GPU的使用,请设置环境变量
export GPU=0
  • 运行训练脚本
python -m e2edutch.train <model-name>

引用此代码

如果您在研究中使用此代码,请按以下方式引用

@misc{YourReferenceHere,
author = {
            Dafne van Kuppevelt and
            Jisk Attema
         },
title  = {e2e-Dutch},
doi    = {10.5281/zenodo.4146960},
url    = {https://github.com/Filter-Bubble/e2e-Dutch}
}

由于代码主要基于原始的英文e2e模型,请确保也引用原始e2e论文

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

e2e-Dutch-0.4.1.tar.gz (33.4 kB 查看哈希值)

上传时间:

构建分布

e2e_Dutch-0.4.1-py3.7.egg (102.5 kB 查看哈希值)

上传时间:

e2e_Dutch-0.4.1-py3-none-any.whl (59.3 kB 查看哈希值)

上传时间: Python 3

支持者