前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >gensim,dictionary

gensim,dictionary

作者头像
用户1733462
发布2018-07-25 16:35:17
1.1K0
发布2018-07-25 16:35:17
举报
文章被收录于专栏:数据处理

操作词汇的库很多nltk,jieba等等,gensim处理语言步骤一般是先用gensim.utils工具包预处理,例如tokenizegensim词典官网,功能是将规范化的词与其id建立对应关系

代码语言:javascript
复制
from gensim.corpora.dictionary import Dictionary
def print_dict(dic):
    for key in dic:
        print key,dic[key]
a = [[u'巴西',u'巴西',u'英格兰'],[u'巴西',u'西班牙',u'法国']]
b = [u'巴西',u'巴西',u'比利时',u'法国',u'法国']
# a用来构造词典
dic = Dictionary(a)

输出字典

代码语言:javascript
复制
print dic
print print_dict(dic)

可以发现,建立id与token一一映射

代码语言:javascript
复制
########dictionary信息##########
Dictionary(4 unique tokens: [u'\u6cd5\u56fd', u'\u5df4\u897f', u'\u897f\u73ed\u7259', u'\u82f1\u683c\u5170'])
2 法国
0 巴西
3 西班牙
1 英格兰

字典,{单词id,在多少文档中出现}

代码语言:javascript
复制
print dictionary.dfs #字典,{单词id,在多少文档中出现}

巴西出现2个文档中,法国、西班牙、英格兰只出现在一个文档中

代码语言:javascript
复制
{0: 2, 1: 1, 2: 1, 3: 1}

文档数目

代码语言:javascript
复制
print dic.num_docs #文档数目
print_dict(dict(dic.items()))
代码语言:javascript
复制
 2
0 巴西
1 英格兰
2 法国
3 西班牙

字典,{单词id,对应的词}

代码语言:javascript
复制
print_dict(dic.id2token) #字典,{单词id,对应的词}
代码语言:javascript
复制
字典,{单词id,对应的词}
0 巴西
1 英格兰
2 法国
3 西班牙

字典,{词,对应的单词id}

代码语言:javascript
复制
print_dict(dic.token2id) #字典,{词,对应的单词id}
代码语言:javascript
复制
法国 2
巴西 0
西班牙 3
英格兰 1

所有词的个数

代码语言:javascript
复制
print dic.num_pos #所有词的个数
代码语言:javascript
复制
6

每个文件中不重复词个数的和(2+3)

代码语言:javascript
复制
print dic.num_nnz #每个文件中不重复词个数的和
代码语言:javascript
复制
5

result为b文章转换得到的词袋,列表[(单词id,词频)]

代码语言:javascript
复制
# allow_update:T or F,是否将b数据到字典中
# result返回b的词袋结果,list
# missing 丢失数据,字典类型
result, missing = dic.doc2bow(b, allow_update=False, return_missing=True)
print "词袋b,列表[(单词id,词频)]"
print result
print_dict(dic)
print_dict(missing)
代码语言:javascript
复制
词袋b,列表[(单词id,词频)]
[(0, 2), (2, 2)]
2 法国
0 巴西
3 西班牙
1 英格兰
比利时 1

输出词袋信息

代码语言:javascript
复制
print "########bow信息##########"
for _, freq in result:
    print _, dic.id2token[_], freq
代码语言:javascript
复制
0 巴西 2
2 法国 2

过滤文档频率大于no_below,小于no_above*num_docs的词

代码语言:javascript
复制
print "########dictionary信息##########"
# 过滤文档频率大于no_below,小于no_above*num_docs的词
dic.filter_extremes(no_below=1, no_above=0.5, keep_n=10)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.07.07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档