1.一种知识树三元组存储查询方法,其特征在于由以下步骤组成:(1)收集民歌资源文本
收集民歌资源文本;
(2)设定民歌资源样本属性
根据民歌资源中的文本描述,确定民歌资源样本的所属关系层次结构,所述的所属关系层次结构包括第一关系层次、第二关系层次、…、最后一个关系层次,民歌资源样本的所属关系层次名称作为该样本的属性和属性值,第一关系层次的名称作为民歌资源样本的第一属性,第二关系层次的名称作为民歌资源样本的第二属性,依次设定,最后一个关系层次的名称作为民歌资源样本的属性值;
(3)构建三元组
民歌资源样本表示为三元组(x,y,z),其中x为民歌资源样本的主体,主体由民歌资源样本的属性构成,属性间用分隔符进行分割,z为民歌资源样本的属性值,有两种类型:一是最终知识,二是非最终知识,属性值z的类型由主体x中的最后一个属性决定;主体x中的最后一个属性为:曲目、别名、表演者、定义,表明属性值z为最终知识;主体x中的最后一个属性为:类型、分类,表明属性值z为非最终知识;y为民歌资源样本的主体x与属性值z之间的关系性质,关系性质y分为:包含、等于,经过上述转换之后,将得到的民歌资源样本的三元组(x,y,z)存储至txt、csv或数据库文件中,每个民歌资源样本的三元组(x,y,z)为一条记录;
(4)生成知识树
知识树包括主根O、分支点集合B、子树,分支点集合B∈{k1,k2,...,kj},j取值为有限的正整数,扫描三元组记录,一条三元组记录表示一棵子树,三元组记录中主体x的第一个属性k,k∈B,属性k与分支点集合B中的一个分支点相等,将该三元组记录所表示的子树嫁接到与属性k相等的分支点上, 将三元组记录所表示的子树嫁接到知识树的主根O上,将属性k加入分支点集合B;
(5)重整知识树结构
主体x的最后一个属性为类型或分类,表明属性值z为非最终知识,是知识树的中间节点,将属性值z加入分支点集合B中,属性值z与分支点集合B中的一个分支点相同时,重整知识树结构,将该分支点为根的子树与原树剥离,嫁接到以属性值z为根的子树上,按下式得到构建知识树时的时间复杂度Tn:其中n表示数据规模的大小,n为有限的正整数,按下式得到构建树的平均时间复杂度Sn:Sn=M×O(logn)+P×O(1)
其中,M,P取值为正小数,(M+P)为1;
重复(4)、(5)步骤,直至扫描完全部的三元组记录为止,得到一棵完整的知识树;
按下式得到构建知识树的时间复杂度TN:
TN=O(N×Sn)
(6)存储知识树结构
将知识树的节点分为两类,一类是业务知识节点,其名称在知识树中只能出现一次,一类是非业务知识节点;扫描知识树的所有节点,找出所有节点中的业务知识节点,依据业务知识节点的使用次数,用字典存储其中使用次数最高的知识节点的地址引用,数组存储次常用的知识节点的地址引用,对数组中存储的地址引用按知识名英文字母顺序进行排序,得到知识树结构,并将知识树结构存储到文件中,运行时载入内存;
(7)查询知识树
按下式确定知识树中查询的时间复杂度Tn:
其中a表示查询知识树节点的个数,a取值为1,b为参数,b的取值为2,f(n)表示查询外的计算时间,f(n)取值为O(1);
按下式确定知识树中查找的平均时间复杂度Sn:
Sn=m×O(1)+p×O(logn)+q×O(n)
其中,m表示字典中记录的最常用知识节点的个数,p表示数组中记录的次常用知识节点个数,q表示不常用的知识节点个数,m,p,q取值为正小数,m、p、q的和为1。
2.根据权利要求1所述的知识树三元组存储查询方法,其特征在于:在构建三元组步骤(3)中,所述的分隔符,采用下划线作为分隔符。