tensorflow.contrib.learn.preprocessing.VocabularyProcessor,繁体转简体

# !/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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值