如何训练并使用GloVe词向量模型

在词向量的选择方面,好像大部分研究人员用比较流行的Word2vec比较多,而忽略了GloVe这一个强力的词向量,网上相关资料也比较少。有兴趣研究其相关理论的同学可以自己查阅相关知识,本文只为大家介绍一下如何训练保存并调用GloVe词向量。

官方给出的只有唯一一个C语言版本,相关链接如下:
GloVe词向量的主页及简介:https://nlp.stanford.edu/projects/glove/
GloVe词向量的gtihub地址:https://github.com/stanfordnlp/GloVe
拷贝项目到本地

git clone https://github.com/stanfordnlp/GloVe.git

基于这个github代码,我们开始介绍:

准备语料

首先准备要训练的中文语料,我使用的是网上爬取的新闻语料。
接着分词,去掉停用词,如下,保证每一行是一个句子就可以了:

特朗普 再度 炮轰 美联储 加息 致美股 大跌 但称 不会 解雇 鲍威尔 中新社 华盛顿 10 月 11 日电 美国 总统 特朗普 11 日 白宫 表示 美股 调整 美联储 利率 引起 说 美联储 货币政策 太紧 不会 解雇 美联储 主席 鲍威尔 当天 特朗普 白宫 记者 问及 美股 大跌 时 做出 上述 表态 10 日 美国纽约 三大 股指 大跌 道琼斯 工业 指数 下挫 超过 800 点 11 日 美股 跌势 继续 特朗普 称 美股 调整 美联储 利率 引起 特朗普 说 美联储 利率 上升 速度 远远 快于 包括 在内 很多 预期 认为 美联储 失控 特朗普 指责 美联储 货币政策 太紧 正在 犯错 记者 问及 是否 会 解雇 美联储 主席 鲍威尔 时 特朗普 表示 不会 感到 失望 10 日美股 大跌 特朗普 说 美联储 疯 早 今年 7 月 特朗普 公开 表示 喜欢 美联储 加息 近期 更是 接连 批评 美联储 美国 CNBC 电视台 称 特朗普 打破 20 多年 美国 总统 公开 评论 美联储 政策 惯例 担忧 美联储 独立性 对此 白宫 国家 经济 委会 主任 库 德洛 11 日 媒体 表示 总统 看法 说 知道 美联储 独立 特朗普 没有 美联储 发号施令 1913 年 美联储 法 规定 美联储 官员 总统 理由 提前 解职 没有 详述 何种 理由 总统 解除 美联储 官员 职位 http bj news.163 com 18 1011 15 DTRJH0VC043897TC html 精英 路通 智慧停车 落户 盐城 高位 视频 解决 停车难 全球 财经网 
平安产险 潍坊 中支 双百 对村 扶贫 助力 乡村 振兴 平安产险 潍坊 中支 双百 对村 扶贫 助力 乡村 振兴 2018 10 3016 38 来源 财经 手机 新闻 半岛网 半岛都市报  深入 推进 乡村 振兴 战略 实施 发展壮大 村级 集体经济 寿光 市委 组织 开展 百个 部门 包百村 百家 企业 帮百村 行动 确定 结对 帮扶 集体经济 薄弱 村 增强 村 集体 造血 功能 促进 富民 强村 建立 持续 增收 长效机制 寿光 市委 安排 平安产险 潍坊 中支 寿光 支公司 杨家 营村 结为 帮扶 对象 寿光 支公司 积极响应 成立 经理 李守江 组长 扶贫 小组 赶赴 杨家 营村 商讨 扶贫 事宜 扶贫 小组 详细 了解 村里 当务之急 道路 硬化 亮化 蔬菜大棚 改造 专业 人员 详细 预算 这三项 工程 总共 需要 8 万元 资金 扶贫 小组 具体情况 签报 上级 公司 得到 潍坊 中支 青岛 分公司 大力支持 扶贫 资金 很快 得到 批复 扶贫 资金 到位 三项 扶贫 工程项目 得以 迅速 开工 三项 工程 开工 扶贫 小组 数次 村 查看 商讨 确保 扶贫 资金 切实落实 扶贫 项目 如今 曾经 尘土飞扬 土路 变成 光洁 柏油路 晚上 漆黑 村里 变得 亮堂堂 赖以为生 蔬菜大棚 得到 改造 懂 感恩 助 未来 平安 不断 实际行动 践行 回馈 社会 责任 理念 努力 扶贫 工作 做出 贡献 编辑 张芳 双 11 山盟海誓 相亲 .. 大江 大河 王凯 扮土 .. 10 辆 汽车 130 万 现金 归还 原主 东港 公安分局 举行 退赃 大会 11 1014 56 怪事 即墨 名门世家 小区 竟然 两个 物业 抢 雷锋 11 1010 34 近半 国家 地区 面临 婴儿 缺 11 1211 10 日照市 工商局 日照市 消协 开展 双 11 法律法规 宣传 活动 11 1014 51 日照 爱尔眼科医院 授予 市 法治 志愿者 协会会员 单位 11 1018 10 牵手 同行 一路 幼 爱 日照市 幼儿教育 协会 2018 支教 活动 启动 仪式 11 1112 55 第一次 拍卖 山东 杨春 商贸集团 有限公司 房地产项目 一宗 11 1114 21 日照市 第三 实验 小学 名师 引领 促 专业 成长 11 1016 25 今晨 青岛 保利 里 院里 小区 发生 煤气 闪爆 事故 2 受伤 11 1111 22 日照 消协 2018 消费 警示 定金 订金 法律 后果 大不同 11 1014 48 半岛网 
刘成 纪 近年来 庄子 美学 研究 述评 刘成 纪 近年来 庄子 美学 研究 述评 2014 12 0415 01 文章 来源 人民 美术网 整理 中国 美学 研究 中 庄子 一个 常解 常新 文本 建 否定 超越 本体论 建 怀疑 相对主义 认识论 哲学 视野 开放性 语言 方式 暗示性 认为 特点 注定 庄子 美学 可能 一语 道 可能 一言难尽 下面 2000 年 国内 庄子 美学 研究 大致 状况 作一 简单 评述 . 基本 理论 研究 近年来 思想者 美学史 领域 淡出 一直 这一 学科 走向 成熟 标志 令人遗憾 这种 学术 转向 基础理论 研究 少有 突破 缺少 创造性 理论 阐释 出现 具体 庄子 美学 研究 以下 观点 值得注意 樊美筠 哲学 道 审美 道 差异 界定 庄子 中国 美学史 地位 认为 庄子 中国 传统 美学 发生 深远影响 是因为 老子 哲学 道 转而 视为 审美 道 樊美筠 庄子 审美 道 发现者 文史哲 2000 年 2 期 颜翔林 怀疑论 美学 视角 重新 审视 庄子 美学 知识 批判 庄子 哲学 构成 一文 中 指出 怀疑论 视角 知识 反思 批判 庄子 哲学 重要 构成 美学 发生 重要 前提 这种 怀疑 批判 庄子 哲学 呈现出 超越 知识论 生命 智慧 凸现 开拓 一条 通向 审美 艺术 创造 心灵 道路 辽宁大学 学报 2003 年 12 期 近年来 庄子 哲学 美学 进行 划界 倾向 不同 王向峰 老庄 道 美的 关系 进行 新 阐释 认为 老庄 美学 哲学理论 延伸 美的 形态 道 形态 一致 道 美 体现 本质 无形 或象 罔 外显 自然 朴拙 表现 出 神妙 特性 道 美 美之美 王向峰 庄子 美的 形态 社会科学 辑刊 2000 年 2 期 除此以外 庄子 哲学 研究 文章 值得注意 容易 引发 庄子 美学 新 界定 反省 如萧 汉明 庄子 性命 说 观 物论 中 道 性 二重 观 庄子 观 物论 分为 以性 观物 道观 物 长期 观物 以物 观物 界定 中国 古典 美学 审美观 方式 一种 丰富 江苏 行政 学院 学报 2001 年 4 期 徐克 谦 庄子 哲学 中 真 一文 中 指出 真 字 现存 庄子 之前 古籍 中 几乎 找 不到 真 哲学 概念 提出 庄子 一大 贡献 显然 隐含 一个 结论 存在 现代 意义 所说 美 庄子 其实 真 或者说 真 构成 庄子 美论 内在 南京大学 学报 2002 年 2 期 徐克 谦 道路 方法 庄子 道 中 指出 道 具有 形而上学 本体论 意义 始终 没有 脱离 道路 方法 原初 意象 庄子 道 探索 一条 通往 精神 生命 安顿 道路 中国 哲学史 2000 年 4 期 道路 道 成 庄子 哲学 走向 美学 中介 桥梁 责任编辑 李亮 人民 美术网 资讯 
周志 高 书法作品 欣赏 周志 高 先生 艺术 简介 周志 高 1945 年 1 月 出生 江苏 兴化 中国书法家协会 第一 二届 常务理事 第三 五 六届 理事 中国书法家协会 资深 评委 1977 年 创办 上海 书法 杂志 並任 执行 主编 策划 主办 中国 书坛 五个 第一 重大 活动 被誉为 中国 当代 书法 复兴 奠基人 2003 年 任中国 书协 中国 书法 杂志 主编 现为 中国 书法 杂志 特约 编委 中国 书协 编辑出版 委员会 副 主任 中央文史馆 书画院 研究员 国家 社部 中国 人才 研讨会 书画 人才 专业 委员会 副会长 上海 文史 研究 馆 馆员 复旦大学 上海师范大学 兼职 教授 上海市 书协 主席 上海 中国 书 法院院长 上海市 文联 副 主席 兼书 各体 尤精 行草 作品 参加 一至 十一届 国展 数十次 海内外 重大 书展 海内外 数十家 博物馆 美术馆 纪念馆 收藏 出版 专著 合著 廿 余种 多次 出访 办展 港 澳 台 地区 亚 欧 美 澳州 十数 国 2013 年 6 月 应邀 北京人民大会堂 八一 军委 大楼 创作 丈二及 八尺 郑板桥 咏 竹 诗二首 书法作品 2015 年 9 月 2 日晚 钓鱼台国宾馆 习近平 主席 宴请 出席 中国 人民 抗日战争 暨 世界反法西斯战争 胜利 七十 周年 活动 国际 贵宾 请柬 节目单 节目 简介 菜单 封面 字 均 出 手笔 出版 专著 合著 周志 高 书法 历代 勤学 诗正草 字帖 草书 前 出师表 书法 创作 中国 历代 书法 精品 百幅 赏析 书法 三十年 周志 高 书法集 中 英文版 中国 当代 名家 作品 精选 周志 高 线装书 廿 余种 人民 美术网 资讯 
汉腾 X5 价格 最低 5.98 万起 售 欢迎 上门 试驾 汉腾 X5 价格 最低 5.98 万起 售 欢迎 上门 试驾 2018 年 11 月 07 日 12 02 来源 佛山 安迪鑫 类别 车商 新闻 打印 手机阅读 促销 时间 2018 年 11 月 07 日 2018 年 11 月 08 日买汉腾 佛山 安迪鑫 南庄 店 1 手续 简单 需要 一张 身份证 驾驶证 贷款 买车 不限 户籍 不限 车型 不看 征信 2 分期 便捷 分期 当天 提车 手续 简单 轻 3 专业 办理 达标 零首付 购车 外地 全国 牌 极速 提车 热线 15011 666 2641.5 L112 马力 L4 车型 指导价 本店 价 优惠 金额 获取 底价 2018 款 1.5 L 手动 风尚 版 5.98 万 5.48 万 0.50 万询 底价 2018 款 1.5 L 手动 舒适版 6.58 万 6.08 万 0.50 万询 底价 2018 款 1.5 L 手动 精英 版 7.18 万 6.68 万 0.50 万询 底价 1.5 T156 马力 L4 车型 指导价 本店 价 优惠 金额 获取 底价 2018 款 1.5 TC VT 精英 版 8.58 万 8.08 万 0.50 万询 底价 2018 款 1.5 TC VT 豪华版 9.28 万 8.78 万 0.50 万询 底价 2018 款 1.5 TC VT 炫动 旗舰版 10.68 万 10.18 万 0.50 万询 底价 2018 款 1.5 TC VT 贺岁版 10.63 万 10.13 万 0.50 万询 底价 2018 款 1.5 T 手动 精英 版 7.68 万 7.18 万 0.50 万询 底价 2018 款 1.5 T 手动 豪华版 8.38 万 7.88 万 0.50 万询 底价 更 优惠 请 致电 经销商 咨询电话 15011 666 264 汉腾 X5 生产 厂商 汉腾 汽车 级别 紧凑型 SUV 车身 尺寸 4501 1820 1648 轴距 2600mm 车体 结构 承载 式 整备 质量 kg 发动机 1.5 T156 马力 L4 驱动 方式 前置 前驱 变速箱 无级 变速箱 C VT 最大 功率 115kW 最大 扭矩 215Nm 最高 车速 km h 工信部 油耗 7.4 km 整车 质保 三年 6 万公里 可选 颜色 车型 资料 信息 首付 低至 1800 元 包牌 提车 一张 身份证 即可 申请 办理 贷款 当天 审批 三天 提车 回家 电话 致电 更 惊喜 咨询电话 15011 666 264 店面 地址 佛山市 禅城区 南庄镇 吉利 大道 樵乐 路上 淇 村口 公交车站 旁 查看 地图 想 获取 汉腾 X5 最低价 请 填写 以下 信息 会 信息 保密 经销商 第一 时间 为您服务 意向 车型 最近 30 天 已有 28 询价 免责 声明 车主 家 车商 通 信息内容 系 经销商 自行 发布 真实性 准确性 合法性 经销商 负责 车主 之家 提供 保证 承担 法律责任 分享 分享 微信 X 微信 扫 一扫 分享 朋友圈 佛山 汉腾 X5 更 优惠 更 可能 感兴趣 车 更 车主 家 
WeMo 智能 调光器 Apple Home Kit 连接 手机 中国 新闻 今年 早些时候 WeMoMini 智能开关 第一款 使用 Apple 软件 Home Kit 身份验证 方法 直接 Apple Home Kit 连接 智能家居 工具 意味着 需要 Apple 内置 MFi 芯片组 不再 需要 配备 MFi WeMoBridge 插件 集线器 配件 现在 WeMo 智能灯 开关 正 紧随其后 WeMoMin 智能开关 内部 没有 MFi 芯片 不再 重要 现在 巧妙 新 软件 方法 直接 Apple Home Kit 连接 WeMo 智能 调光器 Home Kit 兼容性 意味着 设备 添加 OS 设备 Apple 主页 应用程序 中 控制 使用 制造商 提供 Home Kit 兼容 工具 进行 智能控制 使用 Siri 命令 控制 Home Kit 兼容 工具 WeMo 智能 调光器 灯 开关 打开 关闭 调光 WeMo 智能 调光器 控制 灯光 合并 设备 场景 中 使用 自定义 语音 命令 激活 想 观看 电影 时 说 Siri Showtime 自动 调暗 灯光 智能 调整 色调 手机 中国 新闻 中心 
陕钢 集团 召开 安全 专题 会 陕钢 集团 6 月 29 日 7 月 11 日 龙钢 公司 汉钢 公司 召开 安全 专题 会 传达 贯彻 全国 冶金 有色 行业 安全监管 工作 会议 全省 工贸 行业 安全监管 工作 视频会议 精神 安排 部署 下半年 安全 生产 重点 工作 集团公司 总工程师 韦武 强 参加 会议 集团 安环 能源部 部长 樊定民 主持会议 韦武 强 指出 上半年 集团公司 安全 生产 形势 总体 稳定 安全 基础 依然 薄弱 员工 三违 整治 外协 安全监管 设备 设施 运行 方面 存在 不足 短板 必须 深入研究 认真对待 强调 当前 高温 暑期 及主 汛期 各类 安全 生产 事故 多发期 高发期 下半年 国家 应急管理 部将 钢铁企业 重大 生产 安全 事故隐患 排查 治理 专项 行动 加大 明查暗访 力度 组织 开展 省际 交叉 核验 集中 曝光 一批 违法 钢铁企业 安全 生产 形势 依然 严峻 单位 认清 目前 安全 生产 大势 认真 贯彻落实 习近平 总书记 安全 生产 重要 思想 进一步 增强 安全 工作 认识 时刻 保护 职工 生命安全 工作 底线 时刻 紧绷 安全 弦 安全 工作 只能 加强 不能 削弱 坚决 态度 全力 做好 安全 生产 工作 要求 单位 认真 开展 四类 危险 作业 安全 专项 整治 活动 有效 遏制 各类 重大事故 发生 二要 进一步 做好 暑期 汛期 安全 生产 工作 确保 人员 设备 安全 度夏 三要 继续 开展 钢铁企业 重大 生产 安全 事故隐患 排查 治理 专项 行动 安全 专项 攻坚 行动 认真 及时 整改 安全 事故隐患 确保 专项 行动 各项 工作 落到实处 四要 切实加强 安全 双重 预防 体系 建设 确保 完成 双重 预防 体系 建设 任务 有效 运行 事故 预防 工作 取得 明显 成效 五要 加强 消防安全 管理工作 提升 企业 消防 管理水平 六要 深刻 汲取 事故 教训 扭转 目前 安全 被动局面 七要 加强 安全生产标准化 工作 强化 安全 标准化 检查 考评 做实 做 细 安全 标准化 工作 会议 开展 百日 安全 活动 发挥 党政工 团 齐抓共管 作用 营造 安全 氛围 加强 防汛 防暑 工作 开展 安全 专项 整治 推进 安全 双重 预防 体系 建设 强化 安全 专项 攻坚 行动 方面 下半年 安全 重点 工作 进行 安排 部署 会上 解读 学习 冶金 企业 有色金属 企业 安全 生产 规定 工贸 行业 重大 安全 事故隐患 判定 标准 2017 版 国家 安监 总局 开展 钢铁企业 重大 生产 安全 事故隐患 排查 治理 专项 行动 通知 近期 4 冶金 企业 生产 安全事故 基本 情况 通报 国家 应急管理 部 明查暗访 河南 江西省 钢铁行业 专项 行动 工作 情况 通报 集团 机关 部门 负责人 子公司 党政 主要 领导 单位 领导 部门 负责人 分厂 事业部 党政 负责人 安全 主管 领导 安全 科长 作业 长 班组长 代表 参加 会议 陕钢 集团 
中央 国家机关 书画 十人展 人民 美术馆 开幕 贯彻 文艺 工作 座谈会 精神 文艺 人民 服务 社会 服务 创作 导向 2015 年 1 月 31 日 中央 国家机关 书法家 协会 美术家 协会 共同 主办 人民 美术网 北京 红博馆 协办 尚书 迎大美之春 中央 国家机关 书画 十人展 人民 美术馆 开幕 展期 2 月 10 日 结束 人民 美术网 资讯 

训练模型

接下来,如果你在终端中运行./build/glove
会给出你运行项目的完整参数代码和例子

Example usage:
./glove -input-file cooccurrence.shuf.bin -vocab-file vocab.txt -save-file vectors -gradsq-file gradsq -verbose 2 -vector-size 100 -threads 16 -alpha 0.75 -x-max 100.0 -eta 0.05 -binary 2 -model 2

如果觉得参数太多且不知其含义,那还有更简单的方法,打开demo.sh,修改其默认语料和相关参数

#!/bin/bash
set -e

# Makes programs, downloads sample data, trains a GloVe model, and then evaluates it.
# One optional argument can specify the language used for eval script: matlab, octave or [default] python

make
#if [ ! -e text8 ]; then
#  if hash wget 2>/dev/null; then
#    wget http://mattmahoney.net/dc/text8.zip
#  else
#    curl -O http://mattmahoney.net/dc/text8.zip
#  fi
#  unzip text8.zip
#  rm text8.zip
#fi

CORPUS=/media/brx/2d79a6a5-f419-aa4c-b391-314a73033208/Data/vector/textdbAllsegTCU.txt
VOCAB_FILE=vocab.txt
COOCCURRENCE_FILE=cooccurrence.bin
COOCCURRENCE_SHUF_FILE=cooccurrence.shuf.bin
BUILDDIR=build
SAVE_FILE=vectors
VERBOSE=2
MEMORY=4.0
VOCAB_MIN_COUNT=5
VECTOR_SIZE=50
MAX_ITER=15
WINDOW_SIZE=15
BINARY=2
NUM_THREADS=8
X_MAX=10

