OSDN Git Service

begin to implement guess function.
authorgn64_jp <gn64_jp@4e526526-5e11-4fc0-8910-f8fd03428081>
Mon, 19 Oct 2009 14:46:15 +0000 (14:46 +0000)
committergn64_jp <gn64_jp@4e526526-5e11-4fc0-8910-f8fd03428081>
Mon, 19 Oct 2009 14:46:15 +0000 (14:46 +0000)
git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/rec10@182 4e526526-5e11-4fc0-8910-f8fd03428081

rec10/trunk/src/guess.py
rec10/trunk/src/tester.py

index b868167..d65eb76 100644 (file)
@@ -9,6 +9,7 @@ import time
 import os
 import datetime
 import n_gram
+import zenhan
 
 def detName(title,path):
     tt=detNameType(title, path)
@@ -22,44 +23,86 @@ def detNum(title,movepath):
     ff=[]
     maxnum=0
     for file in files:
+        print file
+        file=os.path.join(movepath,file)
         if os.path.isfile(file):
             name=os.path.splitext(os.path.split(file)[1])
+            name=name[0]
+            name=zenhan.toHankaku(unicode(name))
             p1=detNameType(name,movepath)
             print p1['title']+" "+str(p1['num'])
             time1=time.localtime(os.path.getmtime(file))
-            ff.append([p1['num'],p1['title'],time1])
-            if maxnum<p1['num']+1:
-                maxnum=p1['num']+1
-    f3=[maxnum]
+            time1=datetime.datetime.fromtimestamp(os.path.getmtime(file))
+            if p1['num']!=-1:
+                ff.append([p1['num'],p1['title'],time1])
+                if maxnum<p1['num']+1:
+                    maxnum=p1['num']+1
+    f3=[None]*maxnum
+    print f3
+    fret={}
     for i in range(0, maxnum, 1):
+        print i
         f3[i]=[]
     for f2 in ff:
         f3[f2[0]].append(f2)
     for i in range(maxnum):
         for j in range(i+1,maxnum,1):
-
+            for ft3 in f3[i]:
+                for ft4 in f3[j]:
+                    for gdd in guessDeltaDay(i, ft3[2], j, ft4[2]):
+                        print gdd
+                        if fret.get(gdd[0])!=None:
+                            print fret
+                            fret[gdd[0]]=fret[gdd[0]]+gdd[1]
+                        else:
+                            fret[gdd[0]]=gdd[1]
+    print fret
 def guessDeltaDay(num1,date1,num2,date2):
     dd=date1-date2
     if date1<date2:
         dd=date2-date1
-    d1=dd.days
-    dd=dd+datetime.timedelta(hours=6)
-    if dd!=d1:
-        
+    dn=dd.days
+    d=num2-num1
+    if d<0:
+        d=-1*d
+    dp=dd+datetime.timedelta(hours=6)
+    dp=dp.days
+    dm=dd-datetime.timedelta(hours=6)
+    dm=dm.days
+    ret=[]
+    if dn%d*2>d:
+        dn=dn+d
+    if dm%d*2>d:
+        dm=dm+d
+    if dp%d*2>d:
+        dp=dp+d
+    print str(d)+":"+str(dn)
+    if dp!=dn:
+        ret.append([dn/d,60])
+        ret.append([dp/d,40])
+    elif dm!=dn:
+        ret.append([dn/d,60])
+        ret.append([dm/d,40])
+    else:
+        ret.append([dn/d,100])
+    return ret
 def detNameType(title,path):
     """
     type A ---title#<number>
     type B ---title#<number>subtitle
     type C ---title subtitle
     type D ---title(without number)
+    type Aj ---title第<number>話
     path --search reflexively
     """
-    #print title
+    print title
     #rA=re.compile(".+(?P<title>)#\d(?P<num>)\s[0,10]\z")
     rA=re.compile("(.+)#(\d*)\s*\Z")
     tA=rA.match(title)
     rB=re.compile("(.+)#(\d*)\s*(\D*)")
     tB=rB.match(title)
+    rAj=re.compile("(.+)第(\d*)話\s*\Z")
+    tAj=rAj.match(title)
     ret={'title':"",'type':"",'num':0,'subtitle':"",'folder':""}
     if tA:
         print "typeA"
@@ -69,6 +112,14 @@ def detNameType(title,path):
         ret['title']=tA.group(1)
         ret['num']=int(tA.group(2))
         ret['folder']=searchFolder(tA.group(1),path)
+    if tAj:
+        print "typeA"
+        print "title="+tAj.group(1)
+        print "num="+tAj.group(2)
+        ret['type']="Aj"
+        ret['title']=tAj.group(1)
+        ret['num']=int(tAj.group(2))
+        ret['folder']=searchFolder(tAj.group(1),path)
     elif tB:
         print "typeB"
         print "title="+tB.group(1)
@@ -100,7 +151,7 @@ def detNameType(title,path):
         #print "title="+rt[0][1:]+"/"
         #print "subtitle = "+title.replace(rt[0][1:],"")[1:]
         ret['title']=rt[0][1:]
-        ret['num']=""
+        ret['num']=-1
         ret['folder']=rt[2]
         ret['subtitle']=title.replace(rt[0][1:],"")[1:]
         if ret['subtitle'].replace(" ","")=="":
index b6c26c2..018aa4a 100644 (file)
@@ -55,5 +55,6 @@ if __name__ == "__main__":
     #xml2db.xml2db("te18.xml", "te20")
     #classify.detNameType("te#st#25")
     #classify.detNameType("te#st#32 subtest")
-    guess.detNameType("",recordedpath)
+    #guess.detNameType("",recordedpath)
+    #guess.detNum("よくわかる現代魔法",recordedpath+"アニメ/ひだまりスケッチ")
     ""
\ No newline at end of file