余玄相似度,TF-IDF
能干什么?
文章去重,語(yǔ)句去重,提取關(guān)鍵詞(文章摘要,頁(yè)面指紋),圖片識(shí)別,語(yǔ)音識(shí)別
想要做一個(gè)相似度,最重要的是什么?
必須得到一個(gè)度量:計(jì)算個(gè)體之間的相似程度(分?jǐn)?shù),0-1之間,0代表完全不同,一代表完全一樣)
相似度值越小,距離越大,相似度值越大,距離越小
兩方面考慮:
文本角度
語(yǔ)義角度
例如:這個(gè)菜真好吃
這個(gè)菜真難吃 ? ? ? ? ? ---------- > 文本角度來(lái)看,相似度非常高,語(yǔ)義角度就非常低
最常用:
余玄相似度??------> 計(jì)算兩個(gè)向量夾角的余玄來(lái)計(jì)算相似度
?一個(gè)向量空間中兩個(gè)向量夾角的余弦值作為衡量?jī)蓚€(gè)個(gè)體之間差異的大小
余弦值接近1,夾角趨于0,表明兩個(gè)向量越相似
0度角的余弦值是1,而其他任何角度的余弦值都不大于1;并且其最小值是-1。從而兩個(gè)向量之間的角度的余弦值確定兩個(gè)向量是否大致指向相同的方向。兩個(gè)向量有相同的指向時(shí),余弦相似度的值為1;兩個(gè)向量夾角為90°時(shí),余弦相似度的值為0;兩個(gè)向量指向完全相反的方向時(shí),余弦相似度的值為-1。這結(jié)果是與向量的長(zhǎng)度無(wú)關(guān)的,僅僅與向量的指向方向相關(guān)。余弦相似度通常用于正空間,因此給出的值為0到1之間。
cos(?) =b/a
cos0°=1
cos90°=0
?
如果向量a和b不是二維而是n維
?
舉個(gè)例子計(jì)算:
x:(2,5)
y:(4,9)
cos(?)=2*4+5*9/sqrt(2*2+4*4)*sqrt(5*5+9*9)
一旦有了向量就能計(jì)算相似度了,但是向量是怎么來(lái)的呢?
繼續(xù)舉例子:
句子1:這支筆好看,但顏色不適合。
句子2:這支筆不好看,但顏色適合。
對(duì)以上的兩個(gè)句子做分詞:
句子1:這支/筆/好看,但/顏色/不合適
句子2:這支/筆/不好看,但/顏色/合適
word bag(詞包):這支,筆,好看,不好看,但,顏色,不合適,合適(集合:上面兩個(gè)句子去重,列出所有的詞)
計(jì)算詞頻:當(dāng)上面句子的分詞在詞包中出現(xiàn)幾次就打幾(上述例子沒(méi)有多次的,所以都是1),不在就打0(一定嚴(yán)格按照詞包的順序)
句子1:這支1,筆1,好看1,不好看0,但1,顏色1,不合適1,合適0
句子2:這支1,筆1,好看0,不好看1,但1,顏色1,不合適0,合適1
詞頻向量化:
句子1:(1,1,1,0,1,1,1,0)
句子2:(1,1,0,1,1,1,0,1)
套公式計(jì)算:
cos(?)=1*1+1*1+1*0+0*1+1*1+1*1+1*0+0*1/sqrt(1*1+1*1+1*1+0*0+1*1+1*1+1*1+0*0)*sqrt(1*1+1*1+0*0+1*1+1*1+1*1+0*0+1*1)
處理流程:
1.找到兩篇文章的關(guān)鍵詞
2.每篇文章各取出若干個(gè)關(guān)鍵詞,合并成一個(gè)集合,計(jì)算每篇文章對(duì)于這個(gè)集合中的詞的詞頻(詞頻:一個(gè)詞語(yǔ)在這個(gè)句子中出現(xiàn)的頻率,一般來(lái)說(shuō)一個(gè)詞語(yǔ)在這個(gè)句子中出現(xiàn)的次數(shù)越多就越重要)
3.生成兩篇文章各自的詞頻向量
4.計(jì)算兩個(gè)向量的余玄相似度,值越大就是越相似
?
詞頻:TF(Term Frequency)
假設(shè):一個(gè)詞很重要,應(yīng)該會(huì)在文章中出現(xiàn)多次
詞頻:一個(gè)詞在文章中出現(xiàn)的次數(shù)
但是,出現(xiàn)次數(shù)最多的是“的”“是”“在”,嘆詞,狀語(yǔ)次,亂碼,標(biāo)點(diǎn)等,這類最常出現(xiàn)的詞,叫做停用詞(stop words),一般使用黑名單(停用詞名單)把這些詞過(guò)濾掉。
停用詞對(duì)結(jié)果毫無(wú)幫助,必須過(guò)濾掉的詞
反文檔頻率:IDF
相當(dāng)于一個(gè)詞被那些文章包含了,如果包含的文章越多,那么這歌詞就越?jīng)]有刻畫(huà)能力(100篇文章,99篇都包含,那這么次肯定不重要)
這樣詞就用另外一個(gè)標(biāo)量來(lái)表示:IDF
最常見(jiàn)的詞(“的”、“是”、“在”)給予最小的權(quán)重
較常見(jiàn)的詞(“國(guó)內(nèi)”、“中國(guó)”、“報(bào)道”)給予較小的權(quán)重
較少見(jiàn)的詞(“養(yǎng)殖”、“維基”)給予較小的權(quán)重
將TF和IDF進(jìn)行相乘,就得到了一個(gè)詞的TF-IDF值,某個(gè)詞對(duì)文章重要性越高,該值越大,于是排在前面的幾個(gè)詞,就是這篇文章的關(guān)鍵詞。(關(guān)于寫錯(cuò)次的情況,隱馬爾可夫模型可以解決)
IDF得統(tǒng)計(jì)多篇文章才能得到
計(jì)算步驟:
拿原來(lái)的TF來(lái)計(jì)算,TF忽大忽小,非常不均勻,沒(méi)有很好的歸一,所以做了以下處理。
詞頻(TF)= 某個(gè)詞在文章中出現(xiàn)的次數(shù)
詞頻標(biāo)準(zhǔn)化:
1.詞頻(TF)=?某個(gè)詞在文章中出現(xiàn)的次數(shù)/文章的總詞數(shù)
2.詞頻(TF)=?某個(gè)詞在文章中出現(xiàn)的次數(shù)/該文出現(xiàn)次數(shù)最多的詞的出現(xiàn)次數(shù)
反文檔頻率(IDF)= log(語(yǔ)料庫(kù)的文檔總數(shù)/包含該詞的文檔數(shù)+1)
log是把這個(gè)值壓縮到了一個(gè)范圍,包含該詞的文檔數(shù)+1是因?yàn)榉乐狗帜笧?。包含該詞的文檔數(shù)越大這個(gè)詞就越不重要(可以參考log函數(shù))。
TF-IDF = 詞頻(TF)*反文檔頻率(IDF)
TF-IDF與一個(gè)詞在文檔中的出現(xiàn)次數(shù)成正比,與包含該詞的文檔數(shù)成反比。
總結(jié):
優(yōu)點(diǎn):簡(jiǎn)單快速,結(jié)果比較符合實(shí)際情況
缺點(diǎn):單純以“詞頻”做衡量標(biāo)準(zhǔn),不夠全面,有時(shí)重要的次可能出現(xiàn)的次數(shù)并不多
轉(zhuǎn)載于:https://www.cnblogs.com/fishperson/p/10479580.html
總結(jié)
以上是生活随笔為你收集整理的余玄相似度,TF-IDF的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 使用python实现简单的爬虫
- 下一篇: 《学习之道》第七章总结