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