機器學習與深度學習一

今天開始記錄一下本狗學習機器學習以及深度學習的過程。

先從與大數據相關的最基礎的開始

今天先記錄一下NLP文本相似度

開始相似度之前先了解一下相似度與距離之間的關係:

顯然,越相似距離越近,成正比的關係;

接下來記錄一下文本相似度,文本相似度分兩類

1、語意相似:語意相似但字面不相似

eg:本狗的學習之旅

     我的學習之路

2、字面相似:字面相似,但是語義不相似

eg:我吃飽飯了

     我吃不飽飯

那怎樣來解決呢?

1、語意相似:基於共點擊的行爲(協同過濾,後面本狗會更新),

                        藉助迴歸算法(後面會更新)

2、字面相似:LCS最大公共子序列

                       中文分詞(eg:本狗/的/學習/之路

字面相似的問題解決

1)餘弦相似度:cos=ab/|a|*|b|

舉個例子:

句子1:這件衣服尺寸大了,那件尺寸合適

句子2:這件衣服尺寸不大,那件更合適

對這兩句話就行分詞

句子1:這件/衣服/尺寸/大了,那件/尺寸/合適

句子2:這件/衣服/尺寸/不/大,那件/更/合適

接下來進行去重窮舉列出所有分詞BOW(bag of words)

這件,衣服,尺寸,大了,那件,合適,不,大,更

計算詞頻:

 

句子1:這件 1,衣服 1,尺寸2,大了1,那件 1,合適 0,不 0,大 0,更 0

句子2:這件 1,衣服1,尺寸 1,大了 0,那件1,合適 1,不 1,大 1,更1

句子1:(1,1,2,1,1,0,0,0,0)

句子2:(1,1,1,0,1,1,1,1,1)

計算餘弦相似度:cos(\partial )=0.625

值越大越相似

 

接下來看TFIDF

tf:詞頻:一個詞在文章中出現的次數

關鍵詞:在當前文章出現較多,但在其他文章中出現較少

當然要注意的是:文章中出現最多的不一定是關鍵詞,要注意出現最多的是“的”,“是”,“在”,“了”,這類最常用的詞叫停用詞

停用詞對結果毫無幫助,必須過濾掉

還需要注意:如果某個詞比較少見,但是在這篇文章中多次出現,那麼它很可能反映了這篇文章的特性,正是我們需要的關鍵詞

因此,在詞頻的基礎上,賦予每一個詞的權重,進一步體現該詞的重要性

最常見的詞:(“的”,“是”,“在”)給予最小的權重

較常見的詞:(“國內”,“中國”,“報道”)給予較小的權重

少見的詞:(“禍害”,“繁殖”)給予較高的權重

 

idf:反文檔頻率

將tf和idf相乘,就得到一個tf-idf值,某個詞對文章重要性越高,該值越大

詞頻和反文檔頻率怎樣計算呢詞頻(TF)=某個詞在文章中出現的次數/文章的總次數 或者某個詞在文章中出現的次數/該文出現次數最多的詞的出現次數


詞頻(TF)= 某個詞在文章中出現的次數 / 文章的總詞數

詞頻(TF)=某個詞在文章中出現的次數  / 該文出現次數最多的詞的出現次數

 

反文檔頻率(IDF)= log(   語料庫的文檔總數 / 包含該詞的文檔數+1)

使用log函數爲了是得到的曲線更加平滑,文檔數加1,爲了是得到的IDF是一個正值。

關於NLP文本出路的TFIDF原理到此,怎樣分詞後面會更新。接下來就是實踐,LCS的方式下一次更新。

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章