赞
踩
(课从Solen Quiniou)
一、介绍
目的:鉴定文本中重要元素,并建立内部表示。
问题:
1.文本中元素以什么为单位。
2.怎么定义他们的重要性。
3.如何用内部表示优化搜索。
二、文本预处理
1.分词(tokenization)
·将一序列字符分开为词(tokens)
·一般来说利用空格或者标点符号
·每个单词都可以同时进行其他语言处理
2.分词问题
·撇号,aujourd'hui
·横岗 bag-of-words
·空格 连词
·数字 09/09/1988
(根据不同语言,面临问题不同。)
3.同义词(normalisation)
·分词之后,需要归一化文本中的词组。个别个案或者不同的表示方式转换成同一表达
·为此,我们定义等价类(classes d’équivalence)
·有不同的方法定义等价类
4.音标,变音符号和案例
·音标和变音符号,大多数情况下可以删除
·所有字母转化成小写
5.变位(lemmatisation)
·重写成原词
·基于字典写成原词,需要一个基于语言的PoS tagging (étiqueteur morpho-syntaxique)
6.词干(Racinisation,en. stemming)
·依据语言,切去词尾。
·Porter词干提取的算法
-此算法多用于英语
-它使用公约和五个阶段的裁减(一套命令)。
-其他的算法如Krovetz算法,使用字典只切割字典内有的单词。
7.去除停用词(stop list)
·停用词不提供信息
·停用词表是对于文本而言而删除的词
·存在标准的停用词表 (SMART 囊括 571 个英语停用词)
·一般而言,删除同义词可以优化文本挖掘结果
三、文本表达
1.文本表达预处理
·基于预处理,文档可以用词袋表示(sac de mots , en. bag-of-words model):我们不考虑文本中的词序。
-一个terme 表示一个之前预处理后归一化的单词
-Jean est plus rapide que Marie 和 Marie est plus rapide que Jean 用一样的词袋。
·所以,我们可以用不同的poids(权重) 表示terme在文本中的重要程度。
2.term frequency
·文档d中的词语t的频率对应于文档中该词语的出现次数
tf(t,d)=freq(t,d)
·但仅仅频率是不够的,在许多文件中出现多次的词语没有在较少文档中出现次数少的词语那么有趣
·所以我们将在文件收集中按其频率来衡量词语的频率。
3.inverse document frequency
·出现有词语的文档比例
df (t) = Σ(t, d)
·所以我们定义 inverse document frequency
· inverse document frequency
4.tf-idf权重
·poids(t; d) = tf (t; d) * idf (t)
·tf-idf权重多用于查找信息和文本挖掘
·例子
Terme tf df idf tf :idf
voiture 10 2 0,7 7
vélo 5 2 0,7 3,5
véhicule 20 8 0,1 2
5.几种常见tf-idf 模式
·存在一些其他的模式计算词频
-tf (t; d) = log10(freq(t; d))
-tf (t; d) = log10(freq(t; d)) + 1
- tf (t; d) = log10(freq(t; d)) + 1
6.归一化权重
·为了考虑文件的大小,不要对较长的文件给予太大的重视,我们可以规定词语(terme)的权重
·归一化迫使归一化权重的所有值都在一个间隔内,通常在0和1之间。
四、表示一组文件
1.索引结果表示
·索引过程的方法中,每个文件用一组词组权重表示。
2.简单表示:索引矩阵
·1表示出现该词,0表示未出现
·缺点:如果矩阵中存在大量0,大量的储存空间被用作少量信息的索引。
3.倒排索引
·对于一组文本中每个词语(terme)t ,我们列出包含t的文档id的列表。
·字典(dictionaire)依赖于文档中一组词组
·词组的Posting 列表包括有词组的文档的id
4.建立倒排索引
1)Faire une première passe sur la collection pour collecter toutes les pairesterme-idDoc (identifiant de document) ;
-建立文本id
2)Ordonner les paires par rapport aux termes puis par rapport aux identifiants des documents ;
-对数据排序,先词组后文本id
3)Pour chaque terme, organiser les identifiants de documents en une liste chaînée et calculer des statistiques telles que les fréquences de termes (tf ) et de documents (idf ).
-对于每个词组,将文本id组成链表,计算诸如术语(tf)和文档(idf)的频率的统计信息
5.倒排索引的数据储存问题
·为了建立倒排索引,每次处理一份文档
-文档列表,对于每个词组,直到过程最后都是不完整的
-需要立即存储所有的结果在数据库中
-需要大量的数据贮存用于大量的文档
·一种减少数据存储的解决方法:Single-Pass In-Memory Indexing
-首先,将有数据贮存的文档切成块
-为每个块生成分开的字典
-为每个块生成一个倒排索引
-将分开的索引倒排合成成一个
6.打印倒排索引
·为了储存字典,需要记忆两个重要信息:文档频率和文档id列表
·我们可以将上述这对信息储存在一个表格中
7.将字典储存于一个哈希表中
·每个词组表利用哈希函数转换成一个整数
·优点:在哈希表查找比在熟查找更快
·缺点:1.无法查找前缀词,2.如果词汇表换了,需要重新计算哈希函数
8.将字典储存在树中
·可以解决前缀查找问题
·最简单的是二叉树
-均衡的二叉树可以更有效的查找
-平衡二叉树很困难(当我们添加词汇表时候)
·我们使用 B树
-每个B树的内部根在间隔的数据中有一个子叉
9.压缩倒排索引
·两个倒排索引的元素可以压缩:字典和文档id列表
10.压缩字典
·文档尺寸T(词组数量),预测词汇表M的尺寸:Loi de heap
-k 和b作为变量, 和
-词汇表的尺寸随着文档的增加而增加
-文档越大,词汇表越大
·可以用B树(B-arbres préfixe)合成词汇表
-只有树叶包含词组
-每个词组的多少不固定
11.压缩文档id列表
·文档id列表比词汇表更占空间
·压缩列表的目的为了压缩文档id
·记录文件之间的洞(?)可以作为一种解决方案
-每个列表依据id排序
-足够保存文档id之间的洞
-我们可以用编码后的变量作为储存的洞:
词组频率:洞越小,越少的bit用于编码洞
词组稀有度:洞越大,越多的bit用于编码洞
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。