文本数据处理

1. TF-IDF

  TF-IDF是一种统计方法,用以评估一个词对一篇文章或语料库中一篇文章的重要性。字词的重要性随着它在文中出现的次数成正比,但同时会随着它在语料库中出现的频率成反比下降。

2. TF-IDF使用场景

  TF-IDF加权的各种形式常被用搜索引擎应用,作为文件与用户查询之间相关程度的度量或评级。

3. 原理

  TF(Term Frequency)表示词频,即一个词在一篇文章中出现的次数,但在实际应用中会有一个漏洞,就是篇幅长的文章给定词出现的次数会更多一点,所以需要对次数进行归一化,通常用给定词的次数除以文章的总词数。

  

其中为文章的总词数。

  IDF(Inverse Document Frenquency)表示逆文本频率指数,如果包含关键词的文档越少,则说明关键词具有很好的区分能力。某一关键词的IDF,可以用总的文章数量除以包含该关键词的文章的数量,然后对结果取对数得到

其中为语料库文章的总数,为包含关键词w的文章数量+1。

4. TF-IDF不足

  TF-IDF算法是建立在这样一个假设之上的:对区别文档最有意义的词语应该是那些在文档中出现频率高,而在整个文档集合的其他文档中出现频率少的词语,所以如果特征空间坐标系取TF词频作为测度,就可以体现同类文本的特点。另外考虑到单词区别不同类别的能力,TF-IDF法认为一个单词出现的文本频数(即包含某个单词的文本数)越小,它区别不同类别文本的能力就越大。因此引入了逆文本频度IDF的概念,以TF和IDF的乘积作为特征空间坐标系的取值测度,并用它完成对权值TF的调整,调整权值的目的在于突出重要单词,抑制次要单词。但是在本质上IDF是一种试图抑制噪声的加权,并且单纯地认为文本频率小的单词就越重要,文本频率大的单词就越无用,显然这并不是完全正确的。IDF的简单结构并不能有效地反映单词的重要程度和特征词的分布情况,使其无法很好地完成对权值调整的功能,所以TF-IDF法的精度并不是很高。

  此外,在TFIDF算法中并没有体现出单词的位置信息,对于Web文档而言,权重的计算方法应该体现出HTML的结构特征。特征词在不同的标记符中对文章内容的反映程度不同,其权重的计算方法也应不同。因此应该对于处于网页不同位置的特征词分别赋予不同的系数,然后乘以特征词的词频,以提高文本表示的效果。

5. 参考文献

  https://www.cnblogs.com/KeepInUp/p/10098703.html

  https://www.jianshu.com/p/0d7b5c226f39

原文地址:https://www.cnblogs.com/LuckPsyduck/p/12129138.html

时间: 2024-11-02 02:55:50

文本数据处理的相关文章

文本数据处理(自然语言处理基础)

文本数据的特征提取,中文分词及词袋模型 1.使用CountVectorizer对文本进行特征提取 #导入量化工具CountVectorizer工具 from sklearn.feature_extraction.text import CountVectorizer vect = CountVectorizer() #使用CountVectorizer拟合文本数据 en = ['The quick brown fox jumps over a lazy dog'] vect.fit(en) #打

大文件文本数据处理

1.切割与合并 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> char *path = "Z:\\I\\尹成清华终极版C语言视频源码文档20150131\\大数据相关数据\\dangdangwang.txt"; char *newpath = "Z:\\I\\尹成清华终极版C语言视频源码文档20150131\\大数据相关数据\\dangdangwangN.t

R语言-文本挖掘 主题模型 文本分类

####需要先安装几个R包,如果有这些包,可省略安装包的步骤.#install.packages("Rwordseg")#install.packages("tm");#install.packages("wordcloud");#install.packages("topicmodels") 例子中所用数据 数据来源于sougou实验室数据. 数据网址:http://download.labs.sogou.com/dl/so

