gensim中正确使用姿势
时间:2019-08-31
本文章向大家介绍gensim中正确使用姿势,主要包括gensim中正确使用姿势使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1 gensim是什么?
gensim是一个Python常用的的自然语言处理开发包, 主要用于词向量训练和加载词向量,以下解释其正确使用姿势。
2 正确使用姿势
from gensim.models import word2vec
'''
预料如何准备, 训练预料问津中每一行是一个文本,每个文本使用空进行分词
A B C ..
D E F ..
H I G ..
..
'''
s_corpus_url = "corpus.txt" # 语料库地址
sentences = word2vec.Text8Corpus(s_corpus_url,)
'''
算法训练使用说明
架构:skip-gram(慢、对罕见字有利)vs CBOW(快)
训练算法:分层softmax(对罕见字有利)vs 负采样(对常见词和低纬向量有利)
欠采样频繁词:可以提高结果的准确性和速度(适用范围1e-3到1e-5)
文本(window)大小:skip-gram通常在10附近,CBOW通常在5附近
'''
train_model = word2vec.Word2Vec(sentences,
sg = 1, # 0为CBOW 1为skip-gram
size = 300, # 特征向量的维度
window = 5, # 表示当前词与预测词在一个句子中的最大距离是多少
min_count = 5, # 词频少于min_count次数的单词会被
sample = 1e-3, # 高频词汇的随机降采样的配置阈值
iter = 23, #训练的次数
hs = 1, #为 1 用hierarchical softmax 0 negative sampling
workers=8 # 开启线程个数
)
'''
模型的保存
'''
s_model_url = "train.model" # 语料库保存地址
train_model.save(s_model_url)
'''
模型的加载
'''
load_model = word2vec.Word2Vec.load(s_model_url)
'''
查询两个词的相似度
'''
s_word_1 = "关雎"
s_word_2 = "蒹葭"
f_word_sim = load_model.similarity(s_word_1, s_word_2)
'''
查询一个词的词向量, 返回是一个numpy数组
'''
s_query_word = "雅言"
np_word = load_model[s_query_word]
'''
打印一个词语所有相似词和相似度
'''
for s_word, f_sim in load_model.most_similar(s_query_word):
print(s_word, f_sim)
'''
判断一个词语是否在词向量模型中
'''
s_word = "Naive"
if s_word in load_model.vocab:
print("存在")
else:
print("不存在")
原文地址:https://www.cnblogs.com/Kalafinaian/p/11440846.html
- 【专业文章】六种常见的HTML5写法误用(二)
- CSS3动画,为你带来极致的视觉体验!
- 【高级编程】linux进程间通信总结
- JS 吸顶导航,告别“回到顶部”
- 用AlphaGo来做股票交易会怎样?机器学习预测股票靠谱么?
- 开发 | 深度神经网络可视化工具集锦
- CSS3三维变形,其实很简单!
- 使用 pandas处理股票数据并作分析
- 用R语言做时间序列分析(附数据集和源码)
- 【android开发】Android GUI系统学习1:Gralloc
- 【kaggle实战】从KNN,LR,SVM,RF到深度学习
- 开发 | 训练一个AI给颜值打分,公平公正!
- 【android开发】Android HAL模块实现
- 让剁手党洞察物体细节,“放大镜”当之无愧
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- gulp的使用
- SpringBoot中 使用[info]日志级别打印mybatis sql语句
- Spring Boot 使用策略模式指定Service实现类
- 55. Vue webpack的基本使用
- ajax无刷新页面切换,历史记录后退前进解决方案
- 一起来学演化计算-SBX模拟二进制交叉算子和DE差分进化算子
- 通过与C++程序对比,彻底搞清楚JAVA的对象拷贝
- Spring - application.yml 数字读取错误、eg: 000001
- Swagger2 UI 提示"请确保swagger资源接口正确"解决办法
- Manytasking Jmetal 代码反向解析 2_MMDTLZ
- GitLab服务器搭建
- MATP1生成测试SolutionSet
- 以猜数字游戏引出的分治算法的理解与思考
- MATP ManyTask Multitask Problem 和 Solution 的变量范围
- Sinopia安装部署