公开/公告号CN101436194A
专利类型发明专利
公开/公告日2009-05-20
原文格式PDF
申请/专利权人 中国电子科技集团公司第五十四研究所;
申请/专利号CN200810079685.8
申请日2008-11-04
分类号G06F17/30;G06F17/27;
代理机构
代理人
地址 050081 河北省石家庄市中山西路589号第54所指控部
入库时间 2023-12-17 21:57:44
法律状态公告日
法律状态信息
法律状态
2011-02-16
授权
授权
2009-07-15
实质审查的生效
实质审查的生效
2009-05-20
公开
公开
技术领域
本发明涉及计算机文本自动处理领域中的一种基于数据挖掘技术的文本多精度表示方法,特别适用于任何语言的文本文档的文本搜索、文本聚类、文本摘要等诸多文本智能处理。
背景技术
目前对文本的表示通常采用向量空间模型,即从词汇表中抽取特征词构成一个公共表示空间—向量空间,然后把文档集合中的每一个文档表示在向量空间中。在向量空间模型中,是以单个词为处理对象的。并且,有一个重要的前提:假设词与词之间是相互独立的。在这种设计中,由于是以单个词为处理对象,这样就割裂了语言中词与词之间相互关联关系;同样,词与词之间相互独立这一假设也是不成立的。在现实语言中,词与词之间是相互关联的。因此,基于向量空间模型的文档表示有表示不清,文档间易于混淆等缺点。
发明内容
本发明所要解决的技术问题在于避免上述背景技术中的不足之处而提供一种基于数据挖掘技术的词关联挖掘算法,准确地从文本中抽取多层次文本特征,形成文本精确表示的基于数据挖掘技术的文本多精度表示方法。本发明利用数据挖掘算法充分发现文本中那些相互关联的且与文本中心内容紧密相关的词组合,这些词组合代表了与文本中心思想相关的概念,通过这些概念词组合对文档进行精确表示。本发明具有运算速度快,性能稳定,与文本所用语言无关,适用面广等特点。
本发明所要解决的技术问题由以下技术方案实现:
它包括步骤:
①对文本进行分词处理,停用词过滤处理;
②根据数据挖掘技术设计词关联挖掘算法,对分词及停用词过滤处理后的文本进行多层次文本特征抽取;
词关联挖掘算法包括步骤:给定一篇文档D,
抽取出D中所有的句子形成集合S={s1,s2,……sn},其中s1,s2,……sn代表文档中的句子;
(1)D中出现的词构成集合C1,统计C1中各个词在句子中出现的频率,设定一个限定值R,把发生次数超过R的词放入集合L1中,把未能进入L1的词放入集合~L1中;
(2)利用集合~L1对S中的句子进行处理,其过程是去除每个句子中在~L1中出现的词组合元素,经过处理的句子形成新的集合Snew;
(3)基于Snew中的每个句子,找出句中所有两个词的词组合,形成集合C2,找出C2中每个词组合在句子中出现的频率,把发生频率次数超过R的词组合放入L2中,把未能进入L2的词组合放入~L2中;
(4)利用集合~L2对S中的句子进行处理,其过程是去除每个句子中在~L2中出现的词组合元素,经过处理的句子形成新的集合Snew;
(5)基于Snew中的每个句子,找出句中所有三个词的词组合,形成集合C3,找出C3中每个词组合在句子中出现的频率,把发生频率次数超过R的词组合放入L3中,把未能进入L3的词组合放入~L3中;
重复上述(5)、(6)步骤,直至找出所有满足限定值R的包含n个词的词组合特征,放入Ln中,n为大于3的整数,
集合L1,L2,......,Ln中的词组合就构成了文档D的多层次文本特征,多层次文本特征包括单个词特征、两词特征、三词特征及n个词的特征,n为大于3的整数;
多层次文本特征表示形式为:
单个词特征:{Word1},{Word2};
两词特征:{Word1,Word2},{Word3,Word4};
三词特征:{Word1,Word2,Word3},{Word4,Word5,Word6};
n个词特征:{Word1,Word2,……,Wordn}。
本发明与背景技术相比具有以下有优点:
1.本发明采用词关联挖掘算法不仅可以发现文本中的单个词特征,还可以发现多词特征,对文本进行多层次描述,比传统方法抽取的单个词的特征更能反映文本的内容特征。
2.本发明区别传统的向量空间模型试图用一个向量空间表示文档集合中所有的文档,由于向量空间所含特征维数是有限的。因此,向量空间模型的表示能力也是有限的。随着文档集合中文档数量的增加,向量空间模型的这种局限性就越明显。因此,向量空间模型不适用于动态增加的文档集合。但现实生活中,大部分文档集合是动态增加的。本发明能对每个文档单独处理,抽取其特征,从而避免了上述缺点,适合于动态文档集合。
3.本发明使用多层次特征表示文本,多层次特征的数量是依具体文本的不同而不同的,文本中的特征多,挖掘出的特征就多;而在向量空间模型中,集合中所有的文档都使用同一个向量表示空间。因此,从每个文档中挖掘出的特征数量是一样的,不能随文档所含特征量的不同而变化。
4.本发明还具有运算速度快,性能稳定,与文本的文字语言无关,适用范围广等优点。
附图说明
图1是本发明的文本多层次特征挖掘过程的流程图。
具体实施方式
参照图1,本发明包括计算机处理文本时的文本表示技术,文本表示是指抽取自然语言原始文本中的特征并用特征表示文本的过程,在计算机内部是基于文本表示进行文本检索、分类、聚类处理运算。本发明包括步骤:
①对文本进行分词处理,停用词过滤处理;
实施例本发明文本分词处理。对于中文文本,首先找出文本中的词边界,从而把文本中包含的词显式表示出来,这一过程就是分词,然后对每一个词进行词性标注。对于西方语言,词与词之间有空格作为间隔,无需进行分词处理,可直接进行词性标注处理。
实施例本发明停用词过滤处理,即把与文本中与内容不相关的词,如介词、连词等从文本中删除。这样不会损失文本的原有信息,且可以减少运算量。如图1所示,第①步骤中的文本分词和停用词过滤是公知的文本处理措施。
②根据数据挖掘技术设计词关联挖掘算法,对分词及停用词过滤处理后的文本进行多层次文本特征抽取;
词关联挖掘算法包括步骤:给定一篇文档D,
(1)抽取出D中所有的句子形成集合S={s1,s2,……sn},其中s1,s2,……sn代表文档中的句子;
(2)D中出现的词构成集合C1,统计C1中各个词在句子中出现的频率,设定一个限定值R,把发生次数超过R的词放入集合L1中,把未能进入L1的词放入集合~L1中;
(3)利用集合~L1对S中的句子进行处理,其过程是去除每个句子中在~L1中出现的词组合元素,经过处理的句子形成新的集合Snew;
(4)基于Snew中的每个句子,找出句中所有两个词的词组合,形成集合C2,找出C2中每个词组合在句子中出现的频率,把发生频率次数超过R的词组合放入L2中,把未能进入L2的词组合放入~L2中;
(5)利用集合~L2对S中的句子进行处理,其过程是去除每个句子中在~L2中出现的词组合元素,经过处理的句子形成新的集合Snew;
(6)基于Snew中的每个句子,找出句中所有三个词的词组合,形成集合C3,找出C3中每个词组合在句子中出现的频率,把发生频率次数超过R的词组合放入L3中,把未能进入L3的词组合放入~L3中;
重复上述(5)、(6)步骤,直至找出所有满足限定值R的包含n个词的词组合特征,放入Ln中,n为大于3的整数,
集合L1,L2,......,Ln中的词组合就构成了文档D的多层次文本特征,多层次文本特征包括单个词特征、两词特征、三词特征及n个词的特征,n为大于3的整数;
多层次文本特征表示形式为:
单个词特征:{Word1},{Word2};
两词特征:{Word1,Word2},{Word3,Word4};
三词特征:{Word1,Word2,Word3},{Word4,Word5,Word6};
n个词特征:{Word1,Word2,……,Wordn}。
如图1所示,实施例本发明第②步中词关联挖掘算法各步骤操作过程如下:
利用数据挖据技术抽取文本中的多词文本特征,多词特征包括单个词特征,两词特征,三词特征等各种长度的特征。特征长度越长,对文本的刻画越细腻。这些各种长度的词特征形成文本的多精度表示。具体的文本特征挖掘算法以函数的形式描述如下,是由一组顺序调用的函数组成的。
(1)MineDoc函数
输入:一个文档T
输出:文档中包含的多层次词组特征
MineDoc(Document T)
行1:k=1;//S代表原始文档T中的所有句子s1,s2,.....sn
行2:
行3:找出在所有句子中发生次数超过或等于R次的词序列,组成集合Lk;同时也找出发生次数未超过R次的词序列,组成集合~Lk。
行4:利用~Lk对Sk中的每一个句子进行处理,删除句子中在~Lk中出现的词。具体步骤参见SentenceProc()函数说明
行5:k++;
行6:end
行7:
MineDoc函数中第4步使用的函数SentenceProc()描述如下,即为第(2)个函数。
(2)SentenceProc()函数
输入:一个句子s
输出:一个经处理后缩短了的句子
SentenceProc(Sentence s,~qk)
行1:if(k=1)
行2: t=remove items in~qk from s
行3:else{
行4: generate ordered frequency tree r;
行5: Ss=Break(r);
行6: t=mapping Ss to sentence;
行7:}
行8:return t
其中,s代表一个句子;~qk是一个集合,它包含了~Lk中所有与s相关的非频繁k-itemset集合。当k=1时,只需将q1中的元素从s中删除即可。当k≥2,首先需要建立一个频率树。然后,在SentenceProc算法中的第5步,调用Break函数进行运算,结果放在Ss中。Ss中是一些是由0和1组成的数字串,即在Break函数内部的运算是二进制的,这样可以加快运算速度,到最后再把这些数字串通过映射变为句子。
SentenceProc函数是此挖掘算法的核心,它能够对句子进行分解,分解产生的子句的长度会比原来的句子短。这样,每调用一次SentenceProc函数,文档中的句子会越变越短,数量也越变越少,对文档的扫描时间也会随之缩短。
函数Break()描述如下,即为第(3)个函数。
(3)函数Break()
输入:一棵基于句子建立的树
输出:一串由0和1组成的二进制码
Break(Tree r)
行1:
行2:forall x∈r.subs do
行3: subres[x]=Break(x)∪newString(~x)
行4:result=newString();
行5:forall x∈r.subs do
行6: result=result & subres[x];
行7:remove b∈result,b.size≤k
行8:return result;
Break函数的输入是一个树结构,输出是一些由若干0和1组成的数字串。函数的第1行是一个退出条件,如果当前节点是树的叶节点则返回空集。第2和3行是一个迭代循环,每一次迭代循环负责处理树r的一个分支,处理结果放在subres中。newString(~x)函数负责生成一个由0和1组成的数字串,在此数字串中除与x对应的位是0外,其它位都是1。在第4行,利用newString(~x)函数对result进行初始化。在第5和6行,把subres中的数字串进行连续逻辑与操作,具体运算过程是:首先让初始化后的result与subres中的一个数字串进行逻辑与操作,在随后的运算中每一个数字串都与上一次操作的结果进行逻辑与运算。最终在result中会有若干个由0和1组成的数字串。在第7步,删除result中那些含1的个数不大于k的数字串。因为,由这些数字串映射产生的句子的长度不会大于k,在下一次第k+1次循环中,不可能从中产生长度为k+1的特征。
利用本发明所建立的一个文本检索系统实验表明,利用本发明所述文本表示方法实现的文本检索系统比使用传统向量空间文本表示方法建立的检索系统的查全率和准确率都能提高约10%。
机译: 一种信息建模,表示和集成的信息进程与不同型号的知识表示的无需使用正式语言的方法,这是一种基于结构化数据的有限集合来呈现描述这些对象的半结构化数据的方法
机译: 一种用于基于缩混信号表示来提供上混信号的设备,一种用于使用线性组合参数Bitstream提供表示多声道音频信号的比特流的设备,方法,计算机程序和多声道音频信号
机译: 一种用于基于缩混信号表示来提供上混信号的设备,一种用于使用线性组合参数Bitstream提供表示多声道音频信号的比特流的设备,方法,计算机程序和多声道音频信号