2019-04-22

當(dāng)你喜歡一個女生的時候,你會付出你的所有,和我好像。

1.文本相似度計算——文本向量化

1.前言

在自然語言處理過程中,經(jīng)常會涉及到如何度量兩個文本之間的相似性,我們都知道文本是一種高維的語義空間,如何對其進(jìn)行抽象分解,從而能夠站在數(shù)學(xué)角度去量化其相似性。

有了文本之間相似性的度量方式,我們便可以利用劃分法的K-means、基于密度的DBSCAN或者是基于模型的概率方法進(jìn)行文本之間的聚類分析;另一方面,我們也可以利用文本之間的相似性對大規(guī)模語料進(jìn)行去重預(yù)處理,或者找尋某一實體名稱的相關(guān)名稱(模糊匹配)。

而衡量兩個字符串的相似性有很多種方法,如最直接的利用hashcode,以及經(jīng)典的主題模型或者利用詞向量將文本抽象為向量表示,再通過特征向量之間的歐式距離或者皮爾森距離進(jìn)行度量。這里將對NLP中文本相似度計算第一步文本向量化做一個簡述。

2. 文本向量化

無論文本式中文還是英文,我們首先要把它轉(zhuǎn)化為計算機認(rèn)識的形式。轉(zhuǎn)化為計算機認(rèn)識的形式的過程叫文本向量化。

向量化的粒度我們可以分為幾種形式:

1.以字或單詞為單位,中文就是單個字,英文可以是一個單詞。

2.以詞為單位,就需要加入一個分詞的過程。分詞算法本身是一個NLP中重要的基礎(chǔ)課題,本文不詳細(xì)講解。

3.以句子為單位,提煉出一句話的高層語義,簡而言之就是尋找主題模型。當(dāng)然如果我們已經(jīng)拿到了一句話的所有詞的向量,也可以簡單的通過取平均或者其他方式來代表這個句子。

下面我們主要介紹以詞為單位的文本向量化方法,詞集模型、詞代模型、n-gram、TF-IDF、word2vec。和以句子為單位的主題模型,LSA、NMF、pLSA、LDA等。

2.1 詞集模型和詞代模型

詞集模型和詞代模型都是將所有文本中單詞形成一個字典vocab,然后根據(jù)字典來統(tǒng)計單詞出現(xiàn)頻數(shù)。不同的是:

1.詞集模型是單個文本中單詞出現(xiàn)在字典中,就將其置為1,而不管出現(xiàn)多少次。

2.詞代模型是單個文本中單詞出現(xiàn)在字典中,就將其向量值加1,出現(xiàn)多少次就加多少次。

詞集模型和詞代模型都是基于詞之間保持獨立性,沒有關(guān)聯(lián)為前提。這使得其統(tǒng)計方便,但同時也丟失了文本間詞之間關(guān)系的信息。

2.2 n-gram

n-gram是一種基于統(tǒng)計語言模型的算法。它的基本思想是將文本里面的內(nèi)容按照字節(jié)進(jìn)行大小為n的滑動窗口操作,形成了長度是n的字節(jié)片段序列。

以“我愛中國”為例:

一元模型(unigram model)分為“我”“愛”“中”“國”

二元模型(bigram model)分為“我愛”“愛中”“中國”

三元模型(trigram model)分為“我愛中”“愛中國”

以此類推,分好詞后,就可以像詞代模型的處理方式,按照詞庫去比較句子中出現(xiàn)的次數(shù)。n-gram能夠比較好的記錄句子中詞之間的聯(lián)系,n越大句子的完整度越高,但是隨之而來的是詞的維度成指數(shù)級增長。所以一般取n=2,n=3。

2.3 TF-IDF

TF-IDF是Term Frequency - Inverse Document Frequency的縮寫,即“詞頻-逆文本頻率”。它由兩部分組成,TF和IDF。