echo
echo "$ $BUILDDIR/vocab_count -min-count $VOCAB_MIN_COUNT -verbose $VERBOSE < $CORPUS > $VOCAB_FILE"
$BUILDDIR/vocab_count -min-count $VOCAB_MIN_COUNT -verbose $VERBOSE < $CORPUS > $VOCAB_FILE
echo "$ $BUILDDIR/cooccur -memory $MEMORY -vocab-file $VOCAB_FILE -verbose $VERBOSE -window-size $WINDOW_SIZE < $CORPUS > $COOCCURRENCE_FILE"
$BUILDDIR/cooccur -memory $MEMORY -vocab-file $VOCAB_FILE -verbose $VERBOSE -window-size $WINDOW_SIZE < $CORPUS > $COOCCURRENCE_FILE
echo "$ $BUILDDIR/shuffle -memory $MEMORY -verbose $VERBOSE < $COOCCURRENCE_FILE > $COOCCURRENCE_SHUF_FILE"
$BUILDDIR/shuffle -memory $MEMORY -verbose $VERBOSE < $COOCCURRENCE_FILE > $COOCCURRENCE_SHUF_FILE
echo "$ $BUILDDIR/glove -save-file $SAVE_FILE -threads $NUM_THREADS -input-file $COOCCURRENCE_SHUF_FILE -x-max $X_MAX -iter $MAX_ITER -vector-size $VECTOR_SIZE -binary $BINARY -vocab-file $VOCAB_FILE -verbose $VERBOSE"
$BUILDDIR/glove -save-file $SAVE_FILE -threads $NUM_THREADS -input-file $COOCCURRENCE_SHUF_FILE -x-max $X_MAX -iter $MAX_ITER -vector-size $VECTOR_SIZE -binary $BINARY -vocab-file $VOCAB_FILE -verbose $VERBOSE
if [ "$CORPUS" = 'text8' ]; then
   if [ "$1" = 'matlab' ]; then
       matlab -nodisplay -nodesktop -nojvm -nosplash < ./eval/matlab/read_and_evaluate.m 1>&2 
   elif [ "$1" = 'octave' ]; then
       octave < ./eval/octave/read_and_evaluate_octave.m 1>&2
   else
       echo "$ python eval/python/evaluate.py"
       python eval/python/evaluate.py
   fi
