假设有一份文本数据如下,数据量很大,现在要对整个语料库进行文本分析,category代表新闻种类,theme代表新闻主题,URL代表新闻链接地址,content代表新闻主题内容
停用词:在content这一列,在数据量很大的情况,很容易发现某些似乎与新闻本身意义不大的词大量出现,而我们就把这些在语料库中大量出现但是又没啥大用的词叫做停用词,在数据集链接中包含一份常见的停用词,如下所示:
TF-IDF:用于关键词提取。比如在一篇名叫《中国的蜜蜂养殖》这篇文章中进行词频(Term Frequency,缩写为TF)统计出现次数最多的词是“的”、“是”、“在”等这一类最常用的词(停用词,一般来说是要去掉的),在删除掉停用词过后我们发现“中国”、“蜜蜂”、“养殖”这三个词的出现次数一样多,那么这三个词的重要性是一样的吗?一般来说"中国"是很常见的词,相对而言,"蜜蜂"和"养殖"不那么常见。这时就需要引入一个叫做逆文档频率来进行衡量。"逆文档频率"(Inverse Document Frequency,缩写为IDF)如果某个词相比较于整个语料库来说比较少见,但是它在这篇文章中多次出现,那么它很可能就反映了这篇文章的特性,那它正是我们所需要的关键词。
计算公式
TF-IDF = 词频(TF) * 逆文档频率(IDF)。还是在《中国的蜜蜂养殖》这篇文章中:假定该文长度为1000个词,"中国"、"蜜蜂"、"养殖"各出现20次,则这三个词的"词频"(TF)都为0.02。搜索Google发现,包含"的"字的网页共有250亿张,假定这就是中文网页总数(也就是语料库)。包含"中国"的网页共有62.3亿张,包含"蜜蜂"的网页为0.484亿张,包含"养殖"的网页为0.973亿张。
可以看出蜜蜂和养殖的TF-IDF值比中国这个词大,那么这篇文章的关键词重要性依次为蜜蜂、养殖和中国。
文本相似度:假设有如下两个句子A、B,我们该怎么判断这两个句子的相似度呢
句子A:我喜欢看电视,不喜欢看电影。
句子B:我不喜欢看电视,也不喜欢看电影。
先进行分词来看一下。
句子A:我/喜欢/看/电视,不/喜欢/看/电影。
句子B:我/不/喜欢/看/电视,也/不/喜欢/看/电影。
可以得到整个语料库:我,喜欢,看,电视,电影,不,也。
然后进行词频的统计
句子A:我 1,喜欢 2,看 2,电视 1,电影 1,不 1,也 0。
句子B:我 1,喜欢 2,看 2,电视 1,电影 1,不 2,也 1。
这样就可以得出词频向量
句子A:[1, 2, 2, 1, 1, 1, 0]
句子B:[1, 2, 2, 1, 1, 2, 1]
相似度计算方法:最常用通过余弦进行计算
二、任务简介与数据预处理
现在我们手里一份新闻数据,数据里面包含新闻的内容以及新闻的种类等等,我们要做的就是对新闻进行一个分类任务,比如说汽车类时尚类等等。
数据集链接:https://pan.baidu.com/s/1fG_oagJT69bIgCZgasn_Ig 提取码:yzd0