文章:
频道id、关键词、主题词
实现工具:
- spark Tfidf 计算
- spark TextRank 计算
离线文章画像组成需求
文章画像,就是给每篇文章定义一些词。主题词和关键词最大的区别就是主题词经过了规范化处理。
说明
- 关键词:文章中的一些词权重高的。
- 主题词:是进行规范化处理的,文章中出现的同义词,计算结果出现次数高的词
方法
- 关键词:TextRank计算出的结果TOPK个词以及权重
- 主题词:TextRank的TOPK词与TFIDF计算的TOPK个词的交集
步骤
- 原始文章表数据合并到文章所有的词 语句信息
文章标题+文章频道名称+文章内容=文章完整内容 - 所有历史文章Tfidf计算
- 所有历史文章的TextRank计算
文章画像
对文章进行计算画像
步骤
- 加载IDF,保留关键词及权重计算(TextRank*IDF)
- 合并关键词权重到字典结果
- 将tfidf和textrank共现的词作为主体词
- 将主题词表和关键词表进行合并
文章相似度Word2Vec
文章相似度
- 需求:相似文章快速推荐
- 方式
- 计算两两文章的Tfidf相似度
- 计算两两文章的word2vec或doc2vec向量相似度
我们采用第二种,实践中word2vec在大数据下达到的效果更好
Word2Vec
- 计算相似度:寻找相似词、或用于文章间的相似度
- 文本生成、机器翻译等
词向量
- 定义:将文字通过一串数字向量表示
- 词的独热表示
- 词的分布式表示(词向量)
- 低纬度实数向量
- 让相关的或相似的词,在距离上更接近
- 原理:
- 统计语音模型:把语音(词的序列)看作一个随机事件,并赋予相应的概率来描述其属于某种语音集合的可能性
文章词向量训练
- 目的:通过大量历史文章数据,训练词的词向量
文章向量保存
步骤
- 获得每个词向量
- 获得文章的关键词
- 计算获得文章每个词的向量
- 计算获得文章平均词向量即为文章向量
用户
内容的喜好程度
基础用户画像:
- 用户信息:年龄、性别、职业
- 文章喜欢:类别、主题
- 用户环境:设备、访问时间