1
本文作者: AI研習(xí)社-譯站 | 2018-08-23 10:34 |
雷鋒網(wǎng)按:本文為 AI 研習(xí)社編譯的技術(shù)博客,原標(biāo)題 3 Ways to Apply Latent Semantic Analysis on Large-Corpus Text on macOS Terminal, JupyterLab, and Colab,作者為 Dr. GP Pulipaka。
翻譯 | 張知非 林佳 校對(duì) | 余杭 整理 | MY
在大規(guī)模數(shù)據(jù)集上利用自然語(yǔ)言處理產(chǎn)生描述發(fā)現(xiàn)場(chǎng)景,潛在語(yǔ)義分析會(huì)發(fā)揮作用。這有很多種不同的方法能在多個(gè)層次上執(zhí)行潛在語(yǔ)義分析,比如文本層次,短語(yǔ)層次和句子層次。最重要的是,語(yǔ)義分析能被概括進(jìn)詞匯語(yǔ)義學(xué)和連詞成段或成句的研究中。詞匯語(yǔ)義學(xué)能對(duì)詞匯項(xiàng)進(jìn)行分類和分解,利用詞匯語(yǔ)義結(jié)構(gòu)有不同內(nèi)容的特點(diǎn)來(lái)區(qū)分詞的異同。段或句中的一類術(shù)語(yǔ)是上位詞,下位詞提供了下位詞實(shí)例間關(guān)系的含義。下位詞在相似結(jié)構(gòu)中有相似語(yǔ)法或相似拼寫(xiě),但卻有不同含義。下位詞間無(wú)相互關(guān)系?!竍ook」是一個(gè)簡(jiǎn)單的下位詞,對(duì)于有些人而言,是閱讀,或是有著相同拼寫(xiě),形式或語(yǔ)法的預(yù)訂行為,但含義卻大相徑庭。一詞多義是另一種詞法現(xiàn)象,它是指單個(gè)詞能和多個(gè)相關(guān)聯(lián)的理解或是截然不同的意思相聯(lián)系,一詞多義是希臘詞匯,表示有很多種符號(hào)。Python 提供了 NLTK 庫(kù),通過(guò)將大段文字切成短語(yǔ)或有意義的字符串來(lái)實(shí)現(xiàn)抽象化文字。處理文字是通過(guò)抽象化的方式得到符號(hào),詞形還原是將文字從當(dāng)前屈折的形式轉(zhuǎn)變?yōu)榛拘问健?/p>
圖一:詞形還原的代碼片段
圖二:用 Python 對(duì)不同數(shù)據(jù)資源進(jìn)行自然語(yǔ)言處理
潛在語(yǔ)義分析
在大規(guī)模數(shù)據(jù)集的文本文檔上應(yīng)用潛在語(yǔ)義分析,是將數(shù)學(xué)和統(tǒng)計(jì)計(jì)算方法用在大型文本語(yǔ)料庫(kù)中。大多數(shù)情況下,潛在語(yǔ)義分析的效果趕超人類水平,而受制于人類主導(dǎo)的重要測(cè)試。潛在語(yǔ)義分析的精確度很高,是因?yàn)樗诰W(wǎng)絡(luò)規(guī)模上通讀了機(jī)器易讀文檔和文本。潛在語(yǔ)義分析是項(xiàng)應(yīng)用在奇異值分解和主成分分析的技術(shù)(PCA)。文檔能被表達(dá)成矩陣 A=Z×Y, 矩陣的行代表集合里的文檔。矩陣 A 代表典型大規(guī)模語(yǔ)料庫(kù)文本文檔里大量成百上千的行列。應(yīng)用奇異值分解提出了一系列成為矩陣分解的操作。Python 自然語(yǔ)言處理的 NLTK 包應(yīng)用一些低秩逼近詞頻矩陣,而后,低秩逼近有助于索引和恢復(fù)文檔,這些文檔因聚類大量文字得到潛在語(yǔ)義索引而得名。
線性代數(shù)簡(jiǎn)述
矩陣 A=Z×Y 包含實(shí)數(shù)值,使用非負(fù)值作為詞頻矩陣。確定矩陣的秩伴隨著矩陣中大量線性獨(dú)立的行或列。矩陣 A≤{Z,Y} 的秩。平方式 c×c 代表了對(duì)角矩陣,也即非對(duì)角線上的值均為零。在測(cè)試矩陣時(shí),如果所有的 c 對(duì)角矩陣為 1,那么,矩陣就是被 lc 表示 c 的維度的單位矩陣。對(duì)于 Z×Z 的平方矩陣,A 有不包含全部零的向量 k。矩陣分解適用于利用特征向量分解成矩陣乘積的方陣。這樣可以降低詞匯的維度,從高維到可視化呈現(xiàn)在圖上的二維。利用主成分分析(PCA)和奇異值分解(SVD)的降維技術(shù)在自然語(yǔ)言處理上保持了較強(qiáng)的相關(guān)性。文檔單詞頻率的 Zipfian 屬性使得確定處于靜態(tài)階段詞匯的相似度很難。所以,特征值分解是奇異值分解的一個(gè)副產(chǎn)品,因?yàn)槲臋n的輸入是高度不對(duì)稱的。潛在語(yǔ)義分析是一種特殊技術(shù),它在語(yǔ)義空間上對(duì)文檔進(jìn)行解析,并用 NLKT 庫(kù)確定多義詞。像類似 punkt 和 wordnet 的資源就必須從 NLTK 庫(kù)中下載。
使用 Google Colab notebooks 進(jìn)行大規(guī)模深度學(xué)習(xí)
圖 3 采用多個(gè) NVIDIA GPU 的深度學(xué)習(xí)堆棧
在 CPU 上訓(xùn)練機(jī)器學(xué)習(xí)或者深度學(xué)習(xí)模型可能需要數(shù)個(gè)小時(shí)之久,并且就編程效率而言,這樣的代價(jià)對(duì)計(jì)算機(jī)資源的時(shí)間和能源來(lái)說(shuō)可謂是相當(dāng)昂貴的。出于研究和開(kāi)發(fā)的目的,Google 建造了 Colab Notebook 環(huán)境。它完全在云上運(yùn)行,無(wú)需為每臺(tái)設(shè)備設(shè)置額外的硬件或者軟件。它完全等同于 Jupyter notebook,它可以幫助數(shù)據(jù)科學(xué)家們通過(guò)存儲(chǔ)在 Google Drive 云端硬盤(pán)上來(lái)分享 Colab notebooks,這就像是在協(xié)作環(huán)境下的一些 Google 表格或文檔。Colab notebook 在程序運(yùn)行中啟用 GPU 以加速程序的運(yùn)行時(shí),沒(méi)有其他的消耗。不像 Jupyter notebook 那樣可以直接從機(jī)器的本地目錄訪問(wèn)數(shù)據(jù),將數(shù)據(jù)上傳到 Colab 會(huì)有一些挑戰(zhàn)。在 Colab 中,從本地文件系統(tǒng)中上傳文件時(shí)會(huì)有多種文件來(lái)源選項(xiàng),或者也可以安裝一個(gè)驅(qū)動(dòng),如通過(guò) Google 的 drive FUSE wrapper 去加載數(shù)據(jù)。
圖 4 安裝 Google 的 driver FUSE wrapper
完成完成此步驟后,它會(huì)顯示如下日志并沒(méi)有報(bào)錯(cuò):
圖 5 macOS 上的安裝顯示的安裝日志
下一步是生成身份驗(yàn)證令牌,用以驗(yàn)證 Google Drive 云端硬盤(pán)和 Colab 的 Google 憑據(jù)。
圖 6 驗(yàn)證憑據(jù)
如果顯示成功獲取訪問(wèn)令牌,則 Colab 會(huì)準(zhǔn)備就緒。
圖 7 驗(yàn)證訪問(wèn)令牌
......
想要繼續(xù)閱讀,請(qǐng)移步至我們的AI研習(xí)社社區(qū):https://club.leiphone.com/page/TextTranslation/870
更多精彩內(nèi)容盡在 AI 研習(xí)社。
不同領(lǐng)域包括計(jì)算機(jī)視覺(jué),語(yǔ)音語(yǔ)義,區(qū)塊鏈,自動(dòng)駕駛,數(shù)據(jù)挖掘,智能控制,編程語(yǔ)言等每日更新。
雷鋒網(wǎng)雷鋒網(wǎng)(公眾號(hào):雷鋒網(wǎng))
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。