fi

将默认的text8部分代码注释掉,之后将CORPUS改为自己语料的路径位置,其余参数可以根据自己的情况进行修改或保持默认不变。

之后就可以开始训练了,终端中输入:

make
./demo.sh

导入模型

训练完成后会得到txt格式的向量文件vectors.txt,相比于word2vec训练出的词向量,GloVe的词向量少了第一行的vacob_size vector_size,第一个数指明一共有多少个向量,第二个数指明每个向量有多少维,可以自行加上变为word2vec的可调用形式

from gensim.models import Word2Vec   
model = Word2Vec.load_word2vec_format(‘vectors.txt’, binary=False) 

如果不知道如何添加或者相关维数,也可以使用gensim进行转化:

from gensim.test.utils import datapath, get_tmpfile
from gensim.models import KeyedVectors
# 输入文件
glove_file = datapath('vectors.txt')
# 输出文件
tmp_file = get_tmpfile("test_word2vec.txt")

# call glove2word2vec script
# default way (through CLI): python -m gensim.scripts.glove2word2vec --input  --output 

# 开始转换
from gensim.scripts.glove2word2vec import glove2word2vec
glove2word2vec(glove_file, tmp_file)

# 加载转化后的文件
model = KeyedVectors.load_word2vec_format(tmp_file)
print(model['月'])

如果能打印出相关的词向量,恭喜你,训练和导入的方式是成功了,你获得了自己语料的GloVe词向量

你可能感兴趣的:(如何训练并使用GloVe词向量模型)