提取热点问题的新方法一、基本思路和观点基本观点1:文档标题中包含了部分、甚至大部分的语义特征词(组)。
从标题中提取特征词比基于词频在文本内容中纯统计方法提取特征词具有更好的质量。
基本观点2:标题中不可能包含文档语义的全部特征词。
因此,在一定条件下,仍然需要在文本内容中用统计方法提取更为全面的特征词。
具体而言,在基于标题特征词的聚类完成后,使用各聚类中质量较高的少数文档,在有分类的情况下,可以更好地提取内容中的特征词。
基本观点3:基于向量欧几里得距离的向量比较并不适合于文本相似性比较。
文本相似性更依赖于共有的特征词的多少,而不在于特征词在词频上相近。
基本观点4:在文本相似性比较中,特征词之间的关联性也很重要。
所谓关联性,表示特征词是否经常同时出现。
如果两篇文档的共有特征词的关联性强,就更相似。
基本观点5:K-MEANS聚类不适合于热点发现。
在热点发现中,有大量文档不属于特定的分类(热点问题)。
由于K-MEANS需要将所有文档分配到某个类别中,这些文档对聚类中心的影响非常大。
二、主要步骤1.提取有效标题目标:在有栏目路径的标题中,提取有效标题。
基本方法:采用标题横向字符串比较来发现栏目路径,从而提取有效标题。
问题1:有的网页直接采用栏目名称作为标题。
需要区分文档性网页和栏目性网页;问题2:栏目路径的表示方法各不相同。
有从左到右,也有相反的;分隔符也有多种。
2.提取标题中的特征词目标:发现标题中能够表达文本语义的特征词。
一个特征词常常不是一个词汇,而可能是一个词组。
基本方法:在内容中对标题词汇的各种组合进行查询,提取在文本中独立出现过的词汇(组合)作为特征词。
讨论:上述方法仅仅是在内容中查找是否存在标题词的某种组合,但并没有判断该组合对文章语义的重要性。
但经过词性过滤后,大部分词汇还是能够反映文章语义的词汇组合。
然而这些词对文章语义的重要性是不同的。
在一篇文章中高频出现的词汇,其重要性不言而喻。
为了后期聚类时进行改进,我们应该保留一个词组在文章中的关键词频。
但另一个问题是,如果一个词组在多篇文章中均有出现,如果保存其词频?关键词对某篇文章的重要性是在向量化是体现的。
因此这里并不需要保存其词频!改进:1.考虑标题中的分隔符(逗号,冒号和空格)对词组的影响;2.考虑《》和“”中词组的完整性。
a)这些标点应该纳入完整词组中。
但其中的纯粹词组也是有效的!3.形成词组时,单独的标点不能出现在词组的两端,除非是上述配对的标点。
问题:1.关键词数量太多!对聚类的效率影响很大。
2.标题关键词重叠很少,COS相似度很低。
DBSCAN选择EPS需要某种方法。
3.最大词匹配分词算法对标题进行处理后,仅输出最长关键词(往往是标题本身提供的关键词)。
这不利于与其它文章(标题)之间的比较。
统计标题关键词时,应该在词汇边界的约束下,尽可能多地找到其中可以匹配的所有关键词。
相互嵌套的关键词独立计数?如“在北京大学”,“北京大学”,“大学”。
4.从内容识别标题关键词时,遗漏了很多关键词。
如“在北京大学”在文章内容中出现一次,由于“北京大学”没有独立出现过,因此被遗漏。
这个问题可能不是很严重:其它文章可以补足关键词。
5.有一些不合理的关键词组。
如“经历统统造假”。
但这些关键词组可能不会对聚类造成不利影响。
6.增加标题关键词的权重(次数)的方法并没有使具有相同关键词的文章间的相似度变得更大。
eps仍然需要微调才能勉强是应该是同类的文章聚类在一起,且还包含很多无关文章。
从分析的角度看,需要输出任意两个文档所共同拥有的关键词。
思考:(1)对标题采用完全句法分析是可行的:标题较短,对速度影响不大。
而得到的短语比上述组合词组更为合理。
(2)应保留文章关键词的共现关系。
一个关键词集中的部分关键词是相互联系(出现在同一篇文章中的),可能形成一个关系网络。
对向量而言,最好的向量是各维正交的。
然而相互关联(相互印证)的一组关键词在另一篇文章中共现,可以很好地说明两种的相似性。
即应该修改以前各维无关的相似度计算,改为考虑关键词间相互影响关系的算法。
以前考虑过“关联矩阵”的方法,即根据语料中关键词之间的关联程度,形成一个关联矩阵。
一个关键词的出现,蕴含着于此关联的其它关键词的出现。
这是一个值得继续研究的方案!但原方法的关联矩阵是将一个词的出现频率部分传递给与它有关联的其它词汇,出现多个词汇时,它们对共有关联词的频率传递是线性叠加的。
然而一篇文章中同时出现多个关联词汇时,对其它关联词汇的频率传递是否应该考虑非线性传递呢?来源与不同文章的不同关联关系,对共同关联词的频率传递又该如何考虑呢?(3)标题特征词之间的包含关系蕴含着权重。
A 包括B ,则A 的语义根据准确,同样包含A 的文章,相似度应该更大。
词汇之间的包含关系可以通过特征词集后期比较发现。
前期关键词在单篇文章中的包含关系并不能完全反映所有情况。
根据标题,从文本中提取特征词的方法:或者采用最长匹配的方法。
需要一个算法。
(1) 对标题进行分词处理;(2) 发现特征词并统计其出现的绝对次数。
在正文中查找由任意数量的连续标题词汇组成的字符串。
如果找到则作为特征词,记录其次数。
注意,查找单个词的字符串前,首先判断它是否为停用词。
如果是,不查找。
(3) 提取独立出现过的特征词。
对所有特征词,按长度降序排序后,依次检查一个特征词是否包含后面(更短)的特征词。
若被包含的特征词的次数=当前特征词次数,则标注为无效特征词。
完成后,在特征词集中删除无效特征词,得到如下的文档特征集:{}12,,|1~i ii F w w i m <>= 其中,Fi 表示第i 个特征词的字符串,<>中为该特征词的具体词汇组成,其中不包括停用词。
(4)仅根据内容是否出现标题中的词组来判断关键词,使标题中很多明显的特征词被忽视。
如“回响中国”没有出现在内容中,使其系列文章没有产生聚类。
还有“90后”等。
需要增加一些标准来提取其中的关键词;(1) 完全句法分析,提取名词短语和动词短语?或还有其它类型的短语?(2) 引语内外均作为关键词;(3)3. 文档向量化处理与以前相同。
需要修改:标题包含相同关键词,则文章相似度比仅在内容中包含关键词的高。
即向量化处理时,需要在标题中查找关键词,且如果查到,则其权重应该更高。
但如何定义其权重呢?更基本的问题是:向量化是否应该直接用关键词在文章中的频率?在计算Cos相似度时,由于进行了归一化处理,向量某维中的数值大小并不重要。
直观的理解应该是包含了哪些?有多少重叠的关键词。
然而,偶然出现的某个词汇,也许对文章的语义并不太重要。
因此词频还是要起到一定的作用。
在标题中出现,则算多少次?按出现得最多的计算?(1)K作为有效词汇或词组,出现在A的标题中;i.K是A的原生关键词;此种情况下,K一定出现在A的内容中。
ii.K不是A的原生关键词;这种情况下,K一定没有出现在A的内容中。
区别仅在于K是否出现在A的内容中。
K作为A的标题关键词是可以肯定的。
即K对A是比较重要的。
但如果K大量出现在B的标题和内容中,仅少量出现、甚至没有出现在A内容中,K对A、B文档的重要性显然不同。
K同时出现在一篇文章的标题和内容中,是对K的代表性最大的肯定。
表示该文章直接论述K关键词所表达的语义。
K仅出现在一篇文章的标题中,表示该文讨论的是K语义的相关内容。
K对文章的重要性略低于前面的情况。
K仅出现在文章的内容中,可能表示K在该文章中仅仅被引述(作为例子之类的)。
但如果出现次数较多,则可能表示该文章对K的语义很重视。
例如K是某个事件的名称,一篇文章是论述文,主要论述与K事件相关的一些论点。
其归纳的标题并没有直接出现K,然而在文章中反复引用K。
相反,如果另一篇文章直接描述K事件,其内容反而可能根本不会出现K名称。
这就说明,无论在文章中出现得多频繁,K的重要性也不能超过仅出现在标题中。
换一个角度,如果A中有关键词K1,K2,K3。
K1仅出现在内容中,K2仅出现在标题中,K3同时出现在标题和内容中。
重要性依次应该是:I(K3)>I(K2)>I(K1)。
然而统计的数量可能K1或K3最多,K2计入标题的次数可能只有1次。
方案1:K2和K3的最小次数=K1的最大次数+1。
K3在内容中出现的次数进一步累计在其统计中。
但如果不存在K1呢?按上述算法,K2和K3的最少次数为1。
(2)K作为字符串,出现在A的标题中;当K仅作为字符串出现在A的标题中时,如“经济”出现在“经济危机...”的文章中,由于“经济危机”在分词时作为一个整词,一次K仅作为字符串出现在标题中。
此时K对A的重要性与普通词没有区别。
这篇文章可能是讨论“经济危机”对就业的影响的,与普通的经济内容文章并不太相似。
由此看出,在统计标题中的关键词次数时,仍然需要首先对标题进行分词处理,而不能采用最长词匹配的算法。
(3)K仅出现在A的内容中。
还有另一个问题:两个相互包含的关键词,若按目前的最长词匹配的统计算法,被包含的关键词可能在统计中没有被识别出来。
还需要考虑这种情况时,统计中是否应该只计入“独立出现次数”。
如“大学生”,“大学”。
且相互包含关系是仅考虑字符串的包含关系,还是在提取关键词时发现的相互包含关系(在标题中)。
例如“经济危机”包含“经济”和“危机”。
但如果在含“经济危机”的文章内容中没有包含“经济”,那两者间是否还应该存在包含关系呢?4.聚类最好采用DBSCAN算法:可直接得到聚类,也可以过滤密度小的文档。
通过阈值可以控制聚类的质量。
不好确定Eps和MinPts。
采用基于OPTICS的密度聚类方法。
修改OPTICS中的距离衡量为相似度衡量。
以下称一个文本向量为向量空间中的一个点。
定义1:核对象。
对于一个最小相似度阈值ε,若与p点相似度大于ε的点的数量大于最小点数(MinPts),则p是一个核对象。
这些与p的相似度大于ε的点称为p的邻域。
定义2:核相似度。
若p点是一个核对象,则其包含MinPts个点的领域的半径(其中与p的最小相似度)称为“核相似度”。
定义3:可达相似度。
若q为核对象,p到q点的可达相似度为q的核相似度或p与q 的相似度之间的较小值。
注意:可达相似度用于将所有点进行排序。
对排序后序列中的任意一个点p,其下一个点是q,满足p到q的可达相似度大于任意其它点到q的可达相似度。
这样可保证:p点之后的点与p的相似度较大,同时q点的核相似度也较大(稠密区)。
算法:(1)预设两个队列:有序种子队列和结果对象,初始两个队列为空。
有序种子对象中存放的点按其“可达相似度”降序排序。
(2)从点集中取一个点(未扩展的),放入有序种子队列中;如果没有未扩展的点,则算法结束。
(3)从有序种子队列中取出第一个点p,并对p点进行扩展:(3.1)判断p点是否为核对象。