学习tf的时候用到的一个词汇创建工具,比较方便,记录其使用方法。


1. 导入


from tensorflow.contrib import learnvp = learn.preprocessing.VocabularyProcessor(100, 0, tokenizer_fn=chinese_tokenizer)

其中VocabularyProcessor(max_document_length,min_frequency=0,vocabulary=None, tokenizer_fn=None)的构造函数中有4个参数

max_document_length是文档的最大长度。如果文本的长度大于最大长度,那么它会被剪切,反之则用0填充

min_frequency词频的最小值,出现次数>最小词频 的词才会被收录到词表中

vocabulary CategoricalVocabulary 对象,不太清楚使用方法
tokenizer_fn tokenizer function,讲句子或给定文本格式 token化得函数,可以理解为分词函数

2.token化

vp = learn.preprocessing.VocabularyProcessor(10, tokenizer_fn=list)
x = list(vp.fit_transform(["abc", "bbd"]))
print(x)

创建一个长为10的词表,然后将字符串token化得到结果为

也可以结合中文来做,当然tokenizer_fn要与文本相适应,可以实现自己的tokenizer function,如

from jieba import cut
from tensorflow.contrib import learn
import numpy as npDOCUMENTS = ['这是一条测试1','这是一条测试2','这是一条测试3','这是其他测试',
]def chinese_tokenizer(docs):for doc in docs:yield list(cut(doc))vocab = learn.preprocessing.VocabularyProcessor(10, 0, tokenizer_fn=chinese_tokenizer)
x = list(vocab.fit_transform(DOCUMENTS))
print(np.array(x))

这里中文引入了jieba分词,实现了自己的tokenizer函数,输出结果如下:

CategoricalVocabulary 对象可以先构建一个词典,再做token化,还是不太熟,但是有一个小demo可以示范:

vocab = learn.preprocessing.CategoricalVocabulary()
vocab.get("A")
vocab.get("B")
vocab.freeze()
vocab_processor = learn.preprocessing.VocabularyProcessor(max_document_length=4,vocabulary=vocab,tokenizer_fn=list)
tokens = vocab_processor.fit_transform(["ABC", "CBABAF"])
print(np.array(list(tokens)))

这里预先创建了一个词典,添加了"A","B" 进去,并且设置最大文本长度为4,结果如下

我们可以还可以观察得到的词典,以dict的形式输出 这是一个 词--->词表id的映射

vocab_dict = vocab.vocabulary_._mapping
print(vocab_dict)

分别输出以上的中文词表,和通过CategoricalVocabulary构建的词表如下

反向的索引 即 词表id--->词的映射 这是一个列表

print(vocab_dict)
print(vocab.vocabulary_._reverse_mapping)

可以通过id索引到词

vocab.vocabulary_.reverse(3)

输出 在词表中id为3的词

3.存储和加载

vocab.save('vocab.pickle')
vocab = VocabularyProcessor.restore('vocab.pickle')

作者:NLP幼儿园
链接:https://www.jianshu.com/p/db400a569730
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

用tf的VocabularyProcessor创建词汇表vocab相关推荐

  1. tflearn的VocabularyProcessor用法:建立中文词汇表和把文本转为词ID序列

    # -*- coding: utf-8 -*-from hanziconv import HanziConv from jieba import cut from tflearn.data_utils ...

  2. 自然语言处理:问答语料生成词汇表,词转向量(三)

    自然语言处理:分词(断词)与关键词提取方法(一) 自然语言处理:scrapy爬取关键词信息(二) 1 获取语料 小黄鸡语料: 链接:https://pan.baidu.com/s/1eTuNwfFuC ...

  3. 利用tensorflow的VocabularyProcessor增量更新词汇表

    1.背景 在初版模型,基于训练数据集,利用VocabularyProcessor构建了词汇表,存储文件为old_vocab.pickle.在以后的增量更新中 如何把已经保存的上版词汇加载上,同时加入增 ...

  4. 用tf的VocabularyProcessor使用细节

    一.如何创建保存使用 1. 导入 from tensorflow.contrib import learnvp = learn.preprocessing.VocabularyProcessor(10 ...

  5. 机器学习常用术语词汇表

    EOF是一个计算机术语,为End Of File的缩写 ,在操作系统中表示资料源无更多的资料可读取. 刚接触机器学习框架 TensorFlow 的新手们,这篇由 Google 官方出品的常用术语词汇表 ...

  6. 超全汇总!机器学习常用术语词汇表

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 刚接触机器学习框架 TensorFlow 的新手们,这篇由 Goo ...

  7. 超全机器学习术语词汇表

    from: https://www.jianshu.com/u/c9bd3225567e A 准确率(accuracy) 分类模型预测准确的比例.在多类别分类中,准确率定义如下: 在二分类中,准确率定 ...

  8. 谷歌开发者机器学习词汇表:纵览机器学习基本词汇与概念

    选自Google Developers 机器之心编译 机器之心曾开放过人工智能术语集 ,该术语库项目目前收集了人工智能领域 700 多个专业术语,但仍需要与各位读者共同完善与修正.本文编译自谷歌开发者 ...

  9. 【机器学习基础】超全汇总!机器学习常用术语词汇表(建议收藏)

    刚接触机器学习框架 TensorFlow 的新手们,这篇由 Google 官方出品的常用术语词汇表,一定是你必不可少的入门资料!本术语表列出了基本的机器学习术语和 TensorFlow 专用术语的定义 ...

最新文章

  1. php 递归删除函数
  2. NodeJS入门04-Express路由和中间件 - 小之 - 博客园
  3. QCustomplot(一) 能做什么事
  4. java密码学原型算法_java密码学原型算法实现——双线性对.pdf
  5. java将图片铺满panel_如何让添加的背景图片铺满整个JFrame?
  6. 解释性语言和汇编性语言对比
  7. 信号模型噪声服从零均值高斯分布_非高斯噪声下基于分数低阶循环谱的调制识别方法...
  8. 设计模式之开放封闭原则
  9. 精通ASP.NET MVC——控制器和动作
  10. tabbar角标 小程序_【沃行课堂】恭喜你遇到“坑”,小程序踩坑指南
  11. 当迷茫在大学里泛滥成灾——李开复
  12. 关闭git命令窗快捷键_git常用命令与AndroidStudio常用快捷键
  13. .net工作流框架,拖拽式表单设计,仿钉钉流程设计
  14. Cisco Packet Tracer安装教程
  15. 教你如何用C语言做一个简单的贪吃蛇
  16. web前端期末大作业 基于HTML+CSS家乡主题毕业设计源码
  17. HTML+CSS实现背景图片铺满页面的方法
  18. 瞎子摸象---汇兑损益
  19. jquery的设置多个 CSS 属性
  20. android 手机中boot.img基址的计算方法(zz)

热门文章

  1. JavaScript权威指南--客户端存储
  2. 2015山东信息学夏令营 Day4T3 生产
  3. 实现SELECT的全选,反选,AB选的JAVASCRIPT代码
  4. 利用匈牙利算法Hopcroft-Karp算法解决二分图中的最大二分匹配问题 例poj 1469 COURSES...
  5. Go web 编程资源
  6. 可以查到的资料和可以淘到的原件 DIY 四轴
  7. 【算法】ROI Align 原理
  8. [云炬python3玩转机器学习笔记] 1-3课程所使用的主要技术栈
  9. 学长毕业日记 :本科毕业论文写成博士论文的神操作20170401
  10. 从零开始带你一步一步使用YOLOv3测试自己的数据