def get_weight(tag1, tag2, method=WeightFuncs.inter_divide_union): tag1_q = QuestionsCDN.get_tag_questions(tag1) tag2_q = QuestionsCDN.get_tag_questions(tag2) n1 = len(tag1_q) n2 = len(tag2_q) nu = len(tag1_q | tag2_q) weight1 = method(n1, n2, nu) weight2 = WeightFuncs.inter_divide_min(n1, n2, nu) return [n1, n1 + n2 - nu, nu, weight1, weight2]
def get_questions(self, tag): questions = self.tag_questions.setdefault(tag, set()) if len(questions) < self.min_question_num: result_qs = QuestionsCDN.get_tag_questions( tag, save=self.from_db, min_num=self.min_question_num, from_db=self.from_db, from_api=self.from_api, from_cache=self.from_cache) self.tag_questions[tag] |= result_qs return self.tag_questions[tag]
from data.cdn.sof_cdn import QuestionsCDN, TagsCDN if __name__ == '__main__': for i, tag in enumerate(TagsCDN.get_tags(10000)): print(f'count {i}') QuestionsCDN.get_tag_questions(tag, save=False, from_db=False, min_num=100) # QuestionsCDN.get_tag_questions('map', save=False, from_db=False, min_num=100)
from data.cdn.sof_cdn import QuestionsCDN if __name__ == '__main__': QuestionsCDN.cache.add_tag_questions( 'reactjs', QuestionsCDN.get_tag_questions("{'reactjs'}")) QuestionsCDN.cache.add_tag_questions( 'jquery', QuestionsCDN.get_tag_questions("{'jquery'}")) QuestionsCDN.cache.add_tag_questions( 'react-redux', QuestionsCDN.get_tag_questions("{'react-redux'}")) QuestionsCDN.cache.add_tag_questions( 'node.js', QuestionsCDN.get_tag_questions("{'node.js'}")) QuestionsCDN.cache.hdel("{'reactjs'}") QuestionsCDN.cache.hdel("{'jquery'}") QuestionsCDN.cache.hdel("{'react-redux'}") QuestionsCDN.cache.hdel("{'node.js'}")