示例#1
0
文件: Tree.py 项目: Pariyawit/LiRE
	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) 
示例#2
0
	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: