使用skip-thoughts提取句子特征

我搜集了两种方法来实现,一种方法基于theano,另一种方法基于tensorflow。

方法一参考:

【1】https://github.com/ryankiros/skip-thoughts

【2】https://blog.csdn.net/qq_33373858/article/details/83928249

方法二参考:

【3】https://github.com/tensorflow/models/tree/master/research/skip_thoughts#encoding-sentences

方法一详解:

  1. 从github【1】上下载skip-thoughts的代码。
  2. 根据【1】中要求安装依赖库。(theano不用必须是Theano 0.7,我的1.0.4也可以)使用skip-thoughts提取句子特征_第1张图片
  3. 在下好的文件目录下添加data文件夹。
  4. 根据作者提供的链接,下载所需文件,并全部存放到data目录下。注意这里的pkl文件下载地址发生了一些错误,只能下载txt文件,可以在作者github的issue中找新的link.使用skip-thoughts提取句子特征_第2张图片
  5. 修改skipthoughts.py文件内的路径:使用skip-thoughts提取句子特征_第3张图片
  6. 在data同目录下新建文件测试:(encoder.py),得到4800维向量。使用skip-thoughts提取句子特征_第4张图片

 

使用上述方法可以提取个别sentence的特征,但是如果需要提取大量文本特征时,上述方法使用的cpu太费时间了,而且theano使用GPU加速有些麻烦,我还没有实现。

 

方法二详情:

1.首先,在【3】中下载skip-thoughts的代码。

2.然后,安装必需的依赖库:

使用skip-thoughts提取句子特征_第5张图片

3.下载的skip-thoughts可以放在tensorflow的模型文件examples下面,也可以直接使用,接下来介绍直接使用的方法。

4.新建自己的工程,将下载的skip-thoughts-master更名为skip-thoughts之后放在工程文件夹下。在skip-thoughts文件夹下新建pre-trained文件夹用于保存预训练模型,将下载的skip-thoughts的预训练模型(需要下单向和双向的两个文件)解压缩之后放在该目录下。

5.写自己的测试文件:

使用skip-thoughts提取句子特征_第6张图片

这里需要注意的是,checkpoint的路径文件只写到500008.

6.在encoder_manager.py的前面添加使用的GPU:

使用skip-thoughts提取句子特征_第7张图片

 

 

7.如果使用的是单向的,则只需要在测试文件中加入单向预训练模型:

使用skip-thoughts提取句子特征_第8张图片

使用skip-thoughts提取句子特征_第9张图片

如果使用的是双向的,则需要加入两个预训练模型,也需要调用两次load_model:

使用skip-thoughts提取句子特征_第10张图片

 

8.run测试文件。

 

你可能感兴趣的:(深度学习)