CoNLL 2017 - Multi-Model and Crosslingual Dependency Analysis

2024-04-27 04:08

本文主要是介绍CoNLL 2017 - Multi-Model and Crosslingual Dependency Analysis,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ref: Multi-Model and Crosslingual Dependency Analysis

code: https://github.com/CoNLL-UD-2017/Orange-Deskin

proceedings: http://universaldependencies.org/conll17/proceedings/

http://universaldependencies.org/conll17/results.html

代码运行环境的搭建: VirtualBox+Centos 7

1. get the source code

git clone https://github.com/CoNLL-UD-2017/Orange-Deskin

2. get cnn-v1

cd Orange-Deskin
git clone https://github.com/clab/cnn-v1

3. get eigen

hg clone https://bitbucket.org/eigen/eigen

4. replace cnn/model by the file in cnn-modifs and compile cnn:

cp cnn-modifs/model.h cnn-v1/cnn/
cd cnn-v1
mkdir build
cd build
cmake .. -DEIGEN3_INCLUDE_DIR=../../eigen 【need to set to absolute path, like: /root/Orange-Deskin/eigen】make

如果cmake失败,而错误的原因是“Undefined reference to pthread_create in Linux”,解决方法是:安装boost-devel包,在Centos环境下:

yum install boost-devel

5. modify pycnn/setup.py (directory "../../cnn" should be "../../cnn-v1") and compile the python interface:

cd cnn-v1/pycnn
make install
Train models


1. in order to run training, we need to set the environment variable to find cnn-python-library

export LD_LIBRARY_PATH=PATH/TO/cnn-v1/pycnn

2. run the following training, we need to get "train-projective.conllu", "word2vec.cbow.bin", "train-words-to-load.txt".

python bistparser/barchybrid/src/parser.py \--cnn-mem 4000  \--outdir /PATH/TO/OUTDIR \--train train-projective.conllu \--dev dev-projective.conllu \--epochs 20 --lstmdims 125 \--lstmlayers 2 --bibi-lstm \--k 3 --usehead --userl \--extrn word2vec.cbow.bin \--extrnFilter train-words-to-load.txt \[--hidden 50]

3. get "train-projective.conllu"

py/projectivise.py -c train.conllu > train-pojective.conllu

其中,“train.conllu”是在treebank中选中一个训练集。Treebank: Universal Dependencies 2.0可以从“https://lindat.mff.cuni.cz/repository/xmlui/handle/11234/1-2184”下载,其文件名为:ud-test-v2.0-conll2017.tgz。我们可以选择:ud-test-v2.0-conll2017/input/conll17-ud-trial-2017-03-19/en-udpipe.conllu.

4. get "dev-projective.conllu"

py/projectivise.py -c dev.conllu > dev-pojective.conllu

其中,“train.conllu”是在treebank中选中一个训练集。Treebank: Universal Dependencies 2.0可以从“https://lindat.mff.cuni.cz/repository/xmlui/handle/11234/1-2184”下载,其文件名为:ud-test-v2.0-conll2017.tgz。我们可以选择:ud-test-v2.0-conll2017/input/conll17-ud-development-2017-03-19/en-udpipe.conllu.

5. get "word2vec.cbow.bin"

downloaded "freebase-vectors-skipgram1000.bin.gz" or "freebase-vectors-skipgram1000-en.bin.gz" or " GoogleNews-vectors-negative300.bin.gz" from https://code.google.com/archive/p/word2vec/

However, the used word2vec.cbow.bin is not trained by GoogleNews!

So we need to train another corpora so that we can get the file "word2vec.cbow.bin"

Word embeddings have been calculated on corpora taken from "https://lindat.mff.cuni.cz/repository/xmlui/handle/11234/1-1989",可以下载文件名为:word-embeddings-conll17.tar的文件,取其中的word-embeddings-conll17/English/en.vectors文件作为word2vec.cbow.bin。

6. get "train-words-to-load.txt"

cut -f2 train-projective.conllu | sort -u > forms.txt
cut -f3 train-projective.conllu | sort -u > lemmas.txt
cat forms.txt lemmas.txt | perl -CSD -ne 'print lc' | sort -u > train-words-to-load.txt.txt

7. begin to training

python bistparser/barchybrid/src/parser.py \--cnn-mem 4000  \--outdir /PATH/TO/OUTDIR \--train train-projective.conllu \--dev dev-projective.conllu \--epochs 20 --lstmdims 125 \--lstmlayers 2 --bibi-lstm \--k 3 --usehead --userl \--extrn word2vec.cbow.bin \--extrnFilter [--hidden 50]

Note: /PATH/TO/OUTDIR should be set as the true output directory.


Use Models


python bistparser/barchybrid/src/parser.py \--cnn-mem 4000 --predict \--outfile result.conllu \--test test-projective.conllu \--model /PATH/TO/OUTDIR/barchhybrid.model_NNN \--params /PATH/TO/OUTDIR/params.pickle \--k 3 --usehead --userl \--extrn word2vec.cbow.bin \--extrnFilter train-words-to-load.txt \--extrnFilterNew test-words-to-load.txt

发生如下错误:


出现上述错误,进过多次检查,发现barchhybrid.model_002的名字错误。


更改之后,发现如下错误:


出现上述原因是因为没有将cnn-v1/cnn/model.h替换掉。


Finally, de-projectivise output if you have projectivised:

py/projectivise.py -d result.conllu > result-deprojectivised.conllu

这篇关于CoNLL 2017 - Multi-Model and Crosslingual Dependency Analysis的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/939484

相关文章

2014 Multi-University Training Contest 8小记

1002 计算几何 最大的速度才可能拥有无限的面积。 最大的速度的点 求凸包, 凸包上的点( 注意不是端点 ) 才拥有无限的面积 注意 :  凸包上如果有重点则不满足。 另外最大的速度为0也不行的。 int cmp(double x){if(fabs(x) < 1e-8) return 0 ;if(x > 0) return 1 ;return -1 ;}struct poin

2014 Multi-University Training Contest 7小记

1003   数学 , 先暴力再解方程。 在b进制下是个2 , 3 位数的 大概是10000进制以上 。这部分解方程 2-10000 直接暴力 typedef long long LL ;LL n ;int ok(int b){LL m = n ;int c ;while(m){c = m % b ;if(c == 3 || c == 4 || c == 5 ||

2014 Multi-University Training Contest 6小记

1003  贪心 对于111...10....000 这样的序列,  a 为1的个数,b为0的个数,易得当 x= a / (a + b) 时 f最小。 讲串分成若干段  1..10..0   ,  1..10..0 ,  要满足x非递减 。  对于 xi > xi+1  这样的合并 即可。 const int maxn = 100008 ;struct Node{int

MVC(Model-View-Controller)和MVVM(Model-View-ViewModel)

1、MVC MVC(Model-View-Controller) 是一种常用的架构模式,用于分离应用程序的逻辑、数据和展示。它通过三个核心组件(模型、视图和控制器)将应用程序的业务逻辑与用户界面隔离,促进代码的可维护性、可扩展性和模块化。在 MVC 模式中,各组件可以与多种设计模式结合使用,以增强灵活性和可维护性。以下是 MVC 各组件与常见设计模式的关系和作用: 1. Model(模型)

diffusion model 合集

diffusion model 整理 DDPM: 前向一步到位,从数据集里的图片加噪声,根据随机到的 t t t 决定混合的比例,反向要慢慢迭代,DDPM是用了1000步迭代。模型的输入是带噪声图和 t,t 先生成embedding后,用通道和的方式加到每一层中间去: 训练过程是对每个样本分配一个随机的t,采样一个高斯噪声 ϵ \epsilon ϵ,然后根据 t 对图片和噪声进行混合,将加噪

2017 版本的 WebStorm 永久破解

1.  在IntelliJ官网中下载 最新版本的WebStorm   下载地址:https://www.jetbrains.com/webstorm/download/#section=windows 2. 获取注册码    获取地址:http://idea.lanyus.com/   点击获取注册码,然后将注册码复制,再打开最新版的WebStorm,将注册码粘贴到激活框中就大功告

Versioned Staged Flow-Sensitive Pointer Analysis

VSFS 1.Introduction2.Approach2.1.相关概念2.2.VSFS 3.Evaluation参考文献 1.Introduction 上一篇blog我介绍了目前flow-sensitive pointer analysis常用的SFS算法。相比IFDS-based方法,SFS显著通过稀疏分析提升了效率,但是其内部依旧有许多冗余计算,留下了很大优化空间。 以

【硬刚ES】ES基础(二十一) 单字符串多字段查询:Multi Match

本文是对《【硬刚大数据之学习路线篇】从零到大数据专家的学习指南(全面升级版)》的ES部分补充。

Segment Anything Model(SAM)中的Adapter是什么?

在META团队发布的Segment Anything Model (SAM) 中,Adapter 是一种用于提升模型在特定任务或领域上的性能的机制。具体来说,SAM 是一个通用的分割模型,能够处理多种不同类型的图像分割任务,而 Adapter 的引入是为了更好地让模型适应不同的任务需求。 Adapter 的主要功能是: 模块化设计:Adapter 是一种小规模的、可插拔的网络模块,可以在不改

2015 Multi-University Training Contest 5 1009 MZL#39;s Border

MZL's Border  Problem's Link:  http://acm.hdu.edu.cn/showproblem.php?pid=5351   Mean:  给出一个类似斐波那契数列的字符串序列,要你求给出的f[n]字符串中截取前m位的字符串s中s[1...i] = s[s.size()-i+1....s.size()]的最大长度。 analyse:   过计算