1. 程式人生 > >sklearn中的TfidfVectorizer中計算TF-IDF的過程(詳解)

sklearn中的TfidfVectorizer中計算TF-IDF的過程(詳解)

Sklearn中的Tf-idf原理(source code):

  1. Tf-idf訓練

Fit_transform學習到一個字典,並返回Document-term的矩陣(即詞典中的詞在該文件中出現的頻次)

TfidfVectorizer.fit_transform(raw_document) = TfidfTransformer.fit(X).transform(X)

Fit步驟學習idf vector,一個全域性的詞權重_idf_diag。輸入的X是一個稀疏矩陣,行是樣本數,列是特徵數。

Transform步驟是把X這個計數矩陣轉換成tf-idf表示, X = X * self._idf_diag,然後進行歸一化

  • 測試

Transform(raw_documents):把文件轉換成 X矩陣(該文件中該特徵詞出現的頻次),行是文件個數,列是特徵詞的個數。

然後呼叫TfidfTransformer的transform過程(第一個步驟中的)

  • 例子

TfidfVectorizer從訓練資料集中學習到詞典vocab,vocab包含三個詞,分別是document,second,third。並且學習到_idf的全域性idf vector

來了新的測試樣本,會生成document-term矩陣,矩陣中的數是該文件中該詞出現的次數,即tf;然後tf*idf(從idf vector中查詢),最後歸一化。因此第二個測試樣本都為0

相關推薦

sklearnTfidfVectorizer計算TF-IDF過程

Sklearn中的Tf-idf原理(source code): Tf-idf訓練 Fit_transform學習到一個字典,並返回Document-term的矩陣(即詞典中的詞在該文件中出現的頻次) TfidfVectorizer.fit_transform(raw_

touch事件的touches、targetTouches和changedTouches

touches: 當前螢幕上所有觸控點的列表; targetTouches: 當前物件上所有觸控點的列表; changedTouches: 涉及當前(引發)事件的觸控點的列表 通過一個例子來區分

android開發學習 ------- 【轉】 android的單例模式

lan post tail -- and 使用 href details android開發 https://blog.csdn.net/u011418943/article/details/60139644 這篇文章 前因後果 都說出來了 ,值得學習。 htt

java每次面試的問題整理,java篇)

Java集合框架是什麼,集合框架優點! 最初的java版本包含幾個集合類,Vector,Stack,HashTable,和Array. Java1.2提出了囊括所有集合的介面,實現和演算法的集合框架。集合框架的部分優點↓ 1,實現核心集合類降低開發成本.並非實現我們自己的集合類,

專案執行緒原來是這麼使用的

實現執行緒同步的幾種方式 1.同步方法 即有synchronized關鍵字修飾的方法。 由於java的每個物件都有一個內建鎖,當用此關鍵字修飾方法時, 內建鎖會保護整個方法。在呼叫該方法前,需要獲得內建鎖,否則就處於阻塞狀態。 程式碼如: public synchro

在伺服器安裝jdk1.8版本的安裝,原來這麼簡單

因為在烏班圖的系統中由於只能註冊普通的使用者,不能註冊root使用者。 所以需要先把jdk-8u11-linux-x64.tar.gz的安裝包拷貝到普通使用者的許可權中去。 我們可以使用WinSCP視覺化工具直接對壓縮包進行拖拽到指定的目錄下,也可以使用Xshell工具使用命令列對檔

使用Docker實現MySql資料庫在容器的主從配置

使用Docker容器搭建MySql主從複製 關於如何建立映象,我的部落格中有詳細的步驟文件 檢視容器ip命令為docker inspect 96fd[id前四位] Master_mysql_ip_172.17.0.4 slave_mysql_ip_172.17.0.5 1.docker上面尋

java的變數原來有這些

1 初識java a 開啟MyEclipse b 開啟File->new->java project (建立專案) c 在project name 起名 (給專案命名) d 開啟File->new->class name起個名字 最好叫Test (建立類並命名) e

原來mysql在伺服器,虛機是這麼使用的

1.以root身份登入到MySQL伺服器中。 $ mysql -u root -p 當驗證提示出現的時候,輸入MySQL的root帳號的密碼。 2.建立一個MySQL使用者 使用如下命令建立一個使用者名稱和密碼分 為”username”和”userpassword”的使用者。

vue localStorage的使用方法

vue中實現本地儲存的方法:localStorage,在HTML5中,新加入了一個localStorage特性,這個特性主要是用來作為本地儲存來使用的,解決了cookie儲存空間不足的問題(cookie中每條cookie的儲存空間為4k),localStorage中一般瀏覽器支援的是5M大小,這個在

原來資料庫的模糊查詢,分組,聯合查詢是這麼使用的

1 模糊查詢 like關鍵字 萬用字元 % 任意長度的任意字串 _ 代表任意一個字元 [1-6] 代表1到6之間的一個字元 [^0-5] 代表不是0到5之間的一個字元 between 值1 and 值2 select * from 表名 where 列

實際開發時間戳原來是這麼使用的

在改客戶需求時,需要獲得當時的時間戳顯示的時間, 但是在前臺報錯Cannot convert value ‘2018-07-02 17:14:20.000000’ from column 28 to TIMESTAM 說明是時間戳轉換時轉換異常報錯。 在查詢時把

兩個有序序列的位數

1. 實踐題目 7-3 兩個有序序列的中位數 2. 問題描述 在一行中輸出兩個輸入序列的並集序列的中位數。時間複雜度不能大於O(logn) 3. 演算法描述(不能貼上程式) 因為時間複雜度不能大

TCP協議為什麼三次握手,四次揮手!!!

建立TCP需要三次握手才能建立,而斷開連線則需要四次握手。整個過程如下圖所示: 先來看看如何建立連線的。 首先Client端傳送連線請求報文,Server段接受連線後回覆ACK報文,併為這次連線分配資源。Client端接收到ACK報文後也向Server段發

android使用startActivityForResult回傳資料

在使用新浪微博APP時,能發現在微博釋出介面進入相簿選擇圖片後,會回到微博釋出頁面並帶回了圖片選擇頁面的圖片資訊。由於這種需求十分常見,因此,Android提供了一個startActivityForResult()方法,來實現回傳資料。 要求:頁面1跳轉到頁面2,頁面2

Android Studio匯入SlidingMenu

AS中匯入GitHub開源專案SlidingMenu總結,我開始AS匯入SlidingMenu的時候也百度了很多文章,寫的都不是很詳細,所以匯入成功後,寫了這篇文章,希望對想用AndroidStudio匯入SlidingMenu的小夥伴有所啟發。 先上最終效果圖動畫 2

文字特徵選擇——TF-IDF演算法Python3實現

1、TF-IDF演算法介紹        TF-IDF(term frequency–inverse document frequency,詞頻-逆向檔案頻率)是一種用於資訊檢索(information retrieval)與文字挖掘(text mining)的常用加權技術

cocos2dx學習之路----第七篇座標系統本地座標與世界座標的轉換

這一篇我們來談談關於座標系統中本地座標與世界座標的轉換問題。 在上一篇中我們知道了標準的螢幕座標系、本地座標與世界座標的區別,還了解了關於cocos2dx的座標系問題。 其實關於OpenGL的座標,如果我們做2d程式設計,是可以暫時忽略Z軸座標的。但是卻需要記住的是渲染的深

asp.net webGridView的多種使用方法

靈活使用asp.net中gridview控制元件的方法有很多種,本文內容很富,希望大家都能有所收穫。1.GridView無程式碼分頁排序:效果圖:小提示:1.AllowSorting設為True,aspx程式碼中是AllowSorting="True"; 2.預設1頁10條,

HTML的屬性 1.外間距和2.內間距 表格屬性

<!--外間距和內間距--> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>外間距</title&g