#!/usr/bin/python
# coding: UTF-8
# Rec10 TS Recording Tools
-# Copyright (C) 2009 Yukikaze
+# Copyright (C) 2009-2011 Yukikaze
import n_gram
-def update_epg():
-
-def get_key(title,desc):
- title=" "+title+" "
- desc=" "+desc+" "
+import rec10d
+def getDBKey(key,chtxt):
+ return rec10d.rec10db.select_by_key_in_auto_bayes_key(key, chtxt)
+def changeDBEpg(chtxt,beforenum,newnum):
+ rec10d.rec10db.change_ratio_all_reduce_in_auto_bayes_key(chtxt, beforenum, newnum)
+def changeDBNum(chtxt,recaddnum,alladdnum):
+ """
+ add num.(Not change)
+ """
+ rec10d.rec10db.add_num_in_auto_bayes_key(chtxt, recaddnum,alladdnum)
+def changeDBRatioRec(key,chtxt,beforenum,addnum):
+ rec10d.rec10db.change_ratio_rec_in_auto_bayes_key(key, chtxt, beforenum, addnum)
+def changeDBRatioMultiRec(chtxt,beforenum,list):
+ rec10d.rec10db.change_multi_ratio_rec_in_auto_bayes_key(chtxt, beforenum, list)
+def changeDBReduceRatioRec(chtxt,beforenum,addnum):
+ rec10d.rec10db.change_ratio_rec_reduce_in_auto_bayes_key(chtxt, beforenum, addnum)
+def changeDBRatioAll(key,chtxt,beforenum,addnum):
+ rec10d.rec10db.change_ratio_all_in_auto_bayes_key(key, chtxt, beforenum, addnum)
+def changeDBRatioMultiAll(chtxt,beforenum,list):
+ rec10d.rec10db.change_multi_ratio_all_in_auto_bayes_key(chtxt,beforenum, list)
+def getDBNum(chtxt):
+ ret=getDBKey("NUM", chtxt)
+ if len(ret)<3:
+ rec10d.rec10db.add_in_auto_bayes_key("NUM", chtxt, 1,1)
+ ret=getDBKey("NUM", chtxt)
+ return ret
+def updateRecall(chtxt,titles,descs,newnum):
+ """
+ update recall
+ """
+ titles=" "+titles+" "
+ descs=" "+descs+" "
+ str1=titles*2+descs+titles*2
+ noun=n_gram.getNounQuadGram(str1)
+ bnum=getDBNum(chtxt)[3]
+ if bnum<1:
+ bnum=100
+ changeDBRatioMultiAll(chtxt, bnum,noun)
+ changeDBEpg(chtxt, bnum, newnum)
+ changeDBNum(chtxt, 0, newnum)
+def addKey(chtxt,title,desc):
+ title=u" "+title+u" "
+ desc=u" "+desc+u" "
str1=title*2+desc+title*2##タイトルは重視したいので幾度か足す。
- noun=n_gram.get_noun_quad_gram(str1)#nounは辞書のキーに文字を、中身に出現回数を書いたもの。
- ##DB処理
-def add_key(noun1,noun2):
- ##辞書の足し算?
-
-def calc_title(title,exp,longexp):
+ noun=n_gram.getNounQuadGram(str1)#nounは辞書のキーに文字を、中身に出現回数を書いたもの。
+ bnum=getDBNum(chtxt)[2]
+ if bnum<1:
+ bnum=1
+ changeDBRatioMultiRec(chtxt, bnum, noun)
+ changeDBNum(chtxt,1,0)
+ changeDBReduceRatioRec(chtxt, bnum,1)
+def calcKey(chtxt,title,desc):
"""
- 個タイトルについて取るべきかどうかの評価を行う。
+
"""
- noun=get_key(title,exp+longexp)
+ title=u" "+title+u" "
+ desc=u" "+desc+u" "
+ str1=title*2+desc+title*2##タイトルは重視したいので幾度か足す。
+ noun=n_gram.getNounQuadGram(str1)#nounは辞書のキーに文字を、中身に出現回数を書いたもの。
+ tnum=1
+ nump=0
+ for key,num in noun.items():
+ pp=getDBKey(key,chtxt)
+ pp2=getDBKey(key,"ALL")
+ if len(pp)>3:
+ tarec=0
+ taall=0
+ if len(pp2)>3:
+ tarec=pp2[2]
+ taall=pp2[3]
+ trec=pp[2]
+ tall=pp[3]
+
+ tnum=tnum+1
+ p=(1000*trec+5)/(1000*tall+5)
+ p=p*p*100
+ p2=(1000*tarec+5)/(1000*taall+5)
+ p2=p2*100
+ nump=nump+p+p2
+ return int(nump/tnum)