source: internals/2016/aptoideimagesdetector/trunk/Source Code/analyse_app.py @ 16414

Last change on this file since 16414 was 16414, checked in by dferreira, 3 years ago

Black box scripts improved. Ready to run.

File size: 2.9 KB
Line 
1# Diogo Ferreira, 2016
2# Aptoide
3# Main function to analyse the percentage of explicitness of an app
4
5from __future__ import division
6import i2v
7import pickle
8from Illustration2Vector.illustration2vec_master.analyse_image import analyse_explicit
9from Text_categorization.Text_categorization import text_cat
10
11
12def analyse_app(illust2vec, icons, screenshots, description, category, age, size, title):
13
14        try:
15                f = open("./model_apps_info.pickle", "rb")
16                classifier = pickle.load(f)
17                f.close()
18        except:
19                print "Serialized objects not found"
20                exit(0)
21
22        icons = []
23        screens = []
24        for icon in icons:
25                icons.append(analyse_explicit(illust2vec, icon))
26
27        for scr in screenshots:
28                screens.append(analyse_explicit(illust2vec, scr))
29
30        description = text_cat(description, size, category, age)
31
32        def find_features(icon_list, scr_list, description_result):
33                features = {}
34                maximum = 0
35                flag = 0
36                safe = 0
37                if len(icon_list)==0:
38                        maximum = 0.5
39                        safe = 0.5
40                else:
41                        for icon in icon_list:
42                                for data in icon:
43                                        if data[0]=='explicit' and data[1]>maximum:
44                                                maximum = data[1]
45                                                flag = 1
46                                        if data[0]=='safe' and flag==1:
47                                                safe = data[1]
48                                                flag = 0
49                maximum_s = 0
50                flag = 0
51                safe_s = 0
52
53                if len(scr_list)==0:
54                        maximum_s = 0.5
55                        safe_s = 0.5
56                else:
57                        for scr in scr_list:
58                                for data in scr:
59                                        if data[0]=='explicit' and data[1]>maximum_s:
60                                                maximum_s = data[1]
61                                                flag = 1
62                                        if data[0]=='safe' and flag==1:
63                                                safe_s = data[1]
64                                                flag = 0
65
66                features['ic_exp'] = maximum
67                features['ic_non'] = safe
68                features['sc_exp'] = maximum_s
69                features['sc_non'] = safe_s
70                features['desc_exp'] = description_result.prob('exp')
71                return features
72        features = find_features(icons, screens, description)
73        return classifier.prob_classify(features)
74
75if __name__=='__main__':
76
77        try:
78                illust2vec_f = open("Illustration2Vector/illustration2vec_master/illust2vec.pickle", "rb")
79                illust2vec = pickle.load(illust2vec_f)
80                illust2vec_f.close()
81        except IOError:
82                illust2vec = i2v.make_i2v_with_chainer(
83            "Illustration2Vector/illustration2vec-master/illust2vec_tag_ver200.caffemodel", "Illustration2Vector/illustration2vec-master/tag_list.json")
84                save_model = open("Illustration2Vector/illustration2vec_master/illust2vec.pickle", "wb")
85                pickle.dump(illust2vec, save_model)
86                save_model.close()
87
88        icons = []
89        screenshots = []
90        description = ""
91
92        icons.append('./API to download database/images/Explicit search/icons_explicit/7677797.png')
93        screenshots.append('./API to download database/images/Explicit search/screenshot_explicit/4694725_8_hd.png')
94        description = "Are you looking for Porn Movies ? If yes, you are at right place. Enjoy porn movies. You can download porn movies also to enjoy later. Tag: Porn, Porno, Sex, Adult, Downloader, sex, xxx, xx"
95        category = "ApplicationsEntertainment"
96        age = 18
97        size = 20
98        title = "XXX"
99        dist = analyse_app(illust2vec, icons, screenshots, description, category, age, size, title)
100        print dist.prob('exp')
Note: See TracBrowser for help on using the repository browser.