Your SlideShare is downloading. ×
0
1
文本 掘(挖 Text
Mining )技 基术 础
出家如初 , 成佛有余
http://www.yeeach.com
2010 年 10 月
议题
搜索引擎文本挖掘基础
文本挖掘基础
2
搜索引擎技术不单纯只是搜索
搜索引擎技术除了实现 Web 搜索、图片搜索外
,还能够干什么?
搜索引擎核心技术有哪些?
—网络爬虫
—中英文分词
—排序算法
—Text Mining 相关
—海量数据存储
—分布式计算
—等等
3
Google 的十大核心技术
Google 的十大核心技术:
—分布式基础设施:
GFS 、 Chubby 、 Protocol Buffer
—分布式大规模数据处理
MapReduce 、 Sawzall
—分布式数据库技术:
Big...
搜索引擎技术使用场景:内容相似度
新闻站点的“您可能也喜欢”
—本质为:两篇文档 / 图书 / 商品内容的相似度
5
搜索引擎技术使用场景:内容分类、聚
类
6
7
通用搜索引擎系统流程
Lucene 系统架构
8
Lucene 系统架构
9
搜索引擎中文本挖掘典型问题
在搜索引擎中关于文本挖掘的典型问题
—怎样得到一篇文章的关键词、主题?
—怎样用计算机可识别的数学公式来表征一篇文档
—怎样处理查询关键词与文档的相似度
—怎样度量两篇文档的相似度?
10
信息检索模型
信息检索模型( Information Retrieval
Model )是指如何对查询和文档进行表示,然
后对它们进行相似度计算的框架和方法。
信息检索模型本质上是对相关度建模。
11
信息检索模型
信息检索模型
信息检索模型可以表示为一个四元组的模型框架
IR = <D, Q, R(q,d)>
D 是文档表示, Q 是查询表示, R(q , d ) 是一个
排序函数
索引词 (Index Term)
索引词是能代表文档内...
信息检索模型的分类
从所使用的数学方法上分:
基于集合论的 IR 模型 (Set Theoretic models)
布尔模型
基于模糊集的模型、扩展布尔模型
基于代数论的 IR 模型 (Algebraic models)
向量空间模型
L...
布尔模型( Boolean Model )
布尔模型建立在经典的集合论和布尔代数的基础
上
在布尔模型中查询和文档均表示为索引词 (“ 是否
存在” ) 的布尔表达式,通常表示成 D(t 1 , t 2 ,
⋯ , t i) 的形式。
布...
布尔模型的优缺点
优点:
—简单、易理解、易实现
—现代很多搜索引擎中仍然包含布尔模型的思想,如 Google 的高
级检索
缺点
—只能严格匹配,文献要么相关、要么不相关,并没有一个相关级
别的概念,因此很难有好的检索效果
—构造布尔逻辑...
概率模型
16
概率模型优缺点
优点
—采用严格的数学理论为依据,为人们提供了一种数学
理论基础来进行检索决策; PubMed 的 related
articles 。
—采用相关反馈原理
—在其中没有使用用户难以运用的布尔逻辑方法;
—在操作过程中使用了词...
词频( TF )、文件频率
( DF )
假如要搜索一个词语 ti 在文件集合 {d1 ,d2
,...,dn } 出现的频率,则有两部分的重要信息:
ti 在某篇文档 dj 中出现的次数,称为此词语在
此篇文档的频率(词频): TF(Te...
TF(Term Frequency):
19
IDF(inverse document frequency)
20
TF-IDF
把 TF(Term Frequency) 、 IDF(inverse
document frequency) 这两项结合起来,对单
词 t 和文档 d ,定义
TF-IDF(t,d) = TF(t,d) * IDF(t)
TF...
TF-IDF 的例子
摘自: http://bit.ly/cbDyIK
22
向量空间模型 VSM ( Vector Space
Model )
VSM 的基本思路:用向量模型来标识一篇文档或一个
查询?
把文档看作一系列索引词 (Inex Term) 组成,每一个
词都有一个权重 (Term weight) ,不同...
文档 - 索引词词矩阵 (Doc-Term
Matrix)
n 篇文档, m 个索引词词构成的矩阵 Am*n ,每
列可以看成每篇文档的向量表示,同时,
每行也可以可以看成标引词的向量表示
24
向量表示
25
相似度计算
文档和查询条件之间的相关程度 ( 即相似度 ) 可
由它们各自向量在向量空问中的相对位置来决定。
相似度计算函数有很多种,较常用的是两个向量
夹角的余弦函数。
文档和查询条件的相似度值由以下公式获得:
dj
q
Θ
26
向量相似度算法
余弦相似性( cosine-based similarity )
相关相似性( Pearson 相关系数 )
修正的余弦相似性( adjusted-cosine
similarity )
2 2
( )( )
( , )
...
文档相似性
其中:
—Di 为文档 i
—Wij 是第 i 个特征项在第 j 个文档向量中的权值
28
Vector Space Model
29
向量空间模型例子
30
摘自: http://bit.ly/cbDyIK
Inverted Files
Inverted Files
Word-Level Inverted File
In Lucene, a TermFreqVector is a representation of
all of the terms and term counts in a specific Field
of a Document ins...
Lucene Term Vectors (TV)
Field.TermVector.NO: 不保存 term vectors
Field.TermVector.YES: 保存 term vectors
Field.TermVector.W...
Lucene Scoring 评分机制
36
Lucene Scoring 评分机制
 参考 org.apache.lucene.search.Similarity
http://lucene.apache.org/java/3_0_2/scoring.html
http://bit.l...
Lucene Scoring 核心类图
38
Lucene MoreLikeThis
Lucene 的 contrib 包中提供了 MoreLikeThis 、
MoreLikeThisQuery 包,很容易实现“您可能也喜欢”的
功能
—org.apache.lucene.search...
Lucene 作为 Linkedin 的推荐
引擎
 参考: LinkedIn Signal - a look under the hood
40
01/31/15 41
分词:中文特征词 (Term) 的粒
度
Character ,字:中
Word ,词:中国
Phrase ,短语:中国人民银行
Concept ,概念
—同义词:开心 高兴 兴奋
—相关词 cluster , ...
分词:主要的分词方法
 最大匹配法( Maximum Matching method, MM 法):选取包含
6-8 个汉字的符号串作为最大符号串,把最大符号串与词典中的单词
条目相匹配,如果不能匹配,就削掉一个汉字继续匹配,直到在词
典中找...
43
分词:英文分词
 一般采用 keyword, 无需分词 , 单词之间有空格分开。
 stop words :指文档中出现的连词,介词,冠词等并无太大意义的词
。例如在英文中常用的停用词有 the , a, it 等;在中文中常见的有“...
搜索引擎的 Text Mining 价值
搜索引擎本身对文本的 Vector Space Model 、 TF-
IDF 、 Scroing 、 Similarity 等较好的支持
如果能够将协同行为(标签、收藏、购买、打分等)也
转化为 ...
议题
搜索引擎文本挖掘基础
文本挖掘基础
45
文本挖掘能做些什么
 基于内容的推荐系统( Content-Based )
 新闻自动聚合
 互联网舆情、非法内容发布
 垃圾邮件的过滤
 企业竞争情报系统
 知识库
 自动问答
 机器翻译
 …… 46
文本挖掘模型结构示意图
47
Text Mining 相关技术
48
机器学 数理 自然 言 理 数据 技习 统计 语 处 库 术
文本分类 文本聚类 文本数据 理处 文本数据压缩
信息访问
(信息 索、信息 、检 浏览
信息 、信息 告 )过滤 报
知识发现
(数据分析、...
文本挖掘的关键技术
文本结构分析
文本摘要
文本分类
文本聚类
文本关联分析
分布分析
趋势预测
49
一些 Text Mining 相关的开源项
目
数据挖掘相关: Weka、 R-Project、 Knime、
RapidMiner、 Orange 等
文本挖掘相关: OpenNLP、 LingPipe、
FreeLing、 GATE 、...
参考资料
miislita.com 系列文章(很棒的网站,强烈推荐)
—http://bit.ly/cBOfAy
—http://bit.ly/c1juhi
—http://bit.ly/cbDyIK
—http://bit.ly/cgU0z...
52
提宝 意 !请 贵 见
Upcoming SlideShare
Loading in...5
×

文本挖掘(Text mining)基础

11,378

Published on

以搜索引擎中相关的文本挖掘技术为基础,讲解了Text Mining相关技术

Published in: Technology, News & Politics
1 Comment
16 Likes
Statistics
Notes
No Downloads
Views
Total Views
11,378
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
328
Comments
1
Likes
16
Embeds 0
No embeds

No notes for slide
  • Term Vectors were officially added in the 1.4
    Look at TermFreqVector interface definition
    The getTerms() and getTermFrequencies() are parallel arrays, that is getTerms()[i] has a document frequency of getTermFrequencies()[i]
  • Transcript of "文本挖掘(Text mining)基础"

    1. 1. 1 文本 掘(挖 Text Mining )技 基术 础 出家如初 , 成佛有余 http://www.yeeach.com 2010 年 10 月
    2. 2. 议题 搜索引擎文本挖掘基础 文本挖掘基础 2
    3. 3. 搜索引擎技术不单纯只是搜索 搜索引擎技术除了实现 Web 搜索、图片搜索外 ,还能够干什么? 搜索引擎核心技术有哪些? —网络爬虫 —中英文分词 —排序算法 —Text Mining 相关 —海量数据存储 —分布式计算 —等等 3
    4. 4. Google 的十大核心技术 Google 的十大核心技术: —分布式基础设施: GFS 、 Chubby 、 Protocol Buffer —分布式大规模数据处理 MapReduce 、 Sawzall —分布式数据库技术: BigTable 、 Sharding —数据中心优化技术 数据中心高温化、 12V 电池、服务器整合 参考:探索Google App Engine背后的奥秘 4
    5. 5. 搜索引擎技术使用场景:内容相似度 新闻站点的“您可能也喜欢” —本质为:两篇文档 / 图书 / 商品内容的相似度 5
    6. 6. 搜索引擎技术使用场景:内容分类、聚 类 6
    7. 7. 7 通用搜索引擎系统流程
    8. 8. Lucene 系统架构 8
    9. 9. Lucene 系统架构 9
    10. 10. 搜索引擎中文本挖掘典型问题 在搜索引擎中关于文本挖掘的典型问题 —怎样得到一篇文章的关键词、主题? —怎样用计算机可识别的数学公式来表征一篇文档 —怎样处理查询关键词与文档的相似度 —怎样度量两篇文档的相似度? 10
    11. 11. 信息检索模型 信息检索模型( Information Retrieval Model )是指如何对查询和文档进行表示,然 后对它们进行相似度计算的框架和方法。 信息检索模型本质上是对相关度建模。 11
    12. 12. 信息检索模型 信息检索模型 信息检索模型可以表示为一个四元组的模型框架 IR = <D, Q, R(q,d)> D 是文档表示, Q 是查询表示, R(q , d ) 是一个 排序函数 索引词 (Index Term) 索引词是能代表文档内容的特征,可以是字、词、短语 或者某种语义单元,关键词 (key words) 可以看成索引 词的一种。 文档表示成多个索引词的集合 索引词的权重 (Weight) 不同索引词作用是不同的,通过权重加以区分 12
    13. 13. 信息检索模型的分类 从所使用的数学方法上分: 基于集合论的 IR 模型 (Set Theoretic models) 布尔模型 基于模糊集的模型、扩展布尔模型 基于代数论的 IR 模型 (Algebraic models) 向量空间模型 LSI (隐性语义检索)模型 神经网络模型 基于概率统计的 IR 模型 (Probabilistic models) 概率模型 回归模型、语言模型建模 IR 模型、推理网络模型、信任度网络 模型 13
    14. 14. 布尔模型( Boolean Model ) 布尔模型建立在经典的集合论和布尔代数的基础 上 在布尔模型中查询和文档均表示为索引词 (“ 是否 存在” ) 的布尔表达式,通常表示成 D(t 1 , t 2 , ⋯ , t i) 的形式。 布尔操作 ( 关系 ) : 与 (AND) 或 (OR) 非 (NOT) 相似度计算:查询布尔表达式和所有文档的布尔 表达式进行匹配,匹配成功的文档的得分为 1 , 否则为 0 。 14
    15. 15. 布尔模型的优缺点 优点: —简单、易理解、易实现 —现代很多搜索引擎中仍然包含布尔模型的思想,如 Google 的高 级检索 缺点 —只能严格匹配,文献要么相关、要么不相关,并没有一个相关级 别的概念,因此很难有好的检索效果 —构造布尔逻辑式不容易,对于一般用户而言,很难用 AND 、 OR 、 NOT 运算符的结合来准确地表达一个检索语句, 标引词的简单组配不能完全反映用户的实际需要; —检索输出完全依赖于布尔提问与文献的匹配情况,很难控制输出 量的大小 —结果不能按用户定义的重要性排序输出,用户只能从头到尾浏览 输出结果才能知道哪些文献更适合自己的需要 15
    16. 16. 概率模型 16
    17. 17. 概率模型优缺点 优点 —采用严格的数学理论为依据,为人们提供了一种数学 理论基础来进行检索决策; PubMed 的 related articles 。 —采用相关反馈原理 —在其中没有使用用户难以运用的布尔逻辑方法; —在操作过程中使用了词的依赖性和相互关系。 缺点: —计算复杂度大 , 不适合大型网络 —参数估计难度较大 —条件概率值难估计 —系统的检索性能提高不明显,需与其他检索模型结合 17
    18. 18. 词频( TF )、文件频率 ( DF ) 假如要搜索一个词语 ti 在文件集合 {d1 ,d2 ,...,dn } 出现的频率,则有两部分的重要信息: ti 在某篇文档 dj 中出现的次数,称为此词语在 此篇文档的频率(词频): TF(Term Frequency) 文档集合 {d1 ,d2 ,...,dn } 中包含 ti 的文档个数, 称为此词语在文档集合 {d1 ,d2 ,...,dn } 的文件频 率: DF ( Document Frequency ) 18
    19. 19. TF(Term Frequency): 19
    20. 20. IDF(inverse document frequency) 20
    21. 21. TF-IDF 把 TF(Term Frequency) 、 IDF(inverse document frequency) 这两项结合起来,对单 词 t 和文档 d ,定义 TF-IDF(t,d) = TF(t,d) * IDF(t) TF-IDF 的作用: —某一特定文件内的高词语频率,以及该词语在整个 文件集合中的低文件频率,可以产生出高权重的 TF-IDF 。 —因此, TF-IDF 倾向於过滤掉常见的词语,保留重 要的词语。 21
    22. 22. TF-IDF 的例子 摘自: http://bit.ly/cbDyIK 22
    23. 23. 向量空间模型 VSM ( Vector Space Model ) VSM 的基本思路:用向量模型来标识一篇文档或一个 查询? 把文档看作一系列索引词 (Inex Term) 组成,每一个 词都有一个权重 (Term weight) ,不同的索引词根据 自己在文档中的权重来影响文档相关性的打分计算。 在向量空间模型中可以把所有此文档中词 (term) 的权 重 (term weight) 看作一个向量,并以此权重向量来 表征文档。查询和文档都可转化成索引词及其权重组成 的向量 23
    24. 24. 文档 - 索引词词矩阵 (Doc-Term Matrix) n 篇文档, m 个索引词词构成的矩阵 Am*n ,每 列可以看成每篇文档的向量表示,同时, 每行也可以可以看成标引词的向量表示 24
    25. 25. 向量表示 25
    26. 26. 相似度计算 文档和查询条件之间的相关程度 ( 即相似度 ) 可 由它们各自向量在向量空问中的相对位置来决定。 相似度计算函数有很多种,较常用的是两个向量 夹角的余弦函数。 文档和查询条件的相似度值由以下公式获得: dj q Θ 26
    27. 27. 向量相似度算法 余弦相似性( cosine-based similarity ) 相关相似性( Pearson 相关系数 ) 修正的余弦相似性( adjusted-cosine similarity ) 2 2 ( )( ) ( , ) ( ) ( ) uv uv uv ui i ui ii I ui i vi ii I i I R R R R sim u v R R R R ∈ ∈ ∈ − − = − − ∑ ∑ ∑ 2 2 ( )( ) ( , ) ( ) ( ) uv uv uv ui u ui vi I ui u vi vi I i I R R R R sim u v R R R R ∈ ∈ ∈ − − = − − ∑ ∑ ∑ 1 2 2 1 1 ( , ) cos( , ) n ui vi i n n ui vi i i R R u v sim u v u v u v R R = = = = = = × ∑ ∑ ∑ r r r r g uur ur 27
    28. 28. 文档相似性 其中: —Di 为文档 i —Wij 是第 i 个特征项在第 j 个文档向量中的权值 28
    29. 29. Vector Space Model 29
    30. 30. 向量空间模型例子 30 摘自: http://bit.ly/cbDyIK
    31. 31. Inverted Files
    32. 32. Inverted Files
    33. 33. Word-Level Inverted File
    34. 34. In Lucene, a TermFreqVector is a representation of all of the terms and term counts in a specific Field of a Document instance As a tuple: termFreq = <term, term countD> <fieldName, <…,termFreqi, termFreqi+1,…>> As Java: public String getField(); public String[] getTerms(); public int[] getTermFrequencies(); Lucene Term Vectors (TV) Parallel Arrays
    35. 35. Lucene Term Vectors (TV) Field.TermVector.NO: 不保存 term vectors Field.TermVector.YES: 保存 term vectors Field.TermVector.WITH_POSITIONS: 保存 term vectors.( 保存值和 token 位置信息 ) Field.TermVector.WITH_OFFSETS: 保存 term vectors.( 保存值和 Token 的 offset) Field.TermVector.WITH_POSITIONS_OFFSETS: 保 存 term vectors.( 保存值和 token 位置信息和 Token 的 offset) 35
    36. 36. Lucene Scoring 评分机制 36
    37. 37. Lucene Scoring 评分机制  参考 org.apache.lucene.search.Similarity http://lucene.apache.org/java/3_0_2/scoring.html http://bit.ly/bq7xNh 37
    38. 38. Lucene Scoring 核心类图 38
    39. 39. Lucene MoreLikeThis Lucene 的 contrib 包中提供了 MoreLikeThis 、 MoreLikeThisQuery 包,很容易实现“您可能也喜欢”的 功能 —org.apache.lucene.search.similar.MoreLikeThis —org.apache.lucene.search.similar.MoreLikeThisQuery  参考: http://bit.ly/dpUQAP String indexDir = "d:/index"; FSDirectory directory = FSDirectory.open(new File(indexDir)); IndexReader reader = IndexReader.open(directory); IndexSearcher searcher = new IndexSearcher(reader); int numDocs = reader.maxDoc(); MoreLikeThis mlt = new MoreLikeThis(reader); // #A mlt.setFieldNames(new String[] {"title", "author"}); mlt.setMinTermFreq(1); // #B mlt.setMinDocFreq(1) 39
    40. 40. Lucene 作为 Linkedin 的推荐 引擎  参考: LinkedIn Signal - a look under the hood 40
    41. 41. 01/31/15 41 分词:中文特征词 (Term) 的粒 度 Character ,字:中 Word ,词:中国 Phrase ,短语:中国人民银行 Concept ,概念 —同义词:开心 高兴 兴奋 —相关词 cluster , word cluster :葛非 / 顾俊 N-gram , N 元组:中国 国人 人民 民银 银 行 某种规律性模式:比如某个 window 中出现 的固定模式
    42. 42. 分词:主要的分词方法  最大匹配法( Maximum Matching method, MM 法):选取包含 6-8 个汉字的符号串作为最大符号串,把最大符号串与词典中的单词 条目相匹配,如果不能匹配,就削掉一个汉字继续匹配,直到在词 典中找到相应的单词为止。匹配的方向是从右向左。  逆向最大匹配法( Reverse Maximum method, RMM 法):匹配 方向与 MM 法相反,是从左向右。实验表明:对于汉语来说,逆向 最大匹配法比最大匹配法更有效。  双向匹配法( Bi-direction Matching method, BM 法):比较 MM 法与 RMM 法的分词结果,从而决定正确的分词。  最佳匹配法( Optimum Matching method, OM 法):将词典中的 单词按它们在文本中的出现频度的大小排列,高频度的单词排在前 ,频度低的单词排在后,从而提高匹配的速度。  联想 - 回溯法( Association-Backtracking method, AB 法):采 用联想和回溯的机制来进行匹配。 42
    43. 43. 43 分词:英文分词  一般采用 keyword, 无需分词 , 单词之间有空格分开。  stop words :指文档中出现的连词,介词,冠词等并无太大意义的词 。例如在英文中常用的停用词有 the , a, it 等;在中文中常见的有“ 是”,“的”,“地”等。  索引词(标引词,关键祠) : 可以用于指代文档内容的预选词语 , 一 般为名词或名词词组。  词根提取 —Stemming :将单词“缩减”为词根形式。在算法上 Stemming 主要是采取某种固定的算法来做这种缩减,如去除“ s” ,去 除“ ing” 加“ e” ,将“ ational” 变为“ ate” ,将 “ tional” 变 为“ tion” 例如: cars=>car,countries => country , interesting => interest —Lemmatization :将单词“转变”为词根形式。在算法上 Lemmatization 主要是采用保存某种字典的方式做这种转变, 例如: 例如: drove=>drive, car=>automobile , ps- 2=>PS/2
    44. 44. 搜索引擎的 Text Mining 价值 搜索引擎本身对文本的 Vector Space Model 、 TF- IDF 、 Scroing 、 Similarity 等较好的支持 如果能够将协同行为(标签、收藏、购买、打分等)也 转化为 Vector Space Model ,则也可以利用搜索引擎 来实现推荐引擎 搜索引擎技术中最为有趣的不是搜索本身,而是 Text Mining 因此搜索引擎不单纯只是用于“搜索”的引擎,还可以可以 作为 —Text Mining —基于内容( Content-Based )的推荐引擎 —新闻自动聚合 —... 44
    45. 45. 议题 搜索引擎文本挖掘基础 文本挖掘基础 45
    46. 46. 文本挖掘能做些什么  基于内容的推荐系统( Content-Based )  新闻自动聚合  互联网舆情、非法内容发布  垃圾邮件的过滤  企业竞争情报系统  知识库  自动问答  机器翻译  …… 46
    47. 47. 文本挖掘模型结构示意图 47
    48. 48. Text Mining 相关技术 48 机器学 数理 自然 言 理 数据 技习 统计 语 处 库 术 文本分类 文本聚类 文本数据 理处 文本数据压缩 信息访问 (信息 索、信息 、检 浏览 信息 、信息 告 )过滤 报 知识发现 (数据分析、数据 )预测 文本信息提取
    49. 49. 文本挖掘的关键技术 文本结构分析 文本摘要 文本分类 文本聚类 文本关联分析 分布分析 趋势预测 49
    50. 50. 一些 Text Mining 相关的开源项 目 数据挖掘相关: Weka、 R-Project、 Knime、 RapidMiner、 Orange 等 文本挖掘相关: OpenNLP、 LingPipe、 FreeLing、 GATE 、 Carrot2 等,具体可以参 考 LingPipe’s Competition 推荐引擎相关: Apache Mahout 、 Duine framework 、 Singular Value Decomposition (SVD) 搜索引擎相关: Lucene 、 Solr 、 Sphinx 、 Hibernate Search 等 50
    51. 51. 参考资料 miislita.com 系列文章(很棒的网站,强烈推荐) —http://bit.ly/cBOfAy —http://bit.ly/c1juhi —http://bit.ly/cbDyIK —http://bit.ly/cgU0zE 数学之美系列 —http://bit.ly/aVOsSd 北大《文本挖掘技术》课程 —http://bit.ly/9MaJ2J LingPipe 总结的各种 Text Mining 工具 —http://bit.ly/bSjEmR 51
    52. 52. 52 提宝 意 !请 贵 见
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×