前面的TF也就是我們前面說到的詞頻,我們之前做的向量化也就是做了文本中各個詞的出現(xiàn)頻率統(tǒng)計,并作為文本特征,這個很好理解。關(guān)鍵是后面的這個IDF,即“逆文本頻率”如何理解。前面,我們講到幾乎所有文本都會出現(xiàn)的"的"其詞頻雖然高,但是重要性卻應(yīng)該比詞頻低的"西瓜"和“中國”要低。我們的IDF就是來幫助我們來反應(yīng)這個詞的重要性的,進(jìn)而修正僅僅用詞頻表示的詞特征值。

所以一個詞的定量化表示比較合理的是(詞頻X詞的權(quán)重)。

TF?IDF(x)=TF(x)?IDF(x)

2.4 word2vec

word2vec是google在2013年推出的一個NLP工具,它的特點是將所有的詞向量化,這樣詞與詞之間就可以定量的去度量他們之間的關(guān)系,挖掘詞之間的聯(lián)系。word2vec一般有CBOW和Skip-Gram模型。

CBOW模型的訓(xùn)練輸入是某一個特征詞的上下文相關(guān)的詞對應(yīng)的詞向量,而輸出就是這特定的一個詞的詞向量。通過深度學(xué)習(xí)訓(xùn)練出相應(yīng)的固定維度的詞向量。Skip-Gram模型和CBOW模型反一反,輸入是中心詞,輸出是上下文。

2.5 主題詞模型

設(shè)想一下一個問題,如果我有兩個文本,分別是“星期天”和“周日”,從詞的角度,它們沒有相交的詞,那它們用統(tǒng)計詞頻的方法就會比較難處理。但是這兩個詞,我們一看就知道意思完全一樣的。這里就可以用主題模型對它們進(jìn)行處理,假設(shè)我們找到它們的2個隱含主題“假期”,“休息”,然后計算它們和隱含主題間的距離的相似度。

主題模型主要有以下幾種,LSA、NMF、pLSA、LDA。

LSA是通過奇異值分解的方式把文本分解成如下,UilUil?對應(yīng)第ii個文本和第ll個主題的相關(guān)度。VjmVjm對應(yīng)第jj個詞和第mm個詞義的相關(guān)度。ΣlmΣlm對應(yīng)第ll個主題和第mm個詞義的相關(guān)度。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Am×n≈Um×kΣk×kVTk×n

NMF雖然也是矩陣分解,它卻使用了不同的思路,它的目標(biāo)是期望將矩陣分解為兩個矩陣。這樣速度更快,而且不會出現(xiàn)LSA中相關(guān)度為負(fù)數(shù)的情況,可解釋性強。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Am×n≈Wm×kHk×n

pLSA可以從概率的角度解釋了主題模型

按照概率p(dm)選擇一篇文檔dm

根據(jù)選擇的文檔dmdm,從從主題分布中按照概率p(zk|dm)即(θmzθmz)選擇一個隱含的主題類別zk

根據(jù)選擇的主題zk, 從詞分布中按照概率p(wj|zk)即(φzwφzw)選擇一個詞wj。


LDA模型考慮了主題概率分布的先驗知識,比如文本中出現(xiàn)體育主題的概率肯定比哲學(xué)主題的概率要高,這點來源于我們的先驗知識。


這里主要介紹了文本相似度計算的第一步,文本的向量化。向量化好后,我們就可以通過一些常用的距離計算公式計算文本之間的相似度。

1. 前言

上文介紹了文本的向量化處理,本文是在上文的向量化處理后的數(shù)據(jù)進(jìn)行距離的計算。距離度量的方式有多種多樣,但是一種相似度計算方式并不適用與所有的情況,需要根據(jù)不同的情況和數(shù)據(jù)類型進(jìn)行選擇。

2.相似度計算公式:

相似度就是比較兩個事物的相似性。一般通過計算事物的特征之間的距離,如果距離小,那么相似度大;如果距離大,那么相似度小。

簡化問題:假設(shè)有兩個對象XX、YY,都包括NN維特征,X=(x1,x2,x3,..,xn),Y=(y1,y2,y3,..,yn)X=(x1,x2,x3,..,xn),Y=(y1,y2,y3,..,yn),計算XX和YY的相似性。常用的方法如下:

3.歐氏距離和余弦相似度的公式及其適用場景:

3.1余弦相似度:

余弦相似度用向量空間中兩個向量夾角的余弦值作為衡量兩個個體間差異的大小。相比距離度量,余弦相似度更加注重兩個向量在方向上的差異,而非距離或長度上。適合word2vec模型向量化的數(shù)據(jù)。


cosθ=∑ni=1xi?yi∑ni/∑ni=1xi的平方*yi的平方分母開根號

最近在做“判斷兩段文本的語義相似度”的事情,實驗中用doc2vec做文本向量化,用余弦值衡量文本相似度。

## 那么為什么選用余弦呢?

如向量的維度是3,有三段文本a、b、c,文本向量化之后的結(jié)果假如如下:a=(1,0,0)、b=(0,1,0)、c=(10,0,0)。

我們知道doc2vec的每一個維度都代表一個特征,觀察向量的數(shù)字,主觀看來a和c說的意思應(yīng)該相似,闡述的都是第一個維度上的含義,a和b語義應(yīng)該不相似。那么如果用歐式距離計算相似度,a和b的相似度就比a和c的相似度高,而如果用余弦計算,則答案反之。

## 那么歐式距離和余弦相似度的區(qū)別是什么呢?

余弦相似度衡量的是維度間取值方向的一致性,注重維度之間的差異,不注重數(shù)值上的差異,而歐氏度量的正是數(shù)值上的差異性。

## 那么歐式距離和余弦相似度的應(yīng)用場景是什么呢

以下場景案例是從網(wǎng)上摘抄的。

如某T恤從100塊降到了50塊(A(100,50)),某西裝從1000塊降到了500塊(B(1000,500)),那么T恤和西裝都是降價了50%,兩者的價格變動趨勢一致,可以用余弦相似度衡量,即兩者有很高的變化趨勢相似度,但是從商品價格本身的角度來說,兩者相差了好幾百塊的差距,歐氏距離較大,即兩者有較低的價格相似度。

如果要對電子商務(wù)用戶做聚類,區(qū)分高價值用戶和低價值用戶,用消費次數(shù)和平均消費額,這個時候用余弦夾角是不恰當(dāng)?shù)?,因為它會?2,10)和(10,50)的用戶算成相似用戶,但顯然后者的價值高得多,因為這個時候需要注重數(shù)值上的差異,而不是維度之間的差異。

兩用戶只對兩件商品評分,向量分別為(3,3)和(5,5),顯然這兩個用戶對兩件商品的偏好是一樣的,但是歐式距離給出的相似度顯然沒有余弦值合理。

3.2歐氏距離

歐氏距離是最常用的距離計算公式,衡量的是多維空間中各個點之間的絕對距離,當(dāng)數(shù)據(jù)很稠密并且連續(xù)時,這是一種很好的計算方式。

因為計算是基于各維度特征的絕對數(shù)值,所以歐氏度量需要保證各維度指標(biāo)在相同的刻度級別,如在KNN中需要對特征進(jìn)行歸一化。

d=∑ni=1(xi?yi)2??????????√

4.曼哈頓距離的簡介及其適用場景:

首先介紹一下曼哈頓,曼哈頓是一個極為繁華的街區(qū),高樓林立,街道縱橫,從A地點到達(dá)B地點沒有直線路徑,必須繞道,而且至少要經(jīng)C地點,走AC和 CB才能到達(dá),由于街道很規(guī)則,ACB就像一個直角3角形,AB是斜邊,AC和CB是直角邊,根據(jù)畢達(dá)格拉斯(勾股)定理,或者向量理論,都可以知道用AC和CB可以表達(dá)AB的長度。

? ? ??在早期的計算機圖形學(xué)中,屏幕是由像素構(gòu)成,是整數(shù),點的坐標(biāo)也一般是整數(shù),原因是浮點運算很昂貴,很慢而且有誤差,如果直接使用AB的距離,則必須要進(jìn)行浮點運算,如果使用AC和CB,則只要計算加減法即可,這就大大提高了運算速度,而且不管累計運算多少次,都不會有誤差。因此,計算機圖形學(xué)就借用曼哈頓來命名這一表示方法。

? ? ??曼哈頓距離:兩點在南北方向上的距離加上在東西方向上的距離,即d(i,j)=|xi-xj|+|yi-yj|。對于一個具有正南正北、正東正西方向規(guī)則布局的城鎮(zhèn)街道,從一點到達(dá)另一點的距離正是在南北方向上旅行的距離加上在東西方向上旅行的距離。

通過分析下面的題目,可知其可以應(yīng)用曼哈頓距離計算至(1,1)點最近的點,依據(jù)曼哈頓距離即可計算出結(jié)果值。若不明白曼哈頓的定義及應(yīng)用,通過畫圖觀察,其實也可以得到答案。顯然若之前就明白曼哈頓距離的定義及應(yīng)用,問題手到擒來!

即曼哈頓距離主要適用于分析圖形的距離。

曼哈頓距離簡單來說就是統(tǒng)計相同坐標(biāo)軸上的距離的和。

? ? ?d=∑ni=1|xi?yi|

5.閔可夫斯基距離的公式及其適用場景:

大家有沒發(fā)現(xiàn)歐式距離和曼哈頓距離在形式上比較相近。是的,其實它們是閔可夫斯基距離的特殊化。適合TF-IDF向量化后的數(shù)據(jù)或者提煉出來的主題模型數(shù)據(jù)。

d=(∑ni=1(xi?yi)p)p分之1次方

6.皮爾森相關(guān)系數(shù)(pearson)

皮爾森相關(guān)系數(shù)是衡量線性關(guān)聯(lián)性的程度。

兩個連續(xù)變量(X,Y)(X,Y)的pearson相關(guān)性系數(shù)PX,YPX,Y等于它們之間的協(xié)方差cov(X,Y)cov(X,Y)除以它們各自標(biāo)準(zhǔn)差的乘積σXσX,σYσY。系數(shù)的取值總是在-1.0到1.0之間,接近0的變量被成為無相關(guān)性,接近1或者-1被稱為具有強相關(guān)性。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?PX,Y=cov(X,Y)/σXσY

7.Jaccard相似性系數(shù)

Jaccard(杰卡德)相似性系數(shù)主要用于計算符號度量或布爾值度量的樣本間的相似度。若樣本間的特征屬性由符號和布爾值標(biāo)識,無法衡量差異具體值的大小,只能獲得“是否相同”這樣一種結(jié)果,而Jaccard系數(shù)關(guān)心的是樣本間共同具有的特征。適合詞集模型向量化的數(shù)據(jù)。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?J(X,Y)=|X?Y|/|X?Y|

這里介紹的相似度計算方式,總的來說還是比較簡單、易于理解。相似度計算方式的不同對最終結(jié)果的影響沒有向量化方式不同影響大,但是相似度計算方式不同對計算時間影響比較大。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前面的文章主要從理論的角度介紹了自然語言人機對話系統(tǒng)所可能涉及到的多個領(lǐng)域的經(jīng)典模型和基礎(chǔ)知識。這篇文章,甚至之后...
    我偏笑_NSNirvana閱讀 14,454評論 2 64
  • 原文引自 豆瓣《數(shù)學(xué)之美》-筆記總結(jié) 第1章 文字和語言vs數(shù)字和信息 講述了文字、數(shù)字和語言的歷史,目的是幫助...
    _Haimei閱讀 1,752評論 0 3
  • 正確的賺錢思維模型,零基礎(chǔ)零成本也能實現(xiàn)月入1萬+ 說到網(wǎng)上賺錢項目,大家都不陌生,網(wǎng)上的項目比比皆是,但是對我們...
    俊子0624閱讀 424評論 0 0
  • 臨睡前,看了篇小文<<生活實驗>>,渴了去喝水,看到大嫂們在看津視的"愛情保衛(wèi)戰(zhàn)".而后就洗洗睡了.不知過了多久,...
    赤子靈光閱讀 365評論 1 7
  • 癌細(xì)胞最怕什么?癌細(xì)胞最怕的是免疫系統(tǒng),就是罪犯和警察的關(guān)系,警察不敢伸張正義,或沒有應(yīng)有的能力,罪犯就猖獗,肆無...
    暖洋洋Sophia閱讀 59評論 0 0

友情鏈接更多精彩內(nèi)容