原创文章,如需转载请保留出处
本博客为唐宇迪老师python数据分析与机器学习实战课程学习笔记
一. 文本分析与关键词提取
1.1 文本数据
1.2 停用词
- 语料中大量出现
- 没啥大用
- 留着过年吗
1.3 Tf-idf:关键词提取
- 《中国的蜜蜂养殖》:进行词频(Term frequency,缩写TF)统计
- 出现次数最多的词:“的”、“是”、“在”…这类最常用的词(停用词)
- “中国”、“蜜蜂”、“养殖” 这三个词出现的次数一样多,重要性是一样的?
- “中国”是很常见的词,相对而言,“蜜蜂”和“养殖”不那么常见
1.4 逆文档频率(Inverse Document Frequency,IDF)
- 如果某个词比较少见,但是它在这篇文章中多次出现,那么它很可能就反映了这篇文章的特性,正是我们所需要的关键词
- 词频(TF) = 某个词在文章中的出现次数 / 该文词的个数
- 逆文档频率(IDF) = log(语料库的文档总数 / 包括该词的文档数 + 1)
1.5 Tf-idf:关键词提取计算
TF-IDF = 词频(TF) * 逆文档频率(IDF)
- 《中国的蜜蜂养殖》:假定该文长度为1000个词,“中国”、“蜜蜂”、“养殖”各出现20次,则这三个词的“词频”(TF)都是0.02
- 搜索Google发现,包含“的”字的网页共有250亿张,假定这就是中文网页总数。包含“中国”的网页共有62.3亿张,包含“蜜蜂”的网页共有0.484亿张,包含“养殖”的网页共有0.973亿张
二. 相似度计算
2.1 相识度
句子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]
余弦相似度:
三. 新闻数据与任务简介
import pandas as pd
import numpy as np
#结吧分词
import jieba
df_news = pd.read_table('./data/val.txt',names=['category','theme','URL','content'],encoding='utf-8')
#dropna:去掉缺失值
df_news = df_news.dropna()
df_news.head()
df_news.shape
(5000, 4)
#分词:使用结吧分词器
#先将content转换成list格式
content = df_news.content.values.tolist()
print (content[1000])
阿里巴巴集团昨日宣布,将在集团管理层面设立首席数据官岗位(Chief Data Officer),阿里巴巴B2B公司CEO陆兆禧将会出任上述职务,向集团CEO马云直接汇报。>菹ぃ和6月初的首席风险官职务任命相同,首席数据官亦为阿里巴巴集团在完成与雅虎股权谈判,推进“one company”目标后,在集团决策层面新增的管理岗位。0⒗锛团昨日表示,“变成一家真正意义上的数据公司”已是战略共识。记者刘夏
#利用结吧分词
content_S = []
#line:代表content中每一条
for line in content:
current_segment = jieba.lcut(line)
#大于1:代表确实能切分
if len(current_segment) > 1 and current_segment != '\r\n':
content_S.append(current_segment)
content_S[1000]
['阿里巴巴',
'集团',
'昨日',
'宣布',
',',
'将',
'在',
'集团',
'管理',
'层面',
'设立',
'首席',
'数据',
'官',
'