`
yesjavame
  • 浏览: 656220 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

延续上几个月写的一段代码,可按照几率生成随机话单内容

OS 
阅读更多
  1. #-*-coding:cp936-*-
  2. #===============================================================================
  3. #Author:nilxin@21cn.com
  4. #Time:2008-10-28
  5. #Function:
  6. #1.实现分析内容自动生成功能
  7. #2.实现自动从一个数据字典中获得某种类型的词组加入到原始话单中
  8. #==============================================================================
  9. importos,math,random
  10. globalnumber
  11. defGetKeyWord():
  12. #获取关键字
  13. #key_words=raw_input("请输入原始话单语句:")
  14. key_words="想起当年俺们宿舍一哥们抢别人的包子吃,边吃边说:就这玩意儿,只配塞屁股"
  15. returnkey_words
  16. defReadDict():
  17. #获得当前文件所在路径
  18. newpath=os.getcwd()+"\\config\\WordData.date"
  19. read_list=open(newpath,'r')
  20. #读取词库信息缓存到内存中
  21. read_dict=read_list.readlines()
  22. #初始化字典
  23. data_dict={}
  24. #temp_dict=[]
  25. number=0
  26. #获取前200个词组,并存放在10个队列中,构成一个数据字典
  27. foryinrange(10):
  28. temp_dict=[]
  29. foriinrange(20):
  30. #全局变量number用来控制每个队列取多少个词组
  31. number+=1
  32. #数据字段:data_dict,分别存在放在10个队列中
  33. temp_dict.append(str(read_dict[number][:-1]))
  34. temp_change=temp_dict
  35. data_dict[y]=temp_change
  36. #返回词组字典
  37. returndata_dict
  38. defAssorted():
  39. key_words=GetKeyWord()
  40. data_dict=ReadDict()
  41. rule_dict={0:(0,30),1:(40,60),2:(60,100)}
  42. #printlen(dict.values())
  43. #获取字典索引数组长度,应该是9位(0-9)
  44. foryinrange(len(rule_dict.keys())):
  45. #print"test=",data_dict[y]
  46. #初始化变量
  47. sentence=""
  48. rule_temp=0
  49. #获得每组数据,并对每组数据进行排序,随机抽取5个词汇组成一个句子
  50. #printlen(data_dict.values()[y])
  51. random_count=random.randint(0,len(data_dict.values()[y]))
  52. #规则字典来取得每组数据的几率,则每次话单调用时会根据随机数所在区间,来获取相应级别的关键字
  53. rule_temp=random.randint(0,len(rule_dict.keys())-1)
  54. #print"test",len(rule_dict.keys())-1,rule_dict[0]
  55. rule_value=rule_dict[rule_temp]
  56. random_value=random.randint(0,100)
  57. #print"random_value",random_value
  58. foriinrange(len(rule_dict.keys())):
  59. try:
  60. ifrandom_valueinrange(rule_dict.values()[i][0],rule_dict.values()[i][1]):
  61. #print"rule_value",rule_dict.values()[i][0],rule_dict.values()[i][1]
  62. #printi
  63. sentence+=data_dict[i][random_count]
  64. break;
  65. except:
  66. continue;
  67. #print"---------------------------------------"
  68. print"关键字等级:%d,关键字内容:%s"%(i,(key_words)+sentence)
  69. if__name__=="__main__":
  70. #调用方法
  71. foriinrange(100):
  72. Assorted()
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics