Mapreduce实现大数据集共现矩阵问题

目录

相关知识简介

共现矩阵的应用

Mapreduce

解决思路

实现细节

代码详解

对于小文件的处理

对于大文件的处理

结果与分析


相关知识简介

共现矩阵的应用

共现矩阵是许多语言模型中常用的技术之一,其主要应用于主题发现和解决词向量之间的相近关系的表示。假设现在有语料:
“我爱吃西瓜”  和 “我喜欢吃西瓜”    分词得到  “我 爱  吃  西瓜”  、“我 喜欢 吃 西瓜”

如果使用传统的独热向量表示句子,将会丢失词与词之间的位置关系,tfidf算法表示也存在相同的问题。

一种常用的语言模型N-gram将每个句子中相邻的N个单词用一个编码表示,不再是以前的一个单词一个编码。其优点是考虑了词的位置顺序,实现的关键步骤是构建语料的共现矩阵。

此外,共现矩阵是提取文本关键词的关键步骤。构建语义相似度网络需要首先构建关键词共现矩阵。在上述的语料将窗口大小设置为2,求得语料的共现矩阵如下:

  喜欢 西瓜
0 1 0 0 1
喜欢 1 0 1 0 0
0 1 0 1 1
西瓜 0 0 1 0 0
1 0 1 0 0

那么对于“爱”和“喜欢”的行(列)作为词向量可求得的相似度最接近,其语义最接近。

Mapreduce

MapReduce核心思想:分而治之

MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)"和"Reduce(归约)",是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。

解决思路

共现矩阵的构建思路简单,在小数据集上可将矩阵放在内存中,但在大数据集环境下面临以下问题的制约:

  • 单词共现矩阵构建的空间开销大,为O(n^2)
  • 实际上,web-scale的文档的词汇量可能有数十万,甚至

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值