def __init__(self): self.childlist = {} self.parentlist = {} self.categorylist = Classification.getclassificationrule() self.childlist['x'] = [] for catnode in self.categorylist: if(Classification.isCat(catnode)): self.parentlist[catnode] = 'x' self.childlist['x'].append(catnode) self.childlist[catnode] = [] elif(Classification.isSubcat(catnode)): self.parentnode = Classification.subcatToCat(catnode) self.parentlist[catnode] = self.parentnode self.childlist[self.parentnode].append(catnode)
kf = {} siblingcount = {} siblingkeyword = {} distinctness = {} # Create a Category Tree. this will be later used for finding sibling of the category. cattree = Tree.Categorytree() # Count the amount of sibling categories for each category for cat in categorylist: siblingcount[cat] = len(cattree.getSibling(cat)) # Calculate keyword frequency in a category, store it to the kf table for cat in categorylist: kf[cat] = defaultdict(int) if(Classification.isSubcat(cat)): parentcat = cattree.getParent(cat) findcount = '''for $class in /keywordXML/category where data($class/@code)="'''+cat+'''" return $class/book/keyword/text()''' querycount = session1.query(findcount) for typecode,ref in querycount.iter(): kf[parentcat][ref.encode('utf8')] += 1 kf[cat][ref.encode('utf8')] += 1 # Calculate keyword frequency in sibling's categories, store it to siblingkeyword table for cat in categorylist: siblingkeyword[cat] = defaultdict(int) siblingcats = cattree.getSibling(cat) for ref in kf[cat]: for scat in siblingcats: