推广 热搜: 公司  快速  上海  中国    未来  企业  政策  教师  系统 

如何优雅地使用大型词嵌入?

   日期:2024-11-09     作者:xinet    caijiyuan   评论:0    移动:http://keair.bhha.com.cn/mobile/news/364.html
核心提示:在开始之前,请下载文档。 百度网盘链接(337.97MB):https://pan.baidu.com/s/1WZEGJeHBzmqs_tVFV-zB

如何优雅地使用大型词嵌入?


在开始之前,请下载文档。 百度网盘链接(337.97MB:https://pan.baidu.com/s/1WZEGJeHBzmqs_tVFV-zBBA 提取码:8dqm


低内存机器 这里指的是内存小于32GB的计算机。

大型词嵌入 这里指的是词嵌入文件大于15G的词嵌入文件。

腾讯词嵌入 这里指的是腾讯发布的 ,其下载地址为(解压后:15.5GB:https://ai.tencent.com/ailab/nlp/data/Tencent_AILab_ChineseEmbedding.tar.gz,其下载页面为:https://ai.tencent.com/ailab/nlp/embedding.html


  本文解决了大型词嵌入在低性能、低内存机器上的资源耗尽的问题ResourceExhaustedError)。

  以腾讯词嵌入为例,腾讯中文的词向量映射集在解压后有15.5G,共计有8,824,330条字词短语,内存较小的计算机显然不能直接加载,故为满足小内存、低性能的计算机的需要,特建立对词嵌入的映射关系文件,映射后只有313MB,满足了此类计算机的需求。


  这里是典型的以时间换空间的方式解决在使用腾讯词嵌入的时候内存资源耗尽的问题。在词嵌入与程序之间建立一个中间的映射文件,程序通过映射文件读取词嵌入的内容,映射文件格式如下

  程序通过词汇可以访问到对应的文件指针的起始位置以及读取长度,然后程序就可以直接访问磁盘中的对应的数据了。


1. 安装linecache

 

2. 创建文件夹

  创建名字叫做“utils”的文件夹,里面放入“ShowProcess .py”,这个可以在文章末尾复制代码,可以直接从文中的百度网盘链接中下载。

  创建名字叫做“embeddings”的文件夹,里面放入解压好了的“Tencent_AILab_ChineseEmbedding.txt”文件,以及“ReadEmbeddings .py”,映射文件“embeddings_map_index.txt”也将在这里生成。

  目录结构如图

2. 加载模块

 

3. (可选)关键参数设置

   指定词嵌入文件位置(默认使用腾讯词嵌入)。

 

   指定词嵌入词条数量(默认使用腾讯词嵌入的词条数量)。

 

  如果有需要指定生成的映射文件的位置,可以在这里指定。

 

4. (首次使用)创建映射文件

  这个过程需要一个小时左右,可以选择自己生成,也可以选择博主生成好了的文件。

 

5. 加载词嵌入映射文件

  生成完之后就可将映射文件加载进内存了,你可自行查看映射列表的内容。

 

6. 单个查询

  这里有提供单个词组查询的功能

 

7. 批量查询

  这里有提供批量查询的功能

 

8. 释放内存

  当不再需要映射文件时,立即释放内存。

 

指定编码

  在初始化的时候就可指定全局编码,在读取词嵌入以及创建映射文件的时候可以使用统一的编码。

 

启用日志

  单独查询与批量查询都具备写入日志的功能(仅记录查询失败日志)。

 

启用元素删除功能

  元素删除功能在每个词汇仅查询一次的条件下才能启用,此功能在需要查询的词汇量特别大的时候会显著提升查询效率,有效减少查询时间,举个栗子

 

  由于Python的特性,此功能会影响到外部变量,受影响的外部变量

 

ShowProcess . py

 

ReadEmbeddings . py

本文地址:http://keair.bhha.com.cn/news/364.html    康宝晨 http://keair.bhha.com.cn/ , 查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。

 
 
更多>同类最新资讯
0相关评论

文章列表
相关文章
最新动态
推荐图文
最新资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  粤ICP备2023022329号