关键词:
以下概念摘自这位老兄 http://my.csdn.net/pennyliang 的博客
1. 停用词
停用词数据资源: http://www.datatang.com/s/data?k=%E5%81%9C%E7%94%A8%E8%AF%8D
人类语言包含很多功能词。与其他词相比,功能词没有什么实际含义。最普遍的功能词是限定词(“the”、“a”、“an”、“that”、和“those”),这些词帮助在文本中描述名词和表达概念,如地点或数量。介词如:“over”,“under”,“above” 等表示两个词的相对位置。
这些功能词的两个特征促使在搜索引擎的文本处理过程中对其特殊对待。第一,这些功能词极其普遍 。记录这些词在每一个文档中的数量需要很大的磁盘空间。第二,由于它们的普遍性和功能,这些词很少单独表达文档相关程度的信息 。如果在检索过程中考虑每一个词而不是短语,这些功能词基本没有什么帮助。
在信息检索中,这些功能词的另一个名称是:停用词(stopword )。称它们为停用词是因为在文本处理过程中如果遇到它们,则立即停止处理,将其扔掉 。将这些词扔掉减少了索引量,增加了检索效率,并且通常都会提高检索的效果。停用词主要包括英文字符、数字、数学字符、标点符号及使用频率特高的单汉字等。
为节省存储空间和提高搜索效率,搜索引擎在索引页面或处理搜索请求时会自动忽略某些字或词,这些字或词即被称为Stop Words (停用词)。通常意义上,Stop Words大致为如下两类:
1、这些词应用十分广泛,在Internet上随处可见,比如“Web”一词几乎在每个网站上均会出现,对这样的词搜索引擎无法保证能够给出真正相关的搜索结果,难以帮助缩小搜索范围,同时还会降低搜索的效率;
2、这类就更多了,包括了语气助词、副词、介词、连接词等,通常自身 并无明确的意义,只有将其放入一个完整的句子中才有一定作用,如常见的“的”、“在”之类。
举个例子来说,象“IT技术点评”,虽然其中的“IT”从我们的本意上是指“Information Technology”,事实上这种缩写也能够为大多数人接受,但对搜索引擎来说,此“IT”不过是“it”,即“它”的意思,这在英文中是一个极其常见,同时意思又相当含混的词,在大多数情况下将被忽略。我们在IT技术点评中保留“IT”更多地面向“人”而非搜索引擎,以求用户能明了IT技术点评网站涉及的内容限于信息技术,虽然从SEO的角度这未必是最佳的处理方式。
了解Stop Words,在网页内容中适当地减少Stop Words出现的频率,可以有效地帮助我们提高关键词密度,而在网页Title中避免出现Stop Words往往能够让我们优化的关键词更突出 。
2. TF/IDF (term frequency/inverse document frequency )
∑TFi*IDFi
=∑TFi*log(D/Dwi)
TFi是词语wi在本网页中出现的概率;D是所有所有网页的数量;Dwi是出现词语wi的所有网页的数量;
[我们已经谈过了如何自动下载网页、如何建立索引、如何衡量网页的质量(Page Rank)。我们今天谈谈如何确定一个网页和某个查询的相关性。了解了这四个方面,一个有一定编程基础的读者应该可以写一个简单的搜索引擎了,比如为您所在的学校或院系建立一个小的搜索引擎。]
我们还是看上回的例子,查找关于“原子能的应用”的网页。我们第一步是在索引中找到包含这三个词的网页(详见关于布尔运算的系列)。现在任何一个搜索引擎都包含几十万甚至是上百万个多少有点关系的网页。那么哪个应该排在前面呢?显然我们应该根据网页和查询“原子能的应用”的相关性对这些网页进行排序。因此,这里的关键问题是如何度量网页和查询的相关性。
我们知道,短语“原子能的应用”可以分成三个关键词:原子能、的、应用。根据我们的直觉,我们知道,包含这三个词多的网页应该比包含它们少的网页相关。当然,这个办法有一个明显的漏洞,就是长的网页比短的网页占便宜,因为长的网页总的来讲包含的关键词要多些。因此我们需要根据网页的长度,对关键词的次数进行归一化,也就是用关键词的次数除以网页的总字数。我们把这个商称为“关键词的频率”,或者“单文本词汇频率”(Term Frequency),比如,在某个一共有一千词的网页中“原子能”、“的”和“应用”分别出现了 2 次、35 次 和 5 次,那么它们的词频就分别是 0.002、0.035 和 0.005。 我们将这三个数相加,其和 0.042 就是相应网页和查询“原子能的应用”
相关性的一个简单的度量。概括地讲,如果一个查询包含关键词 w1,w2,...,wN, 它们在一篇特定网页中的词频分别是: TF1, TF2, ..., TFN。 (TF: term frequency)。 那么,这个查询和该网页的相关性就是:
TF1 + TF2 + ... + TFN。
读者可能已经发现了又一个漏洞。在上面的例子中,词“的”站了总词频的 80% 以上,而它对确定网页的主题几乎没有用。我们称这种词叫“应删除词”(Stopwords),也就是说在度量相关性时不应考虑它们的频率。在汉语中,应删除词还有“是”、“和”、“中”、“地”、“得”等等几十个。忽略这些应删除词后,上述网页的相似度就变成了0.007,其中“原子能”贡献了0.002,“应用”贡献了 0.005。
细心的读者可能还会发现另一个小的漏洞。在汉语中,“应用”是个很通用的词,而“原子能”是个很专业的词,后者在相关性排名中比前者重要。因此我们需要给汉语中的每一个词给一个权重,这个权重的设定必须满足下面两个条件:
1. 一个词预测主题能力越强,权重就越大,反之,权重就越小。我们在网页中看到“原子能”这个词,或多或少地能了解网页的主题。我们看到“应用”一次,对主题基本上还是一无所知。因此,“原子能“的权重就应该比应用大。
2. 应删除词的权重应该是零。
我们很容易发现,如果一个关键词只在很少的网页中出现,我们通过它就容易锁定搜索目标,它的权重也就应该大。反之如果一个词在大量网页中出现,我们看到它仍然不很清楚要找什么内容,因此它应该小。概括地讲,假定一个关键词 w 在 Dw 个网页中出现过,那么 Dw 越大,w 的权重越小,反之亦然。在信息检索中,使用最多的权重是“逆文本频率指数” (Inverse document frequency 缩写为IDF),它的公式为log(D/Dw)其中D是全部网页数。比如,我们假定中文网页数是D=10亿,应删除词“的”在所有的网页中都出现,即Dw=10亿,那么它的IDF=log(10亿/10亿)= log (1) = 0。假如专用词“原子能”在两百万个网页中出现,即Dw=200万,则它的权重IDF=log(500) =6.2。又假定通用词“应用”,出现在五亿个网页中,它的权重IDF = log(2)则只有 0.7。也就只说,在网页中找到一个“原子能”的匹配相当于找到九个“应用”的匹配。利用 IDF,上述相关性计算个公式就由词频的简单求和变成了加权求和,即 TF1*IDF1 + TF2*IDF2 +... + TFN*IDFN。在上面的例子中,该网页和“原子能的应用”的相关性为 0.0161,其中“原子能”贡献了 0.0126,而“应用”只贡献了0.0035。这个比例和我们的直觉比较一致了。
TF/IDF(term frequency/inverse document frequency) 的概念被公认为信息检索中最重要的发明。在搜索、文献分类和其他相关领域有广泛的应用。讲起 TF/IDF 的历史蛮有意思。IDF 的概念最早是剑桥大学的斯巴克-琼斯[注:她有两个姓] (Karen Sparck Jones)提出来的。斯巴克-琼斯 1972 年在一篇题为关键词特殊性的统计解释和她在文献检索中的应用的论文中提出IDF。遗憾的是,她既没有从理论上解释为什么权重IDF应该是对数函数log(D/Dw)(而不是其它的函数,比如平方根),也没有在这个题目上作进一步深入研究,以至于在以后的很多文献中人们提到 TF/IDF 时没有引用她的论文,绝大多数人甚至不知道斯巴克-琼斯的贡献。同年罗宾逊写了个两页纸的解释,解释得很不好。倒是后来康乃尔大学的萨尔顿(Salton)多次写文章、写书讨论 TF/IDF 在信息检索中的用途,加上萨尔顿本人的大名(信息检索的世界大奖就是以萨尔顿的名字命名的)。很多人都引用萨尔顿的书,甚至以为这个信息检索中最重要的概念是他提出的。当然,世界并没有忘记斯巴克-琼斯的贡献,2004年,在纪念文献学学报创刊 60 周年之际,该学报重印了斯巴克-琼斯的大作。罗宾逊在同期期刊上写了篇文章,用香农的信息论解释 IDF,这回的解释是对的,但文章写的并不好、非常冗长(足足十八页),把一个简单问题搞复杂了。其实,信息论的学者们已经发现并指出,其实 IDF 的概念就是一个特定条件下、关键词的概率分布的交叉熵(Kullback-Leibler Divergence)。这样,信息检索相关性的度量,又回到了信息论。
现在的搜索引擎对 TF/IDF 进行了不少细微的优化,使得相关性的度量更加准确了。当然,对有兴趣写一个搜索引擎的爱好者来讲,使用 TF/IDF 就足够了。 如果我们结合上网页排名(Page Rank),那么给定一个查询,有关网页综合排名大致由相关性和网页排名乘积决定。
3. 信息熵
信息是个很抽象的概念。我们常常说信息很多,或者信息较少,但却很难说清楚信息到底有多少。比如一本五十万字的中文书到底有多少信息量。直到 1948 年,香农提出了“信息熵”(shāng) 的概念,才解决了对信息的量化度量问题。
一条信息的信息量大小和它的不确定性有直接的关系。比如说,我们要搞清楚一件非常非常不确定的事,或是我们一无所知的事情,就需要了解大量的信息。相反,如果我们对某件事已经有了较多的了解,我们不需要太多的信息就能把它搞清楚。所以,从这个角度,我们可以认为,信息量的度量就等于不确定性的多少。
那么我们如何量化的度量信息量呢?我们来看一个例子,马上要举行世界杯赛了。大家都很关心谁会是冠军。假如我错过了看世界杯,赛后我问一个知道比赛结果的观众“哪支球队是冠军”? 他不愿意直接告诉我, 而要让我猜,并且我每猜一次,他要收一元钱才肯告诉我是否猜对了,那么我需要付给他多少钱才能知道谁是冠军呢? 我可以把球队编上号,从 1 到 32, 然后提问: “冠军的球队在 1-16 号中吗?” 假如他告诉我猜对了, 我会接着问: “冠军在 1-8 号中吗?” 假如他告诉我猜错了, 我自然知道冠军队在 9-16 中。 这样只需要五次, 我就能知道哪支球队是冠军。所以,谁是世界杯冠军这条消息的信息量只值五块钱。
当然,香农不是用钱,而是用 “比特”(bit)这个概念来度量信息量。 一个比特是一位二进制数,计算机中的一个字节是八个比特。在上面的例子中,这条消息的信息量是五比特。(如果有朝一日有六十四个队进入决赛阶段的比赛,那么“谁世界杯冠军”的信息量就是六比特,因为我们要多猜一次。) 读者可能已经发现, 信息量的比特数和所有可能情况的对数函数 log 有关。 (log32=5, log64=6。)
有些读者此时可能会发现我们实际上可能不需要猜五次就能猜出谁是冠军,因为象巴西、德国、意大利这样的球队得冠军的可能性比日本、美国、韩国等队大的多。因此,我们第一次猜测时不需要把 32 个球队等分成两个组,而可以把少数几个最可能的球队分成一组,把其它队分成另一组。然后我们猜冠军球队是否在那几只热门队中。我们重复这样的过程,根据夺冠概率对剩下的候选球队分组,直到找到冠军队。这样,我们也许三次或四次就猜出结果。因此,当每个球队夺冠的可能性(概率)不等时,“谁世界杯冠军”的信息量的信息量比五比特少。香农指出,它的准确信息量 应该是
= -(p1*log p1 + p2 * log p2 + ... +p32 *log p32) ,
其中,p1,p2 , ...,p32 分别是这 32 个球队夺冠的概率。香农把它称为“信息熵” (Entropy),一般用符号 H 表示,单位是比特。有兴趣的读者可以推算一下当 32 个球队夺冠概率相同时,对应的信息熵等于五比特。有数学基础的读者还可以证明上面公式的值不可能大于五。对于任意一个随机变量 X(比如得冠军的球队),它的熵定义如下:
变量的不确定性越大,熵也就越大,把它搞清楚所需要的信息量也就越大。
有了“熵”这个概念,我们就可以回答本文开始提出的问题,即一本五十万字的中文书平均有多少信息量。我们知道常用的汉字(一级二级国标)大约有 7000 字。假如每个字等概率,那么我们大约需要 13 个比特(即 13 位二进制数)表示一个汉字。但汉字的使用是不平衡的。实际上,前 10% 的汉字占文本的 95% 以上。因此,即使不考虑上下文的相关性,而只考虑每个汉字的独立的概率,那么,每个汉字的信息熵大约也只有 8-9 个比特。如果我们再考虑上下文相关性,每个汉字的信息熵只有5比特左右。所以,一本五十万字的中文书,信息量大约是 250 万比特。如果用一个好的算法压缩一下,整本书可以存成一个 320KB 的文件。如果我们直接用两字节的国标编码存储这本书,大约需要 1MB 大小,是压缩文件的三倍。这两个数量的差距,在信息论中称作“冗余度 ”(redundancy)。 需要指出的是我们这里讲的 250 万比特是个平均数,同样长度的书,所含的信息量可以差很多。如果一本书重复的内容很多,它的信息量就小,冗余度就大。
------------------------------------------------------------------------------------------------------------------------------
看这两篇文章:
1. 基于微博的趋势话题计算
http://www.cnblogs.com/zhengyun_ustc/archive/2010/12/21/1913114.html
2. 消息聚合以及Topic Engine
http://qing.weibo.com/tj/6fb62b8a330004f6.html
最近几天任务:???
1. 找曾博聊聊打算
2. (分词)短语提取
3. 短语聚类
爬虫: heritrix、crawljax 、 封闭软件metastudio
爬取范围: A. 全网 B. 特定领域(微群)
分词:lucene(无词性)、ictclas4j(有词性)
其他: LinkedIn
新颖的想法:热点预测;
已经话题聚类好了,对于每个话题找出讨论最活跃的用户
相关推荐
本文通过几个模块设计并现了校园微博热点话题发现系统,包括微博数据爬取模块 、微博数据预处理模块、微博热点话题分析模块、微博热点话 题展示模块等模块。最后以广州中医药大学的生 活类微博 — 广中医I栋为研究...
6. **热门话题**:周刊会关注Python社区内的热点话题,例如Python 3的普及、Python在不同领域的应用(如云计算、物联网)、数据科学的最新进展等。这些话题讨论可以帮助你保持对行业动态的关注。 为了充分利用这个....
本文通过几个模块设计并实现了校园微博热点话题发现系统,包括微博数据爬取模块、微博数据预处理模块、微博热点话题分析模块、微博热点话题展示模块等模块。最后以广州中医药大学的生活类微博—广中医 I 栋为研究...
2. **中文语义分析技术**:针对中文特有的语言特点,讨论了如何利用中文分词、词性标注等技术进行语义分析,从而更准确地识别热点话题。 3. **热点话题发现技术**:结合文本聚类和语义分析技术,提出了一种高效的...
微博热点话题预测是网络舆情分析中的一个重要方向,它旨在通过分析微博上广泛被讨论的话题,预测未来可能出现的热门议题。由于微博热点话题具有直接性、突发性、偏差性等特点,传播速度快且影响范围广,其预测的准确...
标题中的“空间热门话题读取”指的是...综上所述,"空间热门话题读取"是一款集数据抓取、处理、展示于一体的软件工具,主要服务于关注网络热点的用户群体。其背后的技术涵盖了网络通信、数据处理、用户交互等多个方面。
首先在分析微博文本特点的基础上设计了一种垃圾微博的过滤算法;...最后基于以上两点提出了一种微博社区热门话题检测方法。真实数据集上的实验表明了过滤的必要性和所提出的微博社区热门话题检测方法的有效性。
比如Seo YW等人提出的Single-Pass算法,它通过单次扫描文本来发现热点话题,这种方法简单易行,适用于实时的热点发现。而Danah Boyd则通过统计微博中与现实生活相关的词汇,并分析出微博用户的倾向性,从而探索情感...
基于python的校园热点话题检测案例,主要介绍:如何使用Python来实现微博热点话题检测技术,通过对微博文本的分析和处理,准确地捕捉到当前最热门的话题。CSDN文章链接:...
新浪微博用户兴趣爱好提取 新浪微博热点话题提取 基于用户兴趣的热点话题推荐 jar文件格式
本文还讨论了基于情感分析的监管网络舆情发展、基于情感分析的用户行为研究等方面的应用,旨在掌握网络热点话题的舆情走向,了解用户的行为和情感状态,并为相关部门引导舆论走向,消除舆论影响提供理论支持。...
总结而言,热门话题营销是一种高效、低成本的营销方式,它通过创造热点、吸引用户关注和参与,达成提升品牌曝光度和用户互动的目标。2015年的运营案例表明,通过精心设计的话题内容、有效的推广策略、数据分析以及...
该模型在传统LDA的基础上,加入了文本的一些属性信息,如标签、转发数、评论数、时间等,从而提高了模型的解释能力和对热点话题的识别精度。这种改进通过结合文本属性信息,可以更加贴合社交媒体文本的特点,更准确...
社会网络中的热点话题数据挖掘算法的核心目标是快速且准确地识别和预测社会网络中可能广泛传播的热门话题。由于社会网络的动态性和用户生成内容的多样复杂性,对这些话题进行有效挖掘十分具有挑战性。现有的数据挖掘...
十大热点话题回响PCB产业2013.pdf
热点话题
大学生校园热点话题观点调查报告 本报告旨在对大学生对热点话题的观点进行调查和分析,以了解他们的想法和见解,了解他们对社会热点话题的关注和理解。通过对大学生的调查,我们可以更好地了解他们的需求和想法,並...