CN1667607A - 用于文档浏览的个性化分类处理方法及系统 - Google Patents
用于文档浏览的个性化分类处理方法及系统 Download PDFInfo
- Publication number
- CN1667607A CN1667607A CNA2004100283948A CN200410028394A CN1667607A CN 1667607 A CN1667607 A CN 1667607A CN A2004100283948 A CNA2004100283948 A CN A2004100283948A CN 200410028394 A CN200410028394 A CN 200410028394A CN 1667607 A CN1667607 A CN 1667607A
- Authority
- CN
- China
- Prior art keywords
- classification
- document
- classifications
- node
- tabulation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/954—Navigation, e.g. using categorised browsing
Abstract
本发明提供一种文档分类处理方法和系统,用于互联网中的文档浏览,该方法包括步骤:在服务器端建立多个类别,将供用户浏览的文档分配到相应的类别之下,并以扁平结构管理多个所述类别;以及在客户机端,从多个类别中选择所需类别来建立个性化分类结构。利用本发明的系统和方法能够节省大量的计算和存储成本。
Description
技术领域
本发明涉及在客户机-服务器结构网络中的个性化信息服务,特别涉及在互联网系统中用于文档浏览的个性化分类处理方法和系统。
背景技术
随着计算技术的发展,人们越来越需要个性化的分类服务。所谓个性化的分类服务,就是用户可以定义自己的、不同于其他人的类别树,所需要的文档被映射到用户自定义的类别树,并产生文档目录。这种个性化分类服务十分重要,因为人们具有不同的兴趣爱好和知识背景。
在现有技术中,需要根据用户的不同兴趣,为每个人建立各自的分类模型。通常,因为文档数据库非常庞大,所有文档都要在离线的状态下映射到该用户的这个分类模型,并产生文档目录(不能实时产生),而每个用户的这个分类模型都要基于该用户的输入及其以前的历史曰志来进行训练和学习,以不断地进行完善,这就使得对所有人提供统一的分类方案十分困难。
如在文献“Document Ontology Based Personalized Filtering System(基于文档实体论的个性化筛选系统)’by Kyung-Sam Choi et al”中,公开了根据用户的不同兴趣,为每个人建立各自的分类模型的技术方案。换句话说,不同的人具有不同的模型。
对于提供商来说,提供这种服务的最大的问题是繁重的计算和存储成本。而这个问题的根本原因就是,对于每个用户来说,都需要训练和更新他们的分类模型。与用户的兴趣情况相比,其分类模型在存储空间上更加庞大,并且即使系统支持的话,也将花费巨大的存储成本。若在文档数据库中进行更新操作,通过对其分类模型施加分类算法,还会导致用户的每个文档目录都发生更新,对这种类别树的更新操作是非常复杂和昂贵的。
因此,迫切需要一种灵活、简单、成本低的个性化文档分类处理方法和系统。
发明内容
为了解决上述问题,本发明提供了一种个性化服务的一般分类模型,在这种结构下,无论用户的个性化分类设计之间存在什么差别,也仅仅只需要训练和更新唯一的系统分类模型,而用户的个性化分类基于这个系统分类模型来产生,只需要很少的成本,因为只需要训练一个系统分类模型,而不是为每个用户分别训练不同的分类模型。
因此,本发明提供一种文档分类处理方法,包括步骤:在服务器端建立多个类别,将供用户浏览的文档分配到相应的类别之下,并以扁平结构管理多个所述类别;以及在客户机端,从多个类别中选择所需类别来建立个性化分类结构。
本发明还提供一种文档分类处理系统,包括通过网络连接的服务器和客户机,其中还包括:系统分类装置,配置在所述服务器端,用于为供用户浏览的各个文档建立多个类别,将各个所述文档分配到相应的类别之下,并以扁平结构管理所述多个类别;以及定制装置,配置在所述客户机端,用于从多个类别中选择所需类别,以建立个性化分类结构。
在本发明中,上述个性化分类结构是树结构,所述树结构的每个节点包括一个或多个类别。
这种结构的优点在于:当用户改变其类别设计时,在服务器侧不需要有任何改变,而当服务器侧被更新时,也只需要更新系统分类模型,并且用户自己不需要是文档分类方面的专家。这样,本发明的系统和方法能够节省大量的计算和存储成本。
附图说明
图1表示本发明的一般系统示意图;
图2表示本发明系统的较详细的结构图;
图3是本发明在服务器端以扁平结构管理的分类结构的示意图;
图4是本发明在客户机端所定义的分类树结构的示意图;
图5是本发明在客户机端所定义的另一分类树结构的示意图;
图6是本发明的分类矩阵的示意图;
图7是说明用于定义分类树结构的方式的示意图;和
图8是描述实现本发明的文档分类处理方法的流程图。
具体实施方式
在具体描述本发明的实施例之前,将先定义与本发明相关的一组概念。类别:表示相关文档的逻辑分组,每个类别(也可以称为类别模型)经常由一组密钥字表示,以反映其所包含文档的类别含义,例如:新闻、财经、体育、娱乐和新技术,等等。
个性化分类:表示允许用户定义他们自己的类别结构,并自动将文档分类到这些结构中。
二值化器:具有将输入文档转化为二进制符号(例如{0,1})的功能。下面结合附图详细说明本发明的具体实施例。
图1是表示本发明的一般系统原理的示意图。如图1所示,在服务器中,先为各种文档生成多个系统类别,存储于“系统类别库”中,并自动将存储于“文档数据库”中的相应文档分类到这些系统类别之下,这些系统类别在“系统类别库”中是以扁平的结构来管理的;在客户机端,用户定义所期望的分类树结构,并将该树结构映射到服务器端的“系统类别库”中;通过用户对该分类树结构中的特定节点的选定,该“系统类别库”为该用户从“文档数据库”中提取其所需要的文档,并将它们提供给该用户的客户机以进行显示。
图2表示本发明系统的较详细的结构图。如图2所示,本发明的系统主要包括两个部分,即客户机101和服务器102,它们通过可以诸如是局域网、广域网(其中包括互联网)等的各种网络103连接,形成一个客户机-服务器结构的系统,其所适用的典型结构是互联网。
服务器102包括:数据库122,其中存储大量的文档及其相关信息,以供用户通过网络进行浏览,这些文档包括服务提供商所能收集到的各种文档;和系统分类装置121,为要被浏览的文档建立多个类别(模型),即所谓的系统分类模型,并将所述文档分配到相应的类别之下,而这些类别在服务器端是以扁平结构进行排列的。
另外,本发明的系统还包括:初始化部件200,与系统分类装置121相连接或配置在其内,用于对各种基本信息模型进行初始化(建模)操作;和更新部件201,与系统分类装置121相连接或配置在其内,用于对文档和/或类别进行更新等操作。
本发明的系统还可以包括控制端口104,用于通过向系统分类装置121输入控制指令,来控制系统分类装置121中有关文档处理的操作。控制端口104可以是键盘、鼠标、手写板、麦克风和照相部件等输入装置。
当然,本发明中的系统分类装置121完全可以在软件的控制下自主地完成上述操作,而不需要依靠管理员通过控制端口104来输入相关的控制指令。另外,本发明中的系统分类装置121也可以被配置为不包括或连接初始化部件200和更新部件201,而作为一个独立的装置或部件来完成上述各种功能。
客户机101中包括:定制部件110,用于从服务器102所提供的多个类别中选择所需要的类别,以建立个性化分类结构;和浏览装置111,用于在选定分类树结构的特定节点的情况下,从系统分类装置121接收用户要浏览的文档,并将其提供给用户。上述的定制部件110和浏览部件111还可以被合并为一个部件,来完成同样的功能。用户通过服务器102所提供的例如网页的图形用户接口(未示出)与服务器102进行交互操作,并将自己定义的所期望的类别树结构映射给服务器102中的系统分类装置121,该系统分类装置121根据用户所定义的类别树结构,向客户机101提供其所需要的文档信息。
在客户机101与服务器102之间通过网络进行交互的过程中,可以使用在其上附加了相关描述信息的令牌,作为客户机101和服务器102之间的信令,进行各种消息的传递。当然,也可以使用其它任何种类的消息传递方式,由于网络中的消息传递方式不是本发明的目的,且其在目前已经是非常成熟的技术,在此将省略对其的详细描述。
当然,在本发明中,服务器102和客户机101中还包括CPU、各种存储器和输入、输出装置等各种通用的装置,以实现各种基本操作。本发明的服务器102和客户机101还可以是通用的服务器和客户机,其中通过加载能实现本发明各种功能的软件程序来实现本发明。
在本发明中,系统分类装置121中的初始化部件200对数据库122中所存储的各种文档,先建立一组列表、表格等基本信息模型,其中包括类别组、比特串组、类别表、类别更新列表、文档组、文档更新列表和分类矩阵等。
下面将结合附图来说明上述的各种基本信息模型及其初始化操作。在上述基本信息模型中,类别组表示为C={c1,c2,...,cm},这里ci(i=1,...,m)表示各个类别,m是该类别组中所有类别的总数,i代表相应的类别识别信息,即类别ID。这里,类别ID表现为各类别在类别组中的位置信息,当然,类别ID还可以是其它任何可以用来识别该类别的信息,其中可以包括位置信息,而不仅仅是位置信息。例如,可以将数据库122中有关网络生活方面的文档分为六个类别,即:C例={互联网,软件,编程,游戏,购物,硬件}。其中c1是“互联网”,c2是“软件”...等等,而其中的m=6,即共有六个类别。当然,可以针对文档的种类而将其分为任意数量,上述分类的方式仅为举例说明,而并不用来限制本发明。
图3是本发明在服务器端以扁平结构管理的分类结构的示意图。
图4是本发明在客户机端所定义的分类树结构的示意图。
图5是本发明在客户机端所定义的另一分类树结构的示意图。
如图3所示,在服务器102中,上述各个类别之间并没有相互的从属关系,而仅仅用一种扁平的结构对其进行管理。而在客户机101中,用户可以根据服务器102中的这个类别组来定义其自己的个性化分类模式,例如是树结构,这个树结构的每个节点对应于类别组C中的一个或几个类别。例如,对于服务器102中的类别组C例,用户可以在客户机101中定义如图4所示的树结构,也可以定义如图5所示的树结构。在图5所示的树结构中,节点tr10对应于类别组C例中的两个类别,即“软件”和“游戏”。
这样,因只对一个扁平的类别结构进行管理,在服务器102侧对数据进行管理的复杂程度被降低了,而用户则可以在客户机101上根据自己的喜好来定制自己所期望的分类浏览结构。
每个类别ci都有唯一与其对应的二值化器fi,用于将该类别ci中的所有文档二值化。在本发明中,可以使用任何种类的二值化器,例如SVM(支撑向量机)二值化器、贝叶斯(Bayesian)二值化器等,它们都是本领域中的成熟技术,在此将省略对它们的详细描述。
每个类别ci还有唯一与其对应的比特串,该比特串代表该类别ci在类别组C中的位置,各个比特串组成一个比特串数组。这里,将比特串表示为si={bij|j=1...m,如果i<>j则bij=0,如果i=j则bij=1}。其含义可以这样来理解,以上述类别组C例为例,其中c4=“游戏”,则与其对应的比特串为s4={0,0,0,1,0,0},即当j=i=4时,s4=b4,4=1,而该比特串中其余的比特为零,这表示该类别“游戏”在类别组C例中的第四个位置。在上述比特串数组中,包括了与该类别组C中的每个类别相对应的各个比特串。
文档组被表示为D={d1,d2,...,dn},dj(y=1,2,...,n)表示文档组D中的每个文档,其中j代表每个文档的识别信息,即文档ID。这里,文档ID表现为各个文档在文档组D中的位置信息,当然,文档ID还可以是其它任何可以用来识别该文档的信息,其中可以包括其位置信息,而不仅仅是位置信息。该文档组D包括了服务器102的数据库122中所存储的、允许用户浏览的全部文档,根据种类的不同,这些文档被分配到相应的类别当中。用与各个类别ci对应的二值化器fi处理所有的文档dj,使每个文档针对每个类别都成为一个二进制的比特值,从而形成了每个文档的输出向量,表示为vj=(vj1,vj2,...,vjm)。这里,如果文档dj属于某一个类别,则该文档在该类别下的二进制值为1,而如果文档dj不属于某一个类别,则该文档在该类别下的二进制值为零。
例如,在上述文档组D中有八篇文档,即D={d1,d2,...,d8},其中第3篇文档d3属于类别c2=“软件”和c5=“购物”,则该文档d3的输出向量为{0,1,0,0,1,0}。
图6是本发明的分类矩阵的示意图。
通过上述定义的类别组C和文档组D,可以将所有的类别和文档形成一个j行i列的矩阵结构M,这个矩阵结构M中的每个元素mj,i=vj,i,代表文档dj在类别ci项下的二值化结果,如图6所示。
另外,初始化部件200还提供了类别表,其被表示为CTi,每个类别表都与一个类别ci相对应,在其中存储该类别中所包括的所有文档的识别信息。为了提高存取速度,可以使用高效率的数据结构来实现类别表,例如使用B树结构或Binary balance树结构等。因此,实际上类别表是一组列表(list),如上述所举的例子,参考图6可知共有6个类别,8篇文档,其中:类别表CT1={1,4,7},对应于类别c1=“互联网”,其中文档d1,d4和d7属于这个类别;类别表CT2={3,5,7},对应于类别c2=“软件”,其中文档d3,d5和d7属于这个类别;如此类推,类别表CT6={1,2,6},对应于类别c6=“硬件”,其中文档d1,d2和d6属于这个类别。
上述形成的各种基本信息模型,可以存储在数据库122中,也可以存储在服务器102中的其它存储装置(未示出)中。
另外,通过系统分类装置121中的更新部件201,可以在上述形成的分类矩阵的基础上,对文档和类别进行更新操作,即增加新的文档或类别,或删除原有的文档或类别。
这种更新操作可以由网络(或服务器)管理员通过控制端口104输入控制指令来完成,也可以通过软件的控制由更新部件201自主完成。其中在文档和类别的增加操作中,更新部件201将新增加的文档或类别的内容输入二值化器(未示出),并从二值化器中输出与文档对应的输出向量(二值化结果),或与类别对应的比特串,并将这些输出值添加到分类矩阵M中。
对于新插入的文档,在这个分类矩阵M中将其表示为新插入的行,而对于删除的文档,则将其表示为该矩阵中所删除的行。另外,对于类别组的更新,在该矩阵中将表示为相应的列插入(增加类别)和列删除(删除类别)。
为了有助于更新操作,初始化部件200还建立了类别更新列表Lc和文档更新列表Ld。在类别更新列表Lc中,记录有被删除的类别ci在类别组C中的位置信息(即矩阵M中的某列),而在文档更新列表Ld中,记录有被删除的文档dj在文档组D中的位置信息(即矩阵M中的某行)。文档更新列表Ld和类别更新列表Lc都可以用堆栈式的数据结构来实现。例如,对于上述例子,其中有6个类别,此时类别更新列表Lc为空。假定我们增加一个类别c7,因为Lc是空的,所以新增加类别的类别ID就为7,因而在矩阵M中将增加第7列c7。但是,这时类别更新列表Lc没有变化。
假定我们现在删除类别c3,则在做相应的删除操作的同时,将识别信息3(在这里为位置信息)加入类别更新列表Lc中,即Lc={3},其中的识别信息“3”代表矩阵M中的第3列现在为空。这样,如果我们以后再增加一个新的类别,因为Lc中有数值(即识别信息),就将识别信息“3”从Lc中提取出来,将其附值给新增加类别的ID,则新增加的类别就是c3,而不需要再为其增加一个新的类别ID“8”。这样可以为服务器102节省大量的存储空间,并因此大大地提高了整个系统的工作效率。
另外,当添加一个新的类别ci时,还应该对所有文档在该类别ci下的状态进行判断,如果某个文档dj在该类别ci下的二值化结果是1,则应该将该文档dj的识别信息j记录到与该类别ci对应的类别表CTi中。
下面是用于实现上述删除一个类别的操作的程序代码:
Delete an existing category ci
push i inito Lc.
delete CTi
for(k=1,k<=n,k++)
mk,i=0;
delete ci from C
下面是用于实现上述添加一个类别的操作的程序代码:
Insert a new category c with associated classifier f; if(Lc is empty) Category id of c:i=sizeof(C)+1 else i=pop(Lc) ci=c;fi=f; initial si and CTi; for(k=1,k<=n,k++) { mk,i=fi(dk); if(mk,i=1) { insert k into CTk. } } insert ci into C
文档更新列表Ld的结构和工作原理与类别更新列表Lc基本上是相同的。对于新插入的某个文档dj,如果其在某个类别ci下的二值化结果为1,将该文档的识别信息j插入到该类别的类别表CTi中。因此在这里将省略对其的详细描述。
下面是用于实现上述删除一个文档的操作的程序代码:
Delete an existing document dj pushj into Ld for(k=1,k<=m,k++) { if(mj,k=1) { <!-- SIPO <DP n="8"> --> <dp n="d8"/> deletej in CTk; set mj,k=0; } } delete dj from D
下面是用于实现上述添加一个文档的操作的程序代码:
Insert a new document d if(Ld is empty) document id of d:j=sizeof(D)+1 else j=pop(Ld) dj=d; insert dj to D; calculate vj; for(k=1,k<+m,k++) { mj,k=vj,k; if(vj,k=1) { insert k into CTk } }
这样,就在服务器102中建立了一个扁平分类结构的统一模型,其结构简单,并且在使用过程中,只需要对这个模型进行训练和更新,而无须训练和更新更多的分类模型。
下面,将结合附图对用户定义个性化分类结构的方法进行描述。
图7是表示用户在客户机101上定义分类树结构的示例。这里以树结构作为个性化分类结构的例子,当然用户也可以用其它结构来实现个性化的分类结构。对于用户定义的树结构T,如前所述,对其中的每个节点,用户可以从服务器102侧的扁平类别结构中选择一个或几个类别。然后,对类别树结构T中的节点tx产生相应的类别组Cx,该类别组Cx属于类别组C,包括类别组C中的一个或几个类别。例如,参照图5可知,各个节点tr20、tr10、t12和t13分别是“软件和游戏”、“互联网”、“购物”和“硬件”,其中一个根节点tr10对应于类别组C例中的类别“软件”和“游戏”,并在此基础上形成新的类别组Cx,其由类别“软件”和“游戏”组成。
用户在客户机101上形成分类树结构的操作方法是本领域技术人员的常识,例如可以通过服务器102提供的网页上的提示,用鼠标将网页上显示的类别图标拖动到特定位置来完成,当然也可以通过向提示框中输入文字信息来完成。这里将省略对其的详细描述。
当用户建立根节点tr时,如果用户只选择了一个类别ci,则将该类别ci分配给根节点tr,该根节点tr可以用该类别ci的比特串si来表示。例如,如果将节点c2=“软件”分配给该根节点tr,因与类别c2=“软件”对应的比特串是si={0,1,0,0,0,0},则该根节点tr=s2={[0,1,0,0,0,0]}。当然也可以选择两个或多个根节点,如图4所示的结构,这时有根节点tr1=s2={[0,1,0,0,0,0]}和根节点tr2=s6={[0,0,0,0,0,1]}。
如果用户在根节点tr上选择了两个或多个类别,例如是ci和ci+2,在这种情况下,还要对这两个或多个类别之间的逻辑关系进行判断。
如果类别ci和ci+2之间是逻辑“或”的关系,即在该根节点中既要求有ci中的全部文档,也要求有ci+2中的全部文档,在这种情况下,对ci中的全部文档和ci+2中的全部文档进行逻辑“或”运算,其结果作为该根节点tr中的类别,而这时该根节点tr用{[si]∪[si+2]}来表示。例如,在上述例子中,如图5所示,在根节点tr20中选择了类别c2=“软件”和c4=“游戏”,要求在该根节点中既要包括类别c2=“软件”中的所有文档,也要包括类别c4=“游戏”中的所有文档,因与类别c2=“软件”对应的比特串为s2={0,1,0,0,0,0},与类别c4=“游戏”对应的比特串为s4={0,0,0,1,0,0},则该根节点tr20表示为tr20={[s2]∪[s4]}={[0,1,0,0,0,0]∪[0,0,0,1,0,0]}。其含义为:经过上述逻辑“或”的处理,根节点tr20中包括类别c2=“软件”中的全部文档及类别c4=“游戏”中与类别c2=“软件”中的文档不重复的所有文档。
接下来介绍在客户机101上定义根节点以下的各个次级节点的方法。
在定义各次级节点时,除了进行与上述定义根节点相同的处理外,还要将该被定义的次级节点所包含的类别与其父节点(即上级节点)中所包含的类别进行逻辑“与”运算,该运算结果作为该被定义的次级节点中最终所包含的类别。例如,参照图5所示,在定义节点t12中所包含的类别时,先将类别c5=“购物”分配给节点t12,即t12=s5={[0,0,0,0,1,0]}。然后,因其父节点tr20中包含类别c1=“互联网”,即tr20=s1={1,0,0,0,0,0},则将类别c5=“购物”与类别c1=“互联网”进行逻辑“与”运算,该运算产生的结果作为节点t12中所包含的类别,即t12={[s5]∩[s1]}={[0,0,0,0,1,0]∩[1,0,0,0,0,0]}。其含义为:经过上述逻辑“与”的处理,节点t12中包括既属于类别c5=“购物”、又同时属于类别c1=“互联网”的文档。
至此,用户可以在客户机101上定义自己所期望的文档分类结构了。例如,用户定义了如图4所示的分类结构。
用户定义的这个分类结构只需要映射到服务器102,使服务器102能够从数据库122中提取用户所需要的文档,并提供给客户机101,而无须将该分类结构作为一种固定的分类模型来进行训练,因为用户随时都可以根据自己的意愿来对其进行修改。这样,就使服务器102中用于计算和存储的工作负担大大地减轻了。
下面是一段可以实现该功能的程序代码,可以根据下面的方法产生自定义的分类树结构。
Algorithm calculating the node bit string of node ti Bitstring node_bit_string(ti) { if ti=root(T) { bit_ret=0; traversal all element c in Ci { bit_ret∨=bit string of c;//where∨is bit operation‘or’ } } else { bit_ret=0; <!-- SIPO <DP n="11"> --> <dp n="d11"/> traversal all element c in Ci { bit_ret∨=bit string of c;//where∨is bit operation‘or’ } bit_ret∧=node_bit_string(parent node of ti);//where∧is bit<br/> operation‘and’ } return bit_ret; }
另外,在定义根节点tr时,在某些情况下,用户所选定的类别ci和ci+2之间可以是逻辑“与”的关系(未示出),即要求在该根节点tr20中只包括类别ci和类别ci+2中同时存在的全部文档。在这种情况下,与定义次级节点的方法相同,对ci中的全部文档和ci+2中的全部文档进行逻辑“与”运算,其结果作为该根节点tr中所包含的类别,而这时该根节点tr用{[si]∩[si+2]}来表示。例如,在上述例子中,如果在图4的根节点tr20中选择了类别c2=“软件”和c4=“游戏”,要求在该根节点中包括同时存在于类别c2=“软件”和类别c4=“游戏”中所有文档。这时,因与类别c2=“软件”对应的比特串为s2={0,1,0,0,0,0},与类别c4=“游戏”对应的比特串为s 4={0,0,0,1,0,0},则该根节点tr20表示为tr20={[s2]∪[s4]}={[0,1,0,0,0,0]∩[0,0,0,1,0,0]}。其含义为:经过上述逻辑“与”的处理,根节点tr20中包括既属于类别c2=“软件”、又同时属于类别c4=“游戏”的文档。
以上是定义根节点及其各个次级节点的方法的简单示例,在实际定义各个节点的过程中,总是存在多个类别,且各个类别之间是逻辑“或”和逻辑“与”相互交叉的复杂关系,在这种情况下,则可以根据上述方法的原则对其进行相应的逻辑运算,只不过运算后的结果会更加复杂。
当然,用户也可以在一个客户机101上同时定义多个分类树结构,即确定多个根节点,其方法与上述方法相同。
下面将介绍用户在客户机101上通过选定节点而浏览相应文档的处理。
当在客户机101上选定特定节点tx时,可以同时给出用户所期望获得的文档的条件信息,如最大数量、日期等,如果未给出条件信息,则可以给出各个条件信息的默认值。
这时,通过该特定节点tx的比特串来确定该节点中所包含的各个类别及其相互之间的逻辑关系。例如,在图4所示的示例中,如果选定节点t12,那么可以通过与其对应的比特串t12={[0,0,0,0,1,0]∩[1,0,0,0,0,0]},来确定其包含有类别c5=“购物”和类别c1=“互联网”,并且这两个类别之间为逻辑“与”的关系。
然后,系统分类装置121遍历(搜索)分别与各个类别对应的各个类别表,以确定哪个类别中包括更少的文档,并从被判断为包含有最少数量文档的类别开始,按从少到多的顺序对上述类别进行排列。例如,对与类别c5和c1对应的类别表CT5和CT1进行遍历,发现在类别c5中包含有30篇文档,而在类别c1中包含有500篇文档,则系统分类装置121确定在类别c5=“购物”中含有最少的文档,并按c5、c1的顺序对这两个类别进行排列。
接下来,系统分类装置121在含有最少数量文档的类别中搜索满足该特定节点tx的条件的文档,并在随后的处理中将所搜索到的文档提供给客户机101,以供用户浏览。即,系统分类装置121在数据库122中搜索包含于类别c5=“购物”中、且满足条件t12={[0,0,0,0,1,0]∩[1,0,0,0,0,0]}的文档,并在随后的处理中将所搜索到的文档提供给客户机101。
如果在含有最少数量文档的类别中所找到的满足条件的全部文档仍然未达到用户所要求的数量条件,则系统分类装置121在所判断的、包含有第二少数量文档的类别中继续搜索。在本例中,则在类别c1=“互联网”中继续搜索满足上述条件的文档,直至达到用户所要求的数量为止。
在上述搜索过程中,系统分类装置121将搜索到的文档的列表实时提供给客户机101,形成一个实时提供的文档列表,并在客户机101的显示器(未示出)上显示出来。
如果用户希望阅读在上述文档列表中所列出的某篇文档,则通过输入装置(未示出,例如键盘、鼠标、手写板等)进行选定操作。然后,浏览装置111将该选定结果通知给服务器102,这时服务器102将该被选定的文档从数据库122中提取出来,并将其提供给客户机101上的浏览装置,以在显示器上进行显示。
如果在如图4所定义的分类树结构的情况下,参照图6所示的分类矩阵,用户在节点tr1即“软件”项下,可以得到d3、d5和d7三篇文档,在节点tr2即“硬件”项下,可以得到d1、d2和d6三篇文档。在节点t1即“编程”项下,用户可以得到d5一篇文档,可见该文档d5也属于其上级节点tr1。而在节点t2即“互联网”项下,用户可以得到d1一篇文档,在节点t3即“游戏”项下,用户可以得到d1和d2两篇文档,可见文档d1和d2也属于其上级节点tr2。在上述过程中,服务器102将实时向客户机101提供在每个类别项下的文档列表,并在随后的处理中,根据客户机101上的选定结果,将用户所需要的文档提供给客户机101。
如果在特定节点tx中含有多个类别,则按上述方式以此类推进行搜索。下面是用来实现上述功能的一段程序代码。
algorithm Anode(ti,T,max_return_number) initial return document set ret_set=empty set calculate node bit string si of node ti arg min find cj where sizeof(ck)(kth bit of si=1) l=0; traversal all document d in CTj { if((vd^si)==si)//where^is bit operation‘and’ { insert d into ret_set; 1++; if(1>=max_return_number) return ret_set; } } return ret_set;
其中,在上述程序中,变量ti代表用户所指定的节点,T代表该节点ti所属于的分类树,max_return_number代表用户所期望返回的最大文档数量,而ret_set代表实际返回的文档。
在上述搜索过程中,通过从记录有最少文档数量的类别中开始检索要浏览的文档,可以减少服务器102中的计算量和搜索量,因此可以有效地减少服务器102所承担的计算负荷。
下面,将结合附图8简要描述实现本发明的文档分类方法的流程。
图8是描述实现本发明的文档分类方法的流程图。如图8所示,首先,在服务器102上为要被浏览的文档建立多个类别,并将所述文档分配到相应的类别之下,其中以扁平结构管理多个所述类别(如图3所示)。
其中,在步骤S1中,分别建立类别组C和文档组D,其中类别组C中包括多个所述类别ci,每个所述类别具有唯一的识别信息,文档组D中包括要被浏览的全部文档dj,每个所述文档具有其唯一的识别信息。
在步骤S2,建立包含多个比特串的比特串数组S,其中每个比特串si表示与其相应的类别ci在所述类别组C中的位置。
在步骤S3,为每个所述类别建立相应的类别表CTi,其中存储属于该类别的各个文档的唯一识别信息。其中将各个文档dj二值化,如果一文档属于某一类别,则该文档在该类别下的二值化结果为1,并将该文档的识别信息插入到该类别的所述类别表中;如果一文档不属于某一类别,则该文档在该类别下的二值化结果为0。
在步骤S4,建立类别更新列表Lc和文档更新列表Ld,用于分别记录所述类别ci和所述文档dj的更新状态。其中所述类别ci的识别信息包括该类别ci在所述类别组C中的位置信息,并且所述文档的识别信息包括该文档dj在所述文档组D中的位置信息。在更新过程中,可以包括如下的子步骤:
当删除一类别ci时,删除与其相应的比特串si,并在所述类别更新列表Lc中标记该类别ci在该类别更新列表Lc中的位置信息,表示该位置为空。
当插入一新类别ci时,先在所述类别更新列表Lc中进行搜索,如果找到被标记的位置信息,则将该类别ci插入所述类别组C中的相应位置,并删除所述类别更新列表Lc中的位置信息;如果没有找到被标记的位置信息,则将该类别ci插入到所述类别组C中的新位置;以及将与所插入的类别ci相应的比特串si增加到比特串数组S中。
当要删除一文档dj时,从各个类别表CTi中删除所述文档的识别信息,并在所述文档更新列表Ld中标记所述文档dj在文档组D中的位置信息,表示该位置为空。
当要插入一文档dj时,先在所述文档更新列表Ld中进行搜索,如果找到被标记的文档位置信息,则将该文档dj插入到所述文档组D中的相应位置,并删除所述文档更新列表Ld中的该位置信息。
如果没有找到被标记的所述文档位置信息,则将所述文档dj插入到所述文档组D中的一个新位置,同时将所述文档识别信息插入到各个类别表中。
接下来,在步骤S5,在客户机101上,从上述类别组C中选择用户所需要的类别,以建立个性化分类结构,并将该个性化分类结构映射给服务器102,其中上述个性化分类结构可以是树结构,而所述树结构的每个节点包括一个或多个类别。其具体为:在建立根节点tr时,对选定的一个或多个类别进行逻辑“或”运算或逻辑“与”运算,其结果作为根节点tr所具有的类别;和在建立次级节点tx时,对为该次级节点tx选定的一个或多个类别进行逻辑“或”运算或逻辑“与”运算,再将该结果与该次级节点tx的父节点中的类别进行逻辑“与”运算,并将逻辑“与”运算的结果作为该次级节点tx中所具有的类别。
在步骤S6中,用户在客户机101上选定树结构中的特定节点,确定该节点中所包含的各个类别;将该选定结果通知给服务器102。
在步骤S7中,服务器102响应该选定请求,判定与各个类别相应的类别表中所记录的文档数量的多少,并从记录最少文档数量的类别中开始检索要浏览的文档;将该节点所包含的被请求的文档提供给客户机101,供用户进行浏览。
以上对本发明中的文档分类方法进行了描述。
另外,本发明中所提供的程序代码并不是唯一的,只要能实现本发明的目的,本领域的技术人员可以在上述思想的指导下,用各种程序代码来实现。
如上所述,对于本发明的个性化分类设计,我们需要做的全部事情就是在客户机上对服务器所提供的扁平式的类别结构进行选择(例如是鼠标拖放操作),并对现有系统类别数据库应用上述方法Anode(例如是鼠标点击),因为在本发明中没有针对于任何个性化结构的模型(分类器),所以无需对多个分类模型进行训练,并且所有的个性化文档分类都可以基于一个统一的分类模型来产生。因此,本发明的方法对个性化分类来说,是非常有效和实用的。
以上所述,仅为本发明的较佳实施例而已,不能以其限定本发明所要求保护的范围。本领域技术人员知道,依照本发明的实施例可以做出各种均等变化与变形,其都应属于本发明所覆盖的范围之内。
Claims (20)
1.一种文档分类处理方法,包括步骤:
(1)在服务器端建立多个类别,将供用户浏览的文档分配到相应的类别之下,并以扁平结构管理多个所述类别;以及
(2)在客户机端,从多个类别中选择所需类别来建立个性化分类结构。
2.如权利要求1所述的文档分类处理方法,其特征在于所述个性化分类结构是树结构,所述树结构的每个节点包括一个或多个类别。
3.如权利要求2所述的文档分类处理方法,其特征在于还包括步骤:
(3)在客户机端,通过选定树结构中的特定节点,浏览所需文档。
4.如权利要求3所述的文档分类处理方法,其特征在于所述步骤(1)还包括步骤:
建立类别组,其中类别组中包括多个所述类别,每个所述类别具有第一识别信息;
建立文档组,其中文档组中包括要被浏览的全部文档,每个所述文档具有第二识别信息;
建立包含多个比特串的比特串数组,其中每个比特串表示与其相应的类别在所述类别组中的位置;和
为每个所述类别建立相应的类别表,其中存储属于该类别的各个文档的第二识别信息。
5.如权利要求4所述的文档分类处理方法,其特征在于还包括步骤:
将各个文档二值化,其中如果一文档属于某一类别,则该文档在该类别下的二值化结果为1,并将该文档的第二识别信息插入到该类别的所述类别表中;如果一文档不属于某一类别,则该文档在该类别下的二值化结果为0。
6.如权利要求5所述的文档分类处理方法,其特征在于还包括步骤:
建立类别更新列表和文档更新列表,用于分别记录所述类别和所述文档的更新状态。
7.如权利要求6所述的文档分类处理方法,其特征在于:所述类别的第一识别信息包括该类别在所述类别组中的第一位置信息,并且所述文档的第二识别信息包括该文档在所述文档组中的第二位置信息。
8.如权利要求7所述的文档分类处理方法,其特征在于还包括步骤:
当删除一类别时,删除与其相应的比特串,并在所述类别更新列表中标记所述第一位置信息,表示该位置为空。
9.如权利要求8所述的文档分类处理方法,其特征在于还包括步骤:
当插入一类别时,先在所述类别更新列表中进行搜索,如果找到被标记的第一位置信息,则将该类别插入所述类别组中的相应位置,并删除所述类别更新列表中的所述第一位置信息;
如果没有找到被标记的所述第一位置信息,则将该类别插入到所述类别组中的新位置;以及
将与所插入的类别相应的比特串增加到比特串数组中。
10.如权利要求7所述的文档分类处理方法,其特征在于还包括步骤:
当删除一文档时,从所述类别表中删除所述文档的所述第二识别信息,并在所述文档更新列表中标记所述第二位置信息,表示该位置为空。
11.如权利要求10所述的文档分类处理方法,其特征在于还包括步骤:
当插入一文档时,先在所述文档更新列表中进行搜索,如果找到被标记的所述第二位置信息,则将该文档插入所述文档组中的相应位置,并删除所述文档更新列表中的该位置信息;
如果没有找到被标记的所述第二位置信息,则将所述文档插入到所述文档组中的新位置;以及
将所述第二识别信息插入到所述类别表中。
12.如权利要求2所述的文档分类处理方法,其特征在于步骤(2)还包括:
在建立根节点时,对选定的一个或多个类别进行逻辑“或”运算或逻辑“与”运算,其结果作为根节点所具有的类别;和
在建立次级节点时,对为该次级节点选定的一个或多个类别进行逻辑“或”运算或逻辑“与”运算,再将该结果与该次级节点的父节点中的类别进行逻辑“与”运算,并将逻辑“与”运算的结果作为该次级节点中所具有的类别。
13.如权利要求3或12所述的文档分类处理方法,其特征在于步骤(3)还包括:
通过选定特定节点,确定该节点中所包含的各个类别;
判定与各个类别相应的类别表中所记录的文档数量的多少;以及
从记录最少文档数量的类别中开始检索要浏览的文档。
14.如权利要求13所述的文档分类处理方法,其特征在于还包括步骤:
向所述客户机端实时提供搜索到的所述文档的列表。
15.如权利要求14所述的文档分类处理方法,其特征在于还包括步骤:
在所述客户机端从所述文档的列表中选定要浏览的文档;以及
向所述客户机端提供被选定的文档,以供用户浏览。
16.一种文档分类处理系统,包括通过网络连接的服务器和客户机,其特征在于还包括:
系统分类装置,配置在所述服务器端,用于为供用户浏览的各个文档建立多个类别,将各个所述文档分配到相应的类别之下,并以扁平结构管理所述多个类别;以及
定制装置,配置在所述客户机端,用于从多个类别中选择所需类别,以建立个性化分类结构。
17.如权利要求16所述的文档分类处理系统,其特征在于,所述系统分类装置还包括:初始化部件,用于对各种基本信息模型进行初始化操作。
18.如权利要求17所述的文档分类处理系统,其特征在于,所述系统分类装置还包括:更新装置,用于对所述文档和所述类别进行更新处理。
19.如权利要求18所述的文档分类处理系统,其特征在于所述个性化分类结构是树结构,所述树结构的每个节点包括一个或多个类别。
20.如权利要求16所述的文档分类处理系统,其特征在于还包括:
浏览装置,配置在所述客户机端,用于在选定树结构的特定节点的情况下,接收服务器端提供的所需文档并呈现给用户。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2004100283948A CN1667607A (zh) | 2004-03-11 | 2004-03-11 | 用于文档浏览的个性化分类处理方法及系统 |
US11/077,336 US20050203943A1 (en) | 2004-03-11 | 2005-03-10 | Personalized classification for browsing documents |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2004100283948A CN1667607A (zh) | 2004-03-11 | 2004-03-11 | 用于文档浏览的个性化分类处理方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1667607A true CN1667607A (zh) | 2005-09-14 |
Family
ID=34916985
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2004100283948A Pending CN1667607A (zh) | 2004-03-11 | 2004-03-11 | 用于文档浏览的个性化分类处理方法及系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20050203943A1 (zh) |
CN (1) | CN1667607A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103324648A (zh) * | 2012-03-20 | 2013-09-25 | 祁勇 | 一种获取用户和文档个性化特征的方法和系统 |
CN103390008A (zh) * | 2012-05-08 | 2013-11-13 | 祁勇 | 一种获取用户个性化特征的方法和系统 |
CN103500315A (zh) * | 2013-10-12 | 2014-01-08 | 张仁平 | 一种信息资源合理分类和使用权限分配系统 |
CN103514237A (zh) * | 2012-06-25 | 2014-01-15 | 祁勇 | 一种获取用户和文档个性化特征的方法和系统 |
CN105005559A (zh) * | 2015-08-18 | 2015-10-28 | 东南大学 | 一种基于主题特征的文档分类方法 |
CN105045845A (zh) * | 2015-07-02 | 2015-11-11 | 浪潮(北京)电子信息产业有限公司 | 一种文档分类管理方法及装置 |
CN112966796A (zh) * | 2021-03-04 | 2021-06-15 | 南通苏博办公服务有限公司 | 基于大数据的企业信息档案存储管理方法及系统 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4041080B2 (ja) * | 2004-03-23 | 2008-01-30 | 東芝ソリューション株式会社 | データ検索装置及びデータ検索プログラム |
TW200704183A (en) | 2005-01-27 | 2007-01-16 | Matrix Tv | Dynamic mosaic extended electronic programming guide for television program selection and display |
US8875196B2 (en) * | 2005-08-13 | 2014-10-28 | Webtuner Corp. | System for network and local content access |
US7822769B2 (en) * | 2006-08-31 | 2010-10-26 | Rivet Software, Inc. | Analysis of financial and business information based on interactive data |
US7941449B2 (en) * | 2007-11-05 | 2011-05-10 | Verizon Patent And Licensing Inc. | Data structure versioning for data management systems and methods |
US8229779B2 (en) * | 2009-12-14 | 2012-07-24 | Wipro Limited | Method and system for workflow management of a business process |
CA2836462A1 (en) | 2011-05-17 | 2012-11-22 | Eduard Zaslavsky | System and method for scalable, high accuracy, sensor and id based audience measurement system |
CA2837198A1 (en) | 2011-05-24 | 2012-11-29 | Webtuner Corp. | System and method to increase efficiency and speed of analytics report generation in audience measurement systems |
EP2716038A4 (en) | 2011-05-26 | 2014-10-22 | Webtuner Corp | HIGH-GRADE, SCALABLE TOUCH DETECTION SYSTEM WITH CLIENT PRE-PROCESSING OF EVENTS |
GB2506450A (en) * | 2012-10-01 | 2014-04-02 | Wonga Technology Ltd | Web page categorisation |
US20150312806A1 (en) * | 2012-11-30 | 2015-10-29 | Interdigital Patent Holdings, Inc. | Distributed mobility management technology in a network environment |
KR101702767B1 (ko) * | 2015-08-18 | 2017-02-03 | 라인 가부시키가이샤 | 비트를 이용하여 문서에 대한 접근 권한과 타입에 따라 문서를 검색하는 시스템 및 방법 |
JP2021179901A (ja) * | 2020-05-15 | 2021-11-18 | シャープ株式会社 | 画像形成装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7343378B2 (en) * | 2004-03-29 | 2008-03-11 | Microsoft Corporation | Generation of meaningful names in flattened hierarchical structures |
-
2004
- 2004-03-11 CN CNA2004100283948A patent/CN1667607A/zh active Pending
-
2005
- 2005-03-10 US US11/077,336 patent/US20050203943A1/en not_active Abandoned
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103324648A (zh) * | 2012-03-20 | 2013-09-25 | 祁勇 | 一种获取用户和文档个性化特征的方法和系统 |
CN103390008A (zh) * | 2012-05-08 | 2013-11-13 | 祁勇 | 一种获取用户个性化特征的方法和系统 |
CN103390008B (zh) * | 2012-05-08 | 2018-09-28 | 六六鱼信息科技(上海)有限公司 | 一种获取用户个性化特征的方法和系统 |
CN103514237A (zh) * | 2012-06-25 | 2014-01-15 | 祁勇 | 一种获取用户和文档个性化特征的方法和系统 |
CN103514237B (zh) * | 2012-06-25 | 2018-09-04 | 深圳市易图资讯股份有限公司 | 一种获取用户和文档个性化特征的方法和系统 |
CN103500315A (zh) * | 2013-10-12 | 2014-01-08 | 张仁平 | 一种信息资源合理分类和使用权限分配系统 |
CN105045845A (zh) * | 2015-07-02 | 2015-11-11 | 浪潮(北京)电子信息产业有限公司 | 一种文档分类管理方法及装置 |
CN105045845B (zh) * | 2015-07-02 | 2018-07-31 | 浪潮(北京)电子信息产业有限公司 | 一种文档分类管理方法及装置 |
CN105005559A (zh) * | 2015-08-18 | 2015-10-28 | 东南大学 | 一种基于主题特征的文档分类方法 |
CN112966796A (zh) * | 2021-03-04 | 2021-06-15 | 南通苏博办公服务有限公司 | 基于大数据的企业信息档案存储管理方法及系统 |
CN112966796B (zh) * | 2021-03-04 | 2022-03-15 | 南通苏博办公服务有限公司 | 基于大数据的企业信息档案存储管理方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
US20050203943A1 (en) | 2005-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1667607A (zh) | 用于文档浏览的个性化分类处理方法及系统 | |
CN1284107C (zh) | 用于搜索一组信息项的信息检索设备和方法 | |
JP6246279B2 (ja) | 消費者定義の情報アーキテクチャ用のシステム、方法およびコンピュータプログラム | |
CN100405366C (zh) | 用于为一组搜索结果生成精细化类别的系统和方法 | |
JP4141460B2 (ja) | 自動分類生成 | |
JP6016843B2 (ja) | ユーザ駆動によるセマンティックネットワークの動的生成およびメディア統合のための方法、システム、ならびにコンピュータプログラム | |
CN1299223C (zh) | 提供关系数据的一致性层次抽象化 | |
CN1841379A (zh) | 将文件系统模型映射到数据库对象 | |
CN1694101A (zh) | 用于搜索术语建议的多种类型数据的加强群集 | |
CN1809804A (zh) | 补充有提供对来自预定义搜索查询的搜索结果的访问的url的搜索引擎 | |
CN1955958A (zh) | 一种基于目录树的分类数据存储及分类目录查询方法 | |
CN1717685A (zh) | 信息存储与检索 | |
CN1609859A (zh) | 搜索结果聚类的方法 | |
CN1806241A (zh) | 数据库查询用户界面 | |
CN1755683A (zh) | 上下文动作的发布 | |
CN1725213A (zh) | 构造、维护个性化分类树、分类显示文档的方法及系统 | |
CN1542599A (zh) | 层次化数据的多方向显示和导航以及显示区消耗的优化 | |
CN1568469A (zh) | 用于信息检索的分层数据驱动导航系统及方法 | |
CN1584884A (zh) | 检索结构化文档的数据的设备和方法 | |
CN101488086A (zh) | 一种基于领域模型的软件生成方法及装置 | |
CN1896994A (zh) | 用于显示零件信息的装置、系统和方法 | |
CN1900935A (zh) | 访问扇区数据的方法和系统 | |
CN1758251A (zh) | 静态和动态数据集的交互 | |
KR100736768B1 (ko) | 데이터 분류체계 관리 방법 | |
CN1855052A (zh) | 一种从树型结构数据和一组代码片断结构体生成目标源代码的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
AD01 | Patent right deemed abandoned | ||
C20 | Patent right or utility model deemed to be abandoned or is abandoned |