# !/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2018/8/14 上午11:06
# @Author : chengwei
# @Site :
# @File : test.py
# @Software: PyCharm
import sys
if sys.version[0] == '2':
reload(sys)
sys.setdefaultencoding("utf-8")
import jieba
from hanziconv import HanziConv
from tensorflow.contrib import learn
import numpy as np
max_document_length = 20 # 文本最大词长度
x_text = [
'全球最大的中文搜索引擎、致力于让网民更便捷地获取信息,找到所求。百度超过千亿的中文网页数据库,可以瞬间找到相关的搜索结果。',
'百度网盘,让美好永远陪伴',
'百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全稳固,支持教育网加速,支持手机端。现在注册即有机会享受15G的免费存储空间',
'百度網盤,讓美好永遠陪伴',
'百度網盤為您提供文件的網絡備份、同步和分享服務。空間大、速度快、安全穩固,支持教育網加速,支持手機端。現在註冊即有機會享受15G的免費存儲空間',
]
def jieba_cut(x):
for i in x:
i_ = HanziConv.toSimplified(i).lower() # 繁体转简体并转小写
yield list(jieba.cut(i_))
# 创建词汇表
vocab_processor = learn.preprocessing.VocabularyProcessor(max_document_length=max_document_length, min_frequency=1,
tokenizer_fn=jieba_cut)
vocab_processor.fit(x_text)
## Extract word:id, id:word, freq sort mapping from the object.
word2id_dict = vocab_processor.vocabulary_._mapping
id2word_dict = vocab_processor.vocabulary_._reverse_mapping
freq_sort = vocab_processor.vocabulary_._freq
# 保存和加载词汇表
vocab_processor.save('vocab.pickle') # 保存
vocab = vocab_processor.restore('vocab.pickle') # 加载
# 文本转为词ID序列,未知或填充用的词ID为0,随机文本
print(next(vocab_processor.transform(['全球最大的中文搜索引擎、致力于让网民更便捷地获取信息,找到所求。百度超'
'过千亿的中文网页数据库,可以瞬间找到相关的搜索结果。'])).tolist())
# [0, 0, 2, 9, 0, 1, 0, 7, 0, 0, 0, 0, 0, 42, 24, 0, 4, 0, 0, 0]
# 文本转为词ID序列,未知或填充用的词ID为0,直接全文输出
x = np.array(list(vocab_processor.fit_transform(x_text)))
print(x)
# [[ 0 0 2 9 0 1 0 7 0 0 0 0 0 42 24 0 4 0 0 0]
# [ 6 33 3 7 39 31 41 0 0 0 0 0 0 0 0 0 0 0 0 0]
# [ 6 34 22 25 27 2 38 17 1 15 16 12 29 4 36 18 1 40 21 1]
# [ 6 33 3 7 39 31 41 0 0 0 0 0 0 0 0 0 0 0 0 0]
# [ 6 34 22 25 27 2 38 17 1 15 16 12 29 4 36 18 1 40 21 1]]
# id转文本
for i in vocab_processor.reverse(x):
print(i)
# <UNK> <UNK> 的 中文 <UNK> 、 <UNK> 让 <UNK> <UNK> <UNK> <UNK> <UNK> , 找到 <UNK> 。 <UNK> <UNK> <UNK>
# 百度网 盘 , 让 美好 永远 陪伴 <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK>
# 百度网 盘为 您 提供 文件 的 网络 备份 、 同步 和 分享 服务 。 空间 大 、 速度 快 、
# 百度网 盘 , 让 美好 永远 陪伴 <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK> <UNK>
# 百度网 盘为 您 提供 文件 的 网络 备份 、 同步 和 分享 服务 。 空间 大 、 速度 快 、
if __name__ == '__main__':
pass
tensorflow.contrib.learn.preprocessing.VocabularyProcessor,繁体转简体
最新推荐文章于 2022-09-27 21:34:41 发布