def creat_poem(): word_dict = preprocess.get_dict() word = word_dict.keys() _, last_state, _, _, probs, init_state, cell = network(flag='creat') def to_word(weights): t = np.cumsum(weights) s = np.sum(weights) sample = int(np.searchsorted(t, np.random.rand(1) * s)) return word[sample] with tf.Session() as sess: sess.run(tf.global_variables_initializer()) saver = tf.train.Saver(tf.global_variables()) saver.restore(sess, './model/test.mod-50') state_ = sess.run(cell.zero_state(1, tf.float32)) x = np.array([list(map(word_dict.get, '['))]) [probs_, state_] = sess.run([probs, last_state], feed_dict={input_ids: x, init_state: state_}) word = to_word(probs_) # word = words[np.argmax(probs_)] poem = '' while word != ']': poem += word x = np.zeros((1, 1)) x[0, 0] = word_dict[word] [probs_, state_] = sess.run([probs, last_state], feed_dict={input_ids: x, init_state: state_}) word = to_word(probs_) # word = words[np.argmax(probs_)] return poem
# -*- coding: utf-8 -*- import preprocess import tensorflow as tf import tensorflow.contrib as tf_contrib import time import numpy as np import pickle word_dict_size = len(preprocess.get_dict()) # def poetry_2_num(poetry): # vector = [] # for word in poetry: # vector.append(word_dict.get(word)) # return vector class Config(object): BATCH_SIZE = 1 PROB_KEEP = 0.95 # 每此参与训练的节点比例 HIDEN_SIZE = 1 # 隐藏层神经元个数 NN_LAYER = 2 # 隐藏层数目 MAX_GRAD_NORM = 5 # 最大梯度模 MAX_EPOCH = 50 # 文本循环次数 LEARNING_RATE = 0.002 # class TrainSet(object): # def __init__(self, batch_size, file_path): # self._file_path = file_path
#-*- coding:utf-8 -*- import datetime import tensorflow as tf from BLSTM import BLSTM from util.train_util import get_embedding from preprocess import get_dict import sys # 一些配置和初始化 emb_path = 'wiki1.zh.text.vector' dict_path = 'index2answer.dict' gpu_config = "/gpu:0" num_steps = 100 print("loading the model,please wait a minute...") index2answer = get_dict(dict_path) #index2answer = {1: '采用“流量模块+语音模块+短信模块”自由定制形式,每个模块提供阶梯单价,用户自由定制,任意组合,每月承诺消费不低于19元。', 2: '个人定制套餐为4G套餐,默认开通4G功能。', 3: '若您为个人定制套餐用户,您在手机端进入手机版电信营业厅,完成登录后,点击底部导航“服务”,切换到“办理”页面中进行办理。', 4: '很抱歉,目前只支持新入网用户办理此套餐。', 5: '您可以到本地营业厅办理销户。', 6: '号卡激活后当月月基本功能费和套餐内容均按天折算计扣,按照过渡期资费处理。', 7: '自激活日起,根据订购套餐月基本费按天折算计扣(入网当日到月底),四舍五入到分,套餐内容(如手机上网流量、通话时长、短信条数等)按天数折算,向上取整,业务转换、业务转赠功能次月开放。', 8: '套餐外资费:国内流量0.0001元/KB,国内通话0.15元/分钟,国内短信0.1元/条,其他按标准资费收取。', 9: '具体可变更套餐规则请咨询当地营业厅。', 10: '个人定制套餐暂不支持副卡办理。', 11: ' 个人定制套餐暂不支持办理流量包、语音包、短信包业务。', 12: '个人定制套餐暂不支持流量包业务。', 13: '个人定制套餐暂不支持语音包业务。', 14: '个人定制套餐暂不支持短信包业务。', 15: '转换业务是指仅套餐内订购三种业务量(含套餐内被赠的业务量)可在当月内按照转换规则进行自由互转,套餐外优惠叠加及其他活动转赠或者充值的业务量(例如流量卡充值流量)不在转换范围内,例如:使用剩余语音业务量可按照转换规则转换为流量。转换规则为1分钟语音=2MB流量=2条短信。每月可用于转换的语音上限值为1000分钟(加和值,即多次使用语音进行转换的语音总量不超过1000分钟),可用于转换的流量上限值为1000MB(加和值),可用于转换的短信上限值为100条(加和值)每月最多转换3次,每次转换1种业务。个人定制当月转赠、转换及套餐内剩余流量均可保留到次月,但这些流量在次月不可被再次转赠和转换。套餐业务转换在您账户正常状态下可使用,如您账户存在欠费、停机、挂失等问题,则无法使用该项业务。', 16: '转赠业务是指仅套餐内订购流量的剩余可用量(含套餐内转换业务量,不能二次转赠)可在当月内向同时正在使用本套餐本省的其他用户进行转赠,套餐外优惠叠加或充值的业务量(例如流量卡充值流量)不在转赠范围内。每月可用于转赠的流量上限值为1000MB(加和值,即多次使用流量进行转赠的总量不超过1000MB)每月最多转赠3次,单次转赠1人。每月获赠不受次数限制。个人定制当月转赠、转换及套餐内剩余流量均可保留到次月,但这些流量在次月不可被再次转赠和转换。套餐业务转换在您账户正常状态下可使用,如您账户存在欠费、停机、挂失等问题,则无法使用该项业务。', 17: '您在手机端进入手机版电信营业厅,完成登录后,点击底部导航“服务”,切换到“办理”页面即可进行“套餐变更”办理。', 18: '您在手机端进入手机版电信营业厅,完成登录后,点击底部导航“服务”,切换到“办理”页面即可进行“套餐转换”办理。', 19: '您在手机端进入手机版电信营业厅,完成登录后,点击底部导航“服务”,\t切换到“办理”页面即可进行“套餐转赠”办理。', 20: '您在手机端进入手机版电信营业厅,完成登录后,点击底部导航“服务”,切换到“查询”页面即可查询套餐变更记录。', 21: '您好,有的。当您在网上营业厅使用转赠功能时,可勾选短信提醒被赠人,并写下您对被赠人的留言。当您在手机版电信营业厅使用转赠功能时,会默认给被赠人发送短信提醒,您还可以写下您给被赠人的留言。', 22: '您好,个人定制套餐不激活保留时间因全国各省规则不同,请您咨询本省10000号或到本地营业厅进行咨询。', 23: '1.登录网上营业厅。2.登录手机营业厅客户端。3.联系当地人工客服或者前往营业厅进行查询。', 24: '您可登录网上营业厅http://www.189.cn/ 首页点击费用>我的话费>余额查询,即可查询可用余额情况。'} # 读取词向量 embedding_matrix = get_embedding(emb_path, 'word', 400) print("building model") config = tf.ConfigProto(allow_soft_placement=True) with tf.Session(config=config) as sess: with tf.device(gpu_config): initializer = tf.random_uniform_initializer(-0.02, 0.02) with tf.variable_scope("model", reuse=None, initializer=initializer): # 模型实例 model = BLSTM(400, 20, embedding_matrix, attention=True,
def initialize_naive_bayes(): POSITIVE_DICT_PATH = './data/positive_dict.csv' NEGATIVE_DICT_PATH = './data/negative_dict.csv' positive_dict = get_dict(POSITIVE_DICT_PATH) negative_dict = get_dict(NEGATIVE_DICT_PATH) return positive_dict, negative_dict