Spark分析Amazon DataSet(实现Spark TF-IDF)

准备工作

本例使用Home and Kitchen数据集,附上下载链接.
数据集有reviews_Home_and_Kitchen_5.json.gz和ratings_Tools_and_Home_Improvement.csv两个文件。
前者是json文件,内容如下:

{
   "reviewerID": "APYOBQE6M18AA", "asin": "0615391206", 
"reviewerName": "Martin Schwartz", "helpful": [0, 0], 
"reviewText": "My daughter wanted this book and the price on Amazon was the best.  She has already tried one recipe a day after receiving the book.  She seems happy with it.", 
"overall": 5.0, "summary": "Best Price", "unixReviewTime": 1382140800, 
"reviewTime": "10 19, 2013"}
...

后者是csv文件,内容如下:

A15I9QV4OG22A6,001212835X,5.0,1389657600
A1BNZ90HN39TYR,0205062040,5.0,1373846400
A9DUCBTL8K3E4,0205062040,5.0,1382659200
AA8O583KRYINX,0205062040,5.0,1372723200
...

四项分别是reviewerID、asin、overall和unixReviewTime,具体含义就是用户、商品编号、评分和时间戳。


TFIDF

TF-IDF是评估一个词在一个文档集或语料库中重要程度的统计方法。
TF(Term Frequency)词频,表示某个词在某个文档中出现的频数。一个词在这个文档中出现的次数多,可能说明这个词比较重要。一般来说,会对词频进行归一化,防止它偏向比较长的文件。带标准化的词频计算方式为:
T F = 某 个 词 在 某 个 具 体 文 档 中 出 现 的 次 数 文 档 的 总 词 数 TF = \frac{某个词在某个具体文档中出现的次数}{文档的总词数} TF=

IDF(inverse document frequency)逆文档频率是一个词语重要性的度量。如果一个词在多篇文档中词频较低,则表示这个词比较少见,对比较少见的词赋予比较大的“权重”,因此IDF值比较大;反之越常见的词IDF值越小。IDF的具体计算方式为:
I D F = log ⁡ 语 料 库 的 文 档 总 数 包 含 该 词 的 文 档 数 + 1 IDF = \log\frac{语料库的文档总数}{包含该词的文档数+1} IDF=log+1

分别计算出TF和IDF后,我们就可以就算TD-IDF:
T F − I D F = T F ∗ I D F TF-IDF = TF*IDF

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值