pymining中的詞頻矩陣的生成過程

2021-06-19 05:28:39 字數 1641 閱讀 7821

最近在看pymining開源專案,對其詞頻矩陣的生成過程有些模糊,現在過一遍。

首先,pymining中所定義詞頻矩陣是乙個什麼樣的矩陣?它是乙個行 為 文章編號,列為單詞的矩陣,而矩陣中的元素是該列單詞在該行文章中出現的次數。

例如:生成的詞頻矩陣可以是:

小明上學

青菜蘿蔔

文章1211

0文章221

01pymining是怎樣完成這個過程的呢?詞頻矩陣又是採用何種形式儲存的呢?  接下來將一一介紹:

先介紹一下pymining的配置檔案:

<?xml version="1.0"?>

<__segmenter__>

dict/dict.main

<__matrix__>

<__global__>

mining/term_to_id

mining/id_to_term

mining/id_to_doc_count

mining/class_to_doc_count

mining/id_to_idf

<__filter__>

0.9maxmining/filter.log

mining/filter.model

mining/*****_bayes.model

mining/*****_bayes.log

mining/*****_bayes.model

mining/*****_bayes.log

其中:dict/dict.main為pymining自帶字典,其中包含41897個單詞,每個單詞佔一行。

1  pymining首先通過 configuration(minidom.parse(path).childnodes[0]) 得到物件,它儲存在configuration物件下的mcurnode

2  然後在類globalinfo中儲存物件,並用四個字串來分別儲存「mining/term_to_id」,「mining/id_to_term」,「mining/id_to_doc_count」 ,「mining/class_to_doc_count」,「mining/id_to_idf」。

3 生成乙個text2matrix類的物件 其內部生成了乙個segmenter物件segmenter,segmenter的curnode是<__segmenter__>物件 ,然後segmenter的內部生成了乙個字典maindict,字典的key是dict.main中的每乙個單詞,value全部為1。

4 通過text2matrix類自帶的createtrainmatrix函式生成詞頻矩陣。

pymining採用termtoid字典(key:word,value:id) ,idtoterm字典(key: id,value: word)  和三個列表col,row,val,來儲存訓練文字轉化成的詞頻矩陣(訓練文字逐行劃分)

termtoid:  termtoid與idtoterm相反

若再次輸入一行文字: 小白也喜歡小明  小白喜歡吃蒜薹,小白喜歡跳繩

則termtoid:  termtoid與idtoterm相反

所以col row val 的含義是:

Python中的計數(詞頻)

a.用自定義函式來統計技術 def get count sequence counts for x in sequence if x in sequence count x 1 else count x 1 return counts 或者利用python標準庫 from collections i...

統計中文句子中的詞頻

題目內容 對於乙個已分詞的句子 可方便地擴充套件到統計檔案中的詞頻 我 是 乙個 測試 句子 大家 趕快 來 統計 我 吧 大家 趕快 來 統計 我 吧 大家 趕快 來 統計 我 吧 重要 事情 說 三遍 可以用collections模組中的counter 函式方便地統計詞頻,例如可用如下 impo...

詞頻數的統計

做乙個詞頻統計程式,該程式具有以下功能 基本要求 1 可匯入任意英文文字檔案 2 統計該英文檔案中單詞數和各單詞出現的頻率 次數 並能將單詞按字典順序輸出。3 將單詞及頻率寫入檔案。提高要求 完成基本要求的基礎上,實現下述功能 1.實現gui介面。2.將單詞及頻率寫入資料庫。include incl...