目录
相关知识简介
共现矩阵的应用
共现矩阵是许多语言模型中常用的技术之一,其主要应用于主题发现和解决词向量之间的相近关系的表示。假设现在有语料:
“我爱吃西瓜” 和 “我喜欢吃西瓜” 分词得到 “我 爱 吃 西瓜” 、“我 喜欢 吃 西瓜”如果使用传统的独热向量表示句子,将会丢失词与词之间的位置关系,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的文档的词汇量可能有数十万,甚至