gensim快速上手教程
1 gensim是什么?
gensim是一个Python常用的的自然语言处理开发包, 主要用于词向量训练和加载词向量,以下解释其正确使用姿势。
2 正确使用姿势
from gensim.models import word2vec
'''
author = "kalafinaian"
email= "kalafinaian@outlook.com"
create_time = 2019-08-11
'''
'''
预料如何准备, 训练预料问津中每一行是一个文本,每个文本使用空进行分词
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("不存在")
gensim快速上手教程的更多相关文章
- 新浪SAE快速上手教程
新浪SAE快速上手教程[1]如何免费开通新浪云 2014-07-18 > 新浪SAE快速上手教程[2]如何创建.删除应用 2014-07-24 > 新浪SAE快速上手教程[3]如何上传应 ...
- Airtest 快速上手教程
一.Airtest 简介: AirtestIDE 是一个跨平台的UI自动化测试编辑器,适用于游戏和App. 自动化脚本录制.一键回放.报告查看,轻而易举实现自动化测试流程 支持基于图像识别的 Airt ...
- NHibernate3快速上手教程FluentNHibernate配置与DBHelper
很多学习NHibernate的新手很容易卡在配置文件这一关,正所谓万事开头难,上手后再配合官方文档就比较容易了. 网上关于配置文件的资料非常多,但由于版本的问题,许多老的教程中都没有明确指出类库的版本 ...
- NHibernate3快速上手教程FluentNHibernate配置与DBHelper(已过期,有更好的)
很多学习NHibernate的新手很容易卡在配置文件这一关,正所谓万事开头难,上手后再配合官方文档就比较容易了. 网上关于配置文件的资料非常多,但由于版本的问题,许多老的教程中都没有明确指出类库的版本 ...
- 《Python操作SQLite3数据库》快速上手教程
为什么使用SQLite数据库? 对于非常简单的应用而言,使用文件作为持久化存储通常就足够了,但是大多数复杂的数据驱动的应用需要全功能的关系型数据库.SQLite的目标则是介于两者之间的中小系统.它有以 ...
- 面向Unity程序员的Android快速上手教程
作者:Poan,腾讯移动客户端开发 工程师 商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处. WeTest 导读 随着Unity.cocos2dx等优秀跨平台游戏引擎的出现,开发者可以把 ...
- python快速上手教程
python版本 python目前的版本分为2.7和3.5,两种版本的代码目前无法兼容,查看python版本号: python --version 基本数据类型 数字类型 整型和浮点型数据和其它编程语 ...
- smarty半小时快速上手教程(转)
来源于:http://www.chinaz.com/program/2010/0224/107006.shtml 一:smarty的程序设计部分: 在smarty的模板设计部分我简单的把smarty在 ...
- Appscan 工具快速上手教程
1.appscan扫描 (1)白盒扫描=静态扫描,扫描源代码.(2)动态扫描=黑盒扫描,用工具来模拟黑客的攻击,查看应用层的响应.产品内部会有大量受攻击的库,当我们把一个模拟攻击发给我们的应用的时 ...
随机推荐
- 【洛谷P5019】铺设道路
题目链接 众所周知,这道题和积木大赛是同一道题 题意就是给出一段自然数序列,每次操作\((L,R)\)把区间\([L,R]\)的数全部减一,不允许出现负数,问把序列变为零的最小操作次数 贪心做法 样例 ...
- c博客作业01——顺序 分支结构
本章学习总结 1.1 学习内容总结 ·学习switch分支的使用,switch后加括号(),括号内填一个变量或字符 如 switch (a) { case 2: case 3: default: } ...
- 深搜的剪枝技巧(三)——Sticks(可行性剪枝、上下界剪枝、最优性剪枝)
小木棍(最优性剪枝.可行性剪枝) 一.问题描述 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,已知每段的长都不超过 50 .现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍 ...
- <英狼>--团队作业3 王者光耀--终极版
队员 陶俊宇_031702113 卞永亨_031702229 唐怡_031702109 Github 吉哈---King-Shines 队员输出百分比,数据为估值仅供参考 MVP:队长:陶俊宇 60% ...
- 【大数据应用技术】作业十二|Hadoop综合大作业
本次作业的要求来自:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/3339 前言 本次作业是在<爬虫大作业>的基础上进行的 ...
- idea的maven工程中修改pom会改变项目jdk版本
解决办法 方案一 //pom中配置maven插件时候 <plugins> <!--jdk编译插件--> <plugin> <groupId>org.ap ...
- Linux在线安装Redis
一.进入Redis官网寻找需要下载的版本:https://redis.io/ 将下载地址链接复制下来:http://download.redis.io/releases/redis-5.0.7.tar ...
- 团队作业-Beta冲刺(2/4)
队名:软工9组 组长博客:https://www.cnblogs.com/cmlei/ 作业博客:https://edu.cnblogs.com/campus/fzu/SoftwareEngineer ...
- String.format()详细用法
String.format()字符串常规类型格式化的两种重载方式 format(String format, Object… args) 新字符串使用本地语言环境,制定字符串格式和参数生成格式化的新字 ...
- filebeat获取nginx的access日志配置
filebeat获取nginx的access日志配置 产生nginx日志的服务器即生产者服务器配置: 拿omp.chinasoft.com举例: .nginx.conf主配置文件添加日志格式 log_ ...