延续上几个月写的一段代码,可按照几率生成随机话单内容
来源:互联网 发布:过期杂志如何处理 知乎 编辑:程序博客网 时间:2024/06/02 14:07
- # -*- coding: cp936 -*-
- #===============================================================================
- # Author: nilxin@21cn.com
- # Time:2008-10-28
- # Function:
- # 1.实现分析内容自动生成功能
- # 2.实现自动从一个数据字典中获得某种类型的词组加入到原始话单中
- #==============================================================================
- import os,math,random
- global number
- def GetKeyWord():
- #获取关键字
- #key_words= raw_input("请输入原始话单语句:")
- key_words = "想起当年俺们宿舍一哥们抢别人的包子吃,边吃边说:就这玩意儿,只配塞屁股"
- return key_words
- def ReadDict():
- #获得当前文件所在路径
- newpath = os.getcwd()+"//config//WordData.date"
- read_list = open(newpath,'r')
- #读取词库信息缓存到内存中
- read_dict = read_list.readlines()
- #初始化字典
- data_dict = {}
- #temp_dict = []
- number = 0
- #获取前200个词组,并存放在10个队列中,构成一个数据字典
- for y in range(10):
- temp_dict = []
- for i in range(20):
- #全局变量number用来控制每个队列取多少个词组
- number += 1
- #数据字段:data_dict,分别存在放在10个队列中
- temp_dict.append(str(read_dict[number][:-1]))
- temp_change = temp_dict
- data_dict[y] = temp_change
- #返回词组字典
- return data_dict
- def Assorted():
- key_words = GetKeyWord()
- data_dict = ReadDict()
- rule_dict = {0:(0,30),1:(40,60),2:(60,100)}
- #print len(dict.values())
- #获取字典索引数组长度,应该是9位(0-9)
- for y in range(len(rule_dict.keys())):
- #print "test=",data_dict[y]
- #初始化变量
- sentence = ""
- rule_temp = 0
- #获得每组数据,并对每组数据进行排序,随机抽取5个词汇组成一个句子
- #print len(data_dict.values()[y])
- random_count = random.randint(0,len(data_dict.values()[y]))
- #规则字典来取得每组数据的几率,则每次话单调用时会根据随机数所在区间,来获取相应级别的关键字
- rule_temp = random.randint(0,len(rule_dict.keys())-1)
- #print "test",len(rule_dict.keys())-1,rule_dict[0]
- rule_value = rule_dict[rule_temp]
- random_value = random.randint(0,100)
- #print "random_value",random_value
- for i in range(len(rule_dict.keys())):
- try:
- if random_value in range(rule_dict.values()[i][0],rule_dict.values()[i][1]):
- # print "rule_value",rule_dict.values()[i][0],rule_dict.values()[i][1]
- # print i
- sentence += data_dict[i][random_count]
- break;
- except:
- continue;
- #print "---------------------------------------"
- print "关键字等级:%d,关键字内容:%s" % (i,(key_words)+sentence)
- if __name__ == "__main__":
- #调用方法
- for i in range(100):
- Assorted()
- 延续上几个月写的一段代码,可按照几率生成随机话单内容
- 生成几率可配置的随机数
- 一段好玩的python代码--随机生成圆
- 根据设定好的几率来随机显示内容的算法
- 根据需求随机生成一段话
- 一段返回随机记录的代码
- 这几个月的内容
- 一段可自动点击运行的代码
- 随机几率的使用小窍门
- java 几率实现以55%的几率生成3
- 写的一段拖动对象的代码
- ajax 我写的一段代码
- 一段C语言写的病毒代码
- 自己写的一段重试代码
- #python#自己写的一段小代码
- 生成随机字符串的代码
- 随机生成一段包含固定字符的中文
- 教大家写几个可能用得上的css3简单动画
- 我型我秀~
- 网站(MYSQL)出现以下三种情况的真正原因是MCAFEE引起的
- C++基本特性(转)
- fc5启动提示cannot open font file none
- WinXP中IIS禁止访问连接的用户过多的解决办法
- 延续上几个月写的一段代码,可按照几率生成随机话单内容
- 答案啊
- Java的一些关键特性
- 四道微软面试算法题
- 利用ITaskbarList接口隐藏任务栏图标
- 【转】如何使用.NET配置文件(一)
- java架构设计(转)
- JAVA框架简介--摘自网友的博客
- sql生成脚本里SET ANSI_NULLS ON、SET QUOTED_IDENTIFIER ON 什么意思