<?phpclass
document
+)|(\p*\s+\p*)|(\p+$))/', $string, -1,preg_split_no_empty);
$this->build_tf();
}else
}public
function
build_tf()
public
function build_tfidf($idf
)
}else
}arsort($this->tfidf_matrix);
return
true
; }
public
function
getwords()
public
function
gettf()
public
function
gettfidf()
}/*第一步,計算詞頻。
考慮到文章有長短之分,為了便於不同文章的比較,進行"詞頻"標準化。
第二步,計算逆文件頻率。
這時,需要乙個語料庫(corpus),用來模擬語言的使用環境。
如果乙個詞越常見,那麼分母就越大,逆文件頻率就越小越接近0。分母之所以要加1,是為了避免分母為0(即所有文件都不包含該詞)。log表示對得到的值取對數。
第三步,計算tf-idf。
*/$text = 'i very good, ha , i very nice, i is good';
$obj = new document($text
);$obj->build_tf(); //
詞頻率tf,一般是詞出現次數/總詞數
$idf = log(3 / 2); //
逆文件頻率,總文件數/包含該詞的文件數
$obj->build_tfidf($idf
);
//越高則頻率高
var_dump($obj->getwords(), 88, $obj->gettf(), 99, $obj->gettfidf());
提取關鍵詞 tf idf演算法講解
結果你肯定猜到了,出現次數最多的詞是 的 是 在 這一類最常用的詞。它們叫做 停用詞 stop words 表示對找到結果毫無幫助 必須過濾掉的詞。用統計學語言表達,就是在詞頻的基礎上,要對每個詞分配乙個 重要性 權重。最常見的詞 的 是 在 給予最小的權重,較常見的詞 中國 給予較小的權重,較少見...
從提取網頁關鍵詞到TF IDF
這個標題看上去好像很複雜,其實是乙個很簡單的問題。這個問題涉及到資料探勘 文字處理 資訊檢索等很多計算機前沿領域,但有乙個非常簡單的經典演算法,卻可以給出令人相當滿意的結果。這就是tf idf演算法,這個概念是由劍橋大學計算機女科學家斯巴克 瓊斯提出,被認為是資訊檢索中最重要的發明。乙個容易想到的思...
TF IDF關鍵詞提取方法的學習
tf idf term frequency inverse document frequency 是一種用於資訊檢索與資料探勘的常用加權技術。tf意思是詞頻 term frequency idf意思是逆向檔案頻率 inverse document frequency 最近學習了阮一峰先生關於tf i...