Python 网页爬虫 &amp; 文本处理 &amp; 科学计算 &amp; 机器学习 &amp; 数据挖掘兵器谱(转)

原文:http://www.52nlp.cn/python-网页爬虫-文本处理-科学计算-机器学习-数据挖掘 曾经因为NLTK的缘故开始学习Python,之后渐渐成为我工作中的第一辅助脚本语言,虽然开发语言是C/C++,但平时的很多文本数据处理任务都交给了Python.离开腾讯创业后,第一个作品课程图谱也是选择了Python系的Flask框架,渐渐的将自己的绝大部分工作交给了Python.这些年来,接触和使用了很多Python工具包,特别是在文本处理,科学计算,机器学习和数据挖掘领域,有很多很多

【Python】Python 网页爬虫 &amp; 文本处理 &amp; 科学计算 &amp; 机器学习 &amp; 数据挖掘兵器谱

好文 mark http://www.52nlp.cn/python-%E7%BD%91%E9%A1%B5%E7%88%AC%E8%99%AB-%E6%96%87%E6%9C%AC%E5%A4%84%E7%90%86-%E7%A7%91%E5%AD%A6%E8%AE%A1%E7%AE%97-%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0-%E6%95%B0%E6%8D%AE%E6%8C%96%E6%8E%98 曾经因为NLTK的缘故开始学习Python,之后渐渐成为我工

『TensotFlow』基础RNN网络回归问题

两个tensorflow收获 lstm_cell.zero_state()节点虽然不是占位符但是可以feed,如果不feed每个batch训练tf都会重新初始化一遍,篇尾会详细讨论这个发现. tf.contrib.legacy_seq2seq.sequence_loss_by_example()的使用 任务简介 如下图所示,此次的目标是使用蓝色的虚线作为输入,拟合红色的实线输出: 这和文本预测不一样,也和一般的预测型任务很不一样,正常都是使用同一条线,使用前面的作为输入去拟合后面的输出. 不过正

Python兵器谱

转载自:http://www.52nlp.cn/python-网页爬虫-文本处理-科学计算-机器学习-数据挖掘 曾经因为NLTK的缘故开始学习Python,之后渐渐成为我工作中的第一辅助脚本语言,虽然开发语言是C/C++,但平时的很多文本数据处理任务都交给了Python.离开腾讯创业后,第一个作品课程图谱也是选择了Python系的Flask框架,渐渐的将自己的绝大部分工作交给了Python.这些年来,接触和使用了很多Python工具包,特别是在文本处理,科学计算,机器学习和数据挖掘领域,有很多很

推荐一本算法入门书籍

推荐一本很好的算法入门书籍: <算法设计与分析基础>(第2版),(美) Anany Levitin 著, 潘彦译. 除了 < Thinking in Java >,这是我另外一本读过了三分之二内容还希望不断翻阅的书籍.这本书写得很不错,可以感受到作者是尽力去贴近读者,讲解清晰易懂,涉及比较全面,而且有不少在其它算法书籍中从不曾讲到的东西(比如算法问题求解基础,大量引人思考的谜题). 总体来说,可读性很强,趣味性强,实用性尚可,在理论性和实用化之间进行了很好的平衡和折衷,有很好的启发

在Hadoop中重写FileInputFormat类以处理二进制格式存储的整数

最近开始使用MapReduce,发现网上大部分例子都是对文本数据进行处理的,也就是说在读取输入数据时直接使用默认的TextInputFormat进行处理即可.对于文本数据处理,这个类还是能满足一部分应用场景.但是如果要处理以二进制形式结构化记录存储的文件时,这些类就不再适合了. 本文以一个简单的应用场景为例:对按照二进制格式存储的整数做频数统计.当然,也可以在此基础上实现排序之类的其他应用.实现该应用的主要难点就是如何处理输入数据.参考<权威指南·第三版>得知需要继承FileInputForm