- #-*-coding:cp936-*-
- #===============================================================================
- #Author:nilxin@21cn.com
- #Time:2008-10-28
- #Function:
- #1.实现分析内容自动生成功能
- #2.实现自动从一个数据字典中获得某种类型的词组加入到原始话单中
- #==============================================================================
- importos,math,random
- globalnumber
- defGetKeyWord():
- #获取关键字
- #key_words=raw_input("请输入原始话单语句:")
- key_words="想起当年俺们宿舍一哥们抢别人的包子吃,边吃边说:就这玩意儿,只配塞屁股"
- returnkey_words
- defReadDict():
- #获得当前文件所在路径
- newpath=os.getcwd()+"\\config\\WordData.date"
- read_list=open(newpath,'r')
- #读取词库信息缓存到内存中
- read_dict=read_list.readlines()
- #初始化字典
- data_dict={}
- #temp_dict=[]
- number=0
- #获取前200个词组,并存放在10个队列中,构成一个数据字典
- foryinrange(10):
- temp_dict=[]
- foriinrange(20):
- #全局变量number用来控制每个队列取多少个词组
- number+=1
- #数据字段:data_dict,分别存在放在10个队列中
- temp_dict.append(str(read_dict[number][:-1]))
- temp_change=temp_dict
- data_dict[y]=temp_change
- #返回词组字典
- returndata_dict
- defAssorted():
- key_words=GetKeyWord()
- data_dict=ReadDict()
- rule_dict={0:(0,30),1:(40,60),2:(60,100)}
- #printlen(dict.values())
- #获取字典索引数组长度,应该是9位(0-9)
- foryinrange(len(rule_dict.keys())):
- #print"test=",data_dict[y]
- #初始化变量
- sentence=""
- rule_temp=0
- #获得每组数据,并对每组数据进行排序,随机抽取5个词汇组成一个句子
- #printlen(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
- foriinrange(len(rule_dict.keys())):
- try:
- ifrandom_valueinrange(rule_dict.values()[i][0],rule_dict.values()[i][1]):
- #print"rule_value",rule_dict.values()[i][0],rule_dict.values()[i][1]
- #printi
- sentence+=data_dict[i][random_count]
- break;
- except:
- continue;
- #print"---------------------------------------"
- print"关键字等级:%d,关键字内容:%s"%(i,(key_words)+sentence)
- if__name__=="__main__":
- #调用方法
- foriinrange(100):
- Assorted()
延续上几个月写的一段代码,可按照几率生成随机话单内容
最新推荐文章于 2023-02-10 16:36:11 发布