基于转换的 UCCA 解析器
项目描述
TUPA 是通用概念认知注释 (UCCA)的基于转换的解析器。
要求
蟒蛇 3.6
安装
创建 Python 虚拟环境。例如,在 Linux 上:
virtualenv --python=/usr/bin/python3 venv . venv/bin/activate # on bash source venv/bin/activate.csh # on csh
安装最新版本:
pip install tupa
或者,从 GitHub 安装最新代码(可能不稳定):
git clone https://github.com/danielhers/tupa cd tupa pip install .
训练解析器
拥有一个包含 UCCA 段落文件的目录(例如,英语 Wiki 语料库),运行:
python -m tupa -t <train_dir> -d <dev_dir> -c <model_type> -m <model_filename>
可能的模型类型是sparse、mlp和bilstm。
解析一个文本文件
使用经过训练的模型在文本文件(此处名为example.txt )上运行解析器:
python -m tupa example.txt -m <model_filename>
每个段落将创建一个xml文件(由文本文件中的空行分隔)。
预训练模型
要下载并提取在 Wiki 语料库上预训练的模型,请运行:
curl -LO https://github.com/huji-nlp/tupa/releases/download/v1.3.10/ucca-bilstm-1.3.10.tar.gz tar xvzf ucca-bilstm-1.3.10.tar.gz
使用模型运行解析器:
python -m tupa example.txt -m models/ucca-bilstm
其他语言
要获得 在法国 *20K Leagues* 语料库 上预训练的模型或在德国 * 20K Leagues* 语料库上预训练的模型,请运行:
curl -LO https://github.com/huji-nlp/tupa/releases/download/v1.3.10/ucca-bilstm-1.3.10-fr.tar.gz tar xvzf ucca-bilstm-1.3.10-fr.tar.gz curl -LO https://github.com/huji-nlp/tupa/releases/download/v1.3.10/ucca-bilstm-1.3.10-de.tar.gz tar xvzf ucca-bilstm-1.3.10-de.tar.gz
在法语/德语文本文件上运行解析器(用空行分隔段落):
python -m tupa exemple.txt -m models/ucca-bilstm-fr --lang fr python -m tupa beispiel.txt -m models/ucca-bilstm-de --lang de
使用 BERT
BERT 可以用来代替标准的词嵌入。首先,安装所需的依赖项:
pip install -r requirements.bert.txt
然后将--use-bert参数传递给训练命令。
查看config.py中可能的配置选项(相关选项具有前缀bert)。
BERT 多语言培训
可以训练多语言模型,以利用跨语言迁移并改善低资源语言的结果:
确保输入段落文件具有lang属性。请参阅包semstr中的脚本 `set_lang < https://github.com/huji-nlp/semstr/blob/master/semstr/scripts/set_lang.py >`__ 。
通过传递--use-bert参数启用 BERT 。
通过传递 --bert-model=bert-base-multilingual-cased使用多语言模型。
传递--bert-multilingual=0参数以启用多语言训练。
BERT 性能
以下是在德语 *20K Leagues* 语料库、 英语 Wiki 语料库和仅来自法语 *20K Leagues* 语料库 的 15 个句子上训练的 3 个 BERT 多语言模型的平均结果,设置如下:
bert-model=bert-base-multilingual-cased bert-layers=-1 -2 -3 -4 bert-layers-pooling=weighted bert-token-align-by=sum
结果:
描述 |
测试初级 F1 |
测试遥控器 F1 |
测试平均值 |
---|---|---|---|
德国 20K 联赛 |
0.828 |
0.6723 |
0.824 |
英语 20K 联赛 |
0.763 |
0.359 |
0.755 |
法国 20K 联赛 |
0.739 |
0.46 |
0.732 |
英文维基 |
0.789 |
0.581 |
0.784 |
*英语 *20K Leagues* 语料库 用作域外测试。
使用 BERT 预训练模型
要下载并提取 使用上述设置训练的多语言模型,请运行:
curl -LO https://github.com/huji-nlp/tupa/releases/download/v1.4.0/bert_multilingual_layers_4_layers_pooling_weighted_align_sum.tar.gz tar xvzf bert_multilingual_layers_4_layers_pooling_weighted_align_sum.tar.gz
要使用模型运行解析器,请使用以下命令。请注意,您需要将[lang]替换为正确的语言符号(fr、en或de):
python -m tupa example.txt --lang [lang] -m bert_multilingual_layers_4_layers_pooling_weighted_align_sum
贡献者
Ofir 阿尔沃夫:ofir 。arviv @邮件。胡集 交流。我
引文
如果您使用此软件,请引用以下论文:
@InProceedings{hershcovich2017a, author = {Hershcovich, Daniel and Abend, Omri and Rappoport, Ari}, title = {A Transition-Based Directed Acyclic Graph Parser for {UCCA}}, booktitle = {Proc. of ACL}, year = {2017}, pages = {1127--1138}, url = {http://aclweb.org/anthology/P17-1104} }
论文中使用的解析器版本是 v1.0。要重现实验,请运行:
curl -L https://raw.githubusercontent.com/huji-nlp/tupa/master/experiments/acl2017.sh | bash
如果您使用法语、德语或多任务模型,请引用以下论文:
@InProceedings{hershcovich2018multitask, author = {Hershcovich, Daniel and Abend, Omri and Rappoport, Ari}, title = {Multitask Parsing Across Semantic Representations}, booktitle = {Proc. of ACL}, year = {2018}, pages = {373--385}, url = {http://aclweb.org/anthology/P18-1035} }
论文中使用的解析器版本是 v1.3.3。要重现实验,请运行:
curl -L https://raw.githubusercontent.com/huji-nlp/tupa/master/experiments/acl2018.sh | bash
执照
此软件包在 GPLv3 或更高版本许可下获得许可(请参阅 `LICENSE.txt <LICENSE.txt>`__)。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。