区块链技术博客
www.b2bchain.cn

使用 skip-thoughts 提取句子特征

这篇文章主要介绍了使用 skip-thoughts 提取句子特征的讲解,通过具体代码实例进行17343 讲解,并且分析了使用 skip-thoughts 提取句子特征的详细步骤与相关技巧,需要的朋友可以参考下https://www.b2bchain.cn/?p=17343

本文实例讲述了2、树莓派设置连接WiFi,开启VNC等等的讲解。分享给大家供大家参考文章查询地址https://www.b2bchain.cn/7039.html。具体如下:

文章目录

  • 1. 原理
  • 2. 使用
    • 2.1 环境要求
    • 2.2 步骤
  • 3. 结果

1. 原理

参考以下博客学习原理,
https://blog.csdn.net/liujh845633242/article/details/102572241

可以理解为, 此模型能够将一个句子 提取其特征, 与word2vec类似, 相当于一个 sentence2vec

是16年的Skip-Thought Vectors 论文提出的

2. 使用

2.1 环境要求

首先我们需要用以下环境,注意容易搞错的点就是
NLTK == 3, 在ubantu系统下 16.04

Python 2.7 Theano 0.7 scikit-learn NLTK 3 Keras  gensim  

如果是python3 版本 建议使用 mkvirtualenv 工具,创建一个python2环境, 这里加了 -p /usr/bin/python2.7, 其中/usr/bin/python2.7 表示python2的路径,需要换成自己的python2路径

 mkvirtualenv -p /usr/bin/python2.7 py2env    

其中我的版本如下, 如果不知道按照什么版本,那建议用以下版本
使用 skip-thoughts 提取句子特征

在下载nltk 后, 可能会要你下载一个punkt 包,这里建议直接从提示找不到的位置,新建nltk_data 文件夹, 然后在里面建一个tokenizers文件夹, 最后把 punkt下载地址 下载好的zip 解压后放到tokenizers 文件夹里面

使用 skip-thoughts 提取句子特征

2.2 步骤

  1. 下载代码
git clone https://github.com/ryankiros/skip-thoughts.git 
  1. 下载所需预训练参数
wget http://www.cs.toronto.edu/~rkiros/models/dictionary.txt wget http://www.cs.toronto.edu/~rkiros/models/utable.npy wget http://www.cs.toronto.edu/~rkiros/models/btable.npy wget http://www.cs.toronto.edu/~rkiros/models/uni_skip.npz wget http://www.cs.toronto.edu/~rkiros/models/uni_skip.npz.pkl wget http://www.cs.toronto.edu/~rkiros/models/bi_skip.npz wget http://www.cs.toronto.edu/~rkiros/models/bi_skip.npz.pkl 
  1. 修改代码

修改 克隆后的代码中的 skipthoughts.py

#-----------------------------------------------------------------------------# # Specify model and table locations here #-----------------------------------------------------------------------------# path_to_models = './data/' path_to_tables = './data/' #-----------------------------------------------------------------------------# 

这两个路径设置为第二步下载下来的预训练参数模型地址, 在上一步中我是直接 放到克隆的文件夹自建的data文件夹里面了
使用 skip-thoughts 提取句子特征

  1. 编写主要代码
from skipthoughts import load_model, Encoder import pickle import csv import re import os import time def text_process ():      model = load_model()     encoder_model = Encoder(model) 	 	encoder_str = ["i love natural language processing",] 	vectors = encoder_model .encode(encoder_str )  	# each sentence will be encode a 4800 vector 	print(vectors) 	print(len(vectors))    	   	 if __name__ == '__main__':     text_process()  

3. 结果

使用 skip-thoughts 提取句子特征

本文转自互联网,侵权联系删除使用 skip-thoughts 提取句子特征

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » 使用 skip-thoughts 提取句子特征
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们