46

在大规模数据集上应用潜在语义分析的三种方式

 5 years ago
source link: https://www.leiphone.com/news/201808/EJ60D23boMgMWJAz.html?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

雷锋网 (公众号:雷锋网) 按:本文为 AI 研习社编译的技术博客,原标题 3 Ways to Apply Latent Semantic Analysis on Large-Corpus Text on macOS Terminal, JupyterLab, and Colab,作者为 Dr. GP Pulipaka。

翻译 | 张知非 林佳    校对 | 余杭     整理 | MY

在大规模数据集上利用自然语言处理产生描述发现场景,潜在语义分析会发挥作用。这有很多种不同的方法能在多个层次上执行潜在语义分析,比如文本层次,短语层次和句子层次。最重要的是,语义分析能被概括进词汇语义学和连词成段或成句的研究中。词汇语义学能对词汇项进行分类和分解,利用词汇语义结构有不同内容的特点来区分词的异同。段或句中的一类术语是上位词,下位词提供了下位词实例间关系的含义。下位词在相似结构中有相似语法或相似拼写,但却有不同含义。下位词间无相互关系。「book」是一个简单的下位词,对于有些人而言,是阅读,或是有着相同拼写,形式或语法的预订行为,但含义却大相径庭。一词多义是另一种词法现象,它是指单个词能和多个相关联的理解或是截然不同的意思相联系,一词多义是希腊词汇,表示有很多种符号。Python 提供了 NLTK 库,通过将大段文字切成短语或有意义的字符串来实现抽象化文字。处理文字是通过抽象化的方式得到符号,词形还原是将文字从当前屈折的形式转变为基本形式。

B7RJ736.jpg!web

图一:词形还原的代码片段

UNFjMnV.jpg!web

图二:用 Python 对不同数据资源进行自然语言处理

潜在语义分析

在大规模数据集的文本文档上应用潜在语义分析,是将数学和统计计算方法用在大型文本语料库中。大多数情况下,潜在语义分析的效果赶超人类水平,而受制于人类主导的重要测试。潜在语义分析的精确度很高,是因为它在网络规模上通读了机器易读文档和文本。潜在语义分析是项应用在奇异值分解和主成分分析的技术(PCA)。文档能被表达成矩阵 A=Z×Y, 矩阵的行代表集合里的文档。矩阵 A 代表典型大规模语料库文本文档里大量成百上千的行列。应用奇异值分解提出了一系列成为矩阵分解的操作。Python 自然语言处理的 NLTK 包应用一些低秩逼近词频矩阵,而后,低秩逼近有助于索引和恢复文档,这些文档因聚类大量文字得到潜在语义索引而得名。

线性代数简述

矩阵 A=Z×Y 包含实数值,使用非负值作为词频矩阵。确定矩阵的秩伴随着矩阵中大量线性独立的行或列。矩阵 A≤{Z,Y} 的秩。平方式 c×c 代表了对角矩阵,也即非对角线上的值均为零。在测试矩阵时,如果所有的 c 对角矩阵为 1,那么,矩阵就是被 lc 表示 c 的维度的单位矩阵。对于 Z×Z 的平方矩阵,A 有不包含全部零的向量 k。矩阵分解适用于利用特征向量分解成矩阵乘积的方阵。这样可以降低词汇的维度,从高维到可视化呈现在图上的二维。利用主成分分析(PCA)和奇异值分解(SVD)的降维技术在自然语言处理上保持了较强的相关性。文档单词频率的 Zipfian 属性使得确定处于静态阶段词汇的相似度很难。所以,特征值分解是奇异值分解的一个副产品,因为文档的输入是高度不对称的。潜在语义分析是一种特殊技术,它在语义空间上对文档进行解析,并用 NLKT 库确定多义词。像类似 punkt 和 wordnet 的资源就必须从 NLTK 库中下载。

使用 Google Colab notebooks 进行大规模深度学习

NzEjAvf.jpg!web

图 3 采用多个 NVIDIA GPU 的深度学习堆栈

在 CPU 上训练机器学习或者深度学习模型可能需要数个小时之久,并且就编程效率而言,这样的代价对计算机资源的时间和能源来说可谓是相当昂贵的。出于研究和开发的目的,Google 建造了 Colab Notebook 环境。它完全在云上运行,无需为每台设备设置额外的硬件或者软件。它完全等同于 Jupyter notebook,它可以帮助数据科学家们通过存储在 Google Drive 云端硬盘上来分享 Colab notebooks,这就像是在协作环境下的一些 Google 表格或文档。Colab notebook 在程序运行中启用 GPU 以加速程序的运行时,没有其他的消耗。不像 Jupyter notebook 那样可以直接从机器的本地目录访问数据,将数据上传到 Colab 会有一些挑战。在 Colab 中,从本地文件系统中上传文件时会有多种文件来源选项,或者也可以安装一个驱动,如通过 Google 的 drive FUSE wrapper 去加载数据。

Nzi6Zvq.jpg!web

图 4 安装 Google 的 driver FUSE wrapper

完成完成此步骤后,它会显示如下日志并没有报错:

mm6veyI.jpg!web

图 5 macOS 上的安装显示的安装日志

下一步是生成身份验证令牌,用以验证 Google Drive 云端硬盘和 Colab 的 Google 凭据。

Fz2aAzY.jpg!web

图 6 验证凭据

如果显示成功获取访问令牌,则 Colab 会准备就绪。

QBJrYvZ.jpg!web

图 7 验证访问令牌

......

想要继续阅读,请移步至我们的AI研习社社区: https://club.leiphone.com/page/TextTranslation/870

更多精彩内容尽在 AI 研习社。

不同领域包括计算机视觉,语音语义,区块链,自动驾驶,数据挖掘,智能控制,编程语言等每日更新。

雷锋网雷锋网(公众号:雷锋网)

雷锋网原创文章,未经授权禁止转载。详情见 转载须知

7vQZj2Z.jpg!web

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK