使用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提取句子特征
    文章图片
  3. 在下好的文件目录下添加data文件夹。使用skip-thoughts提取句子特征
    文章图片
  4. 根据作者提供的链接,下载所需文件,并全部存放到data目录下。注意这里的pkl文件下载地址发生了一些错误,只能下载txt文件,可以在作者github的issue中找新的link.使用skip-thoughts提取句子特征
    文章图片
  5. 修改skipthoughts.py文件内的路径:使用skip-thoughts提取句子特征
    文章图片
  6. 在data同目录下新建文件测试:(encoder.py),得到4800维向量。使用skip-thoughts提取句子特征
    文章图片

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

方法二详情:
1.首先,在【3】中下载skip-thoughts的代码。
2.然后,安装必需的依赖库:
使用skip-thoughts提取句子特征
文章图片

3.下载的skip-thoughts可以放在tensorflow的模型文件examples下面,也可以直接使用,接下来介绍直接使用的方法。
4.新建自己的工程,将下载的skip-thoughts-master更名为skip-thoughts之后放在工程文件夹下。在skip-thoughts文件夹下新建pre-trained文件夹用于保存预训练模型,将下载的skip-thoughts的预训练模型(需要下单向和双向的两个文件)解压缩之后放在该目录下。
使用skip-thoughts提取句子特征
文章图片

5.写自己的测试文件:
使用skip-thoughts提取句子特征
文章图片

这里需要注意的是,checkpoint的路径文件只写到500008.
6.在encoder_manager.py的前面添加使用的GPU:
使用skip-thoughts提取句子特征
文章图片



7.如果使用的是单向的,则只需要在测试文件中加入单向预训练模型:
使用skip-thoughts提取句子特征
文章图片

使用skip-thoughts提取句子特征
文章图片

如果使用的是双向的,则需要加入两个预训练模型,也需要调用两次load_model:
使用skip-thoughts提取句子特征
文章图片


8.run测试文件。
【使用skip-thoughts提取句子特征】

    推荐阅读