[python] LDA處理文件主題分佈程式碼入門筆記
一. 下載安裝
- Loading dataset...
- Fitting LDA models with tf features, n_samples=2000 and n_features=1000...
- done in 0.733s.
-
Topics in LDA model:
- Topic #0:
- 000 war list people sure civil lot wonder say religion america accepted punishment bobby add liberty person kill concept wrong
- Topic #1:
- just reliable gods consider required didn war makes little seen faith default various civil motto sense currency knowledge belief god
-
Topic #2:
- god omnipotence power mean rules omnipotent deletion policy non nature suppose definition given able goal nation add place powerful leaders
- ....
model_parameter.dat 儲存模型訓練時選擇的引數
wordidmap.dat 儲存詞與id的對應關係,主要用作topN時查詢
model_twords.dat 輸出每個類高頻詞topN個
model_tassgin.dat 輸出文章中每個詞分派的結果,文字格式為詞id:類id
model_theta.dat 輸出文章與類的分佈概率,文字一行表示一篇文章,概率1 概率2..表示文章屬於類的概率
model_phi.dat 輸出詞與類的分佈概率,是一個K*M的矩陣,K為設定分類的個數,M為所有文章的詞的總數
但是短文字資訊還行,但使用大量文字內容時,輸出文章與類分佈概率幾乎每行資料存在大量相同的,可能程式碼還存在BUG。下面是介紹使用pip install lda安裝過程及程式碼應用:
- pip install lda
二. 官方文件
1.載入資料
- import numpy as np
- import lda
- import lda.datasets
- # document-term matrix
- X = lda.datasets.load_reuters()
- print("type(X): {}".format(type(X)))
- print("shape: {}\n".format(X.shape))
- print(X[:5, :5])
- # the vocab
- vocab = lda.datasets.load_reuters_vocab()
- print("type(vocab): {}".format(type(vocab)))
- print("len(vocab): {}\n".format(len(vocab)))
- print(vocab[:5])
- # titles for each story
- titles = lda.datasets.load_reuters_titles()
- print("type(titles): {}".format(type(titles)))
- print("len(titles): {}\n".format(len(titles)))
- print(titles[:5])
X矩陣為395*4258,共395個文件,4258個單詞,主要用於計算每行文件單詞出現的次數(詞頻),然後輸出X[5,5]矩陣;
vocab為具體的單詞,共4258個,它對應X的一行資料,其中輸出的前5個單詞,X中第0列對應church,其值為詞頻;
titles為載入的文章標題,共395篇文章,同時輸出0~4篇文章標題如下。
- type(X): <type 'numpy.ndarray'>
- shape: (395L, 4258L)
- [[ 10100]
- [ 70200]
- [ 000110]
- [ 60100]
- [ 000214]]
- type(vocab): <type 'tuple'>
- len(vocab): 4258
- ('church', 'pope', 'years', 'people', 'mother')
- type(titles): <type 'tuple'>
- len(titles): 395
- ('0 UK: Prince Charles spearheads British royal revolution. LONDON 1996-08-20',
- '1 GERMANY: Historic Dresden church rising from WW2 ashes. DRESDEN, Germany 1996-08-21',
- "2 INDIA: Mother Teresa's condition said still unstable. CALCUTTA 1996-08-23",
- '3 UK: Palace warns British weekly over Charles pictures. LONDON 1996-08-25',
- '4 INDIA: Mother Teresa, slightly stronger, blesses nuns. CALCUTTA 1996-08-25')
下面是測試文件編號為0,單詞編號為3117的資料,X[0,3117]:
- # X[0,3117] is the number of times that word 3117 occurs in document 0
- doc_id = 0
- word_id = 3117
- print("doc id: {} word id: {}".format(doc_id, word_id))
- print("-- count: {}".format(X[doc_id, word_id]))
- print("-- word : {}".format(vocab[word_id]))
- print("-- doc : {}".format(titles[doc_id]))
- '''''輸出
- doc id: 0 word id: 3117
- -- count: 2
- -- word : heir-to-the-throne
- -- doc : 0 UK: Prince Charles spearheads British royal revolution. LONDON 1996-08-20
- '''
2.訓練模型
其中設定20個主題,500次迭代- model = lda.LDA(n_topics=20, n_iter=500, random_state=1)
- model.fit(X) # model.fit_transform(X) is also available
3.主題-單詞(topic-word)分佈
程式碼如下所示,計算'church', 'pope', 'years'這三個單詞在各個主題(n_topocs=20,共20個主題)中的比重,同時輸出前5個主題的比重和,其值均為1。- topic_word = model.topic_word_
- print("type(topic_word): {}".format(type(topic_word)))
- print("shape: {}".format(topic_word.shape))
- print(vocab[:3])
- print(topic_word[:, :3])
- for n in range(5):
- sum_pr = sum(topic_word[n,:])
- print("topic: {} sum: {}".format(n, sum_pr))
- type(topic_word): <type 'numpy.ndarray'>
- shape: (20L, 4258L)
- ('church', 'pope', 'years')
- [[ 2.72436509e-062.72436509e-062.72708945e-03]
- [ 2.29518860e-021.08771556e-067.83263973e-03]
- [ 3.97404221e-034.96135108e-062.98177200e-03]
- [ 3.27374625e-032.72585033e-062.72585033e-06]
-
相關推薦
[python] LDA處理文件主題分佈程式碼入門筆記
以前只知道LDA是個好東西,但自己並沒有真正去使用過。同時,關於它的文章也非常之多,推薦大家閱讀書籍《LDA漫遊指南》,最近自己在學習文件主題分佈和實體對齊中也嘗試使用LDA進行簡單的實驗。這篇文章主要是講述Python下LDA的基礎用法,希望對大家有所幫助。如果文章中有錯誤或不足之處,還請海涵~
LDA(文件主題生成模型)--零基礎(一)
本文目的在於用最簡單的語言,給大家介紹LDA的原理以及使用方法。 首先,我們這裡有M篇文件,每篇文件有個單詞,如果文件是英文,就是每個單獨的單詞;如果是中文,則需要分詞處理,分詞處理又需要用已有的分詞的演算法,比較複雜,所以我們這裡先只考慮英文。我們現在想知道,每篇文章,
python中對文件的處理
and 刪除 eva 改密 名稱 賬號 字典 oat 行為 1.當文件中存放的用戶名的密碼,是以字符串的形式存儲時,怎麽進行讀取和操作 eg:MLing,123456 niuniu,234567 luoluo,345678 方法一:將字符串轉為字典 1)字典查找的效
python基礎之文件處理
二進制 table 註解 移動 color 截斷 新建 讀取 如果 # r模式,默認模式,文件不存在則報錯 # w模式,文件存在覆蓋,文件不存在則創建 # a模式,文件不存在則創建,文件存在不會覆蓋,寫內容是追加的方式. # 文件處理--讀 f = open(‘a.t
Python成長之路【第五篇】:Python基礎之文件處理
閱讀 關註 src 文件路徑 程序 opened IT 寫入 文件操作 一、文件操作 1、介紹 計算機系統分為:計算機硬件,操作系統,應用程序三部分。 我們用python或其他語言編寫的應用程序若想要把數據永久保存下來,必須要保存於硬盤中,這就涉及到應用程序要操作硬件,
python 中有關文件處理
subclass 也會 eas metaclass 註意 can 定位 acc instance Python的文件處理 打開文件f = open (“path”,”mode”) r 模式以讀的方式打開,定位到文件開頭 , 默認的 mode。文件不存在直接報錯,文件只能讀
Python-對Pcap文件進行處理,獲取指定TCP流
serve cap dscp 解析 地址 沒有 ont wikipedia 校驗和 通過對TCP/IP協議的學習,本人寫了一個可以實現對PCAP文件中的IPV4下的TCP流提取,以及提取指定的TCP流,鑒於為了學習,沒有采用第三方包解析pcap,而是對byt
selenium+python自動化98--文件下載彈窗處理(PyKeyboard)
and time 操作方法 3.6 事件 技術分享 一個 inter blog 前言 在web自動化下載操作時,有時候會彈出下載框,這種下載框不屬於web的頁面,是沒辦法去定位的(有些同學一說到點擊,腦袋裏面就是定位!定位!定位!) 有時候我們並不是非要去定位到這個按鈕再去
只需一行程式碼,python實現docx文件轉html頁面!
說到word文件轉html的,網上一搜一大把,各種線上word轉html頁面,使用起來也方便。但是在實際專案中要使用的話,需要自己開發,這裡就提供一個簡單的方法。 學習Python中有不明白推薦加入交流群
python初識05-文件處理
文本文件 編輯器 硬盤 計算 符號 字符 編寫程序 這就是 識別 文件是操作系統中的一個虛擬概念。文件是以計算機硬盤為載體存儲在計算機上的信息集合,文件可以是文本文檔、圖片、程序,等等。在系統運行時,計算機以進程為基本單位進行資源的調度和分配;而在用戶進行的輸入、輸出中
運用好Python處理文件的小技巧,讓你成為女神心中superstar!
今天小編給大家帶來了一篇,主要運用Python_docx模組處理word文件的基本技巧來介紹,其中最主要的是如何對圖片進行提取和寫入。 python已有幾個模組可處理word文件、excel表格、以及ppt簡報。首先,彙總列出各模組對不同版本檔案的
LDA文件主題發現R
1.# 載入rJava、Rwordseg、tm、lda庫 library(rJava); library(Rwordseg); library("lda", lib.loc="~/R/win-library/3.3") library("tm",
Python 批處理文本文件、進行查找
描述 eba 位置 匹配 exist 損壞 冒號 back 獲取 去年換了一部手機,老手機終於光榮退休了,但是裏面的便簽裏還存有很多文字記錄,這個手機還不能備份到雲,只能將每個便簽保留為一個個的文本文件,我想要把所有的文本文件歸到一個文本文件中,手動操作太麻煩了,剛好去年學
Python之路-文件操作(py)
句柄 接口 編碼 操作 strong span 操作系統 使用 color 文件操作的基本步驟: 1.打開文件:f=open(‘filename‘),with open(‘filename‘) as f 2.操作文件:增,刪,改,查 3.關閉文件:f.close
將Python的.py文件轉變為可執行文件.exe
顯示錯誤 div ron 錯誤 .exe 執行 head python環境 color python是個很強大的工具,但我們生成的.py文件在沒有Python環境下運行就需要轉為.exe文件,我使用的是PyInstaller 1、安裝PyInstaller: pip ins
linux之系統編碼,python編碼,文件編碼
python 編碼 文件編碼 linux編碼 1 前言如果你對python2和python3的中編解碼很清楚,這裏我認為你很清楚。具體參考文檔:“python2 encode和decode函數說明.docx”“字符編碼——從ASCII開始.docx”以上所有文檔均為本地文檔。2
Python基礎之文件操作流與函數
默認 true 格式 nbsp 文件 內容 print 寫入 追加 一.文件操作 打開文件的方式有: r,只讀模式(默認) w,只寫模式(不可讀;不存在則創建;存在則刪除內容;) a,追加模式(可讀; 不存在則創建;存在則只追加內容;) "+"表示可以同時讀寫某個文
Python常用的文件讀寫操作和字符串操作
dir info load char 編碼 lines resolve values ror 文件讀寫操作 fileUtils.py # -*- coding: utf-8 -*- import os def getFileList(dir, fileList=[]):
'mingw32-make' 不是內部或外部命令,也不是可運行的程序 或批處理文件。(的解決方案)
windows 外部命令 搜索 方案 win mage -m 分享 image 問題如上。 解決方案:找到mingw32-make,方法是在計算中搜索 然後將其復制到C:Windows\System32下,需要管理員權限才能復制的情況下直接點繼續。然後就可以了。
使用Python生成源文件的兩種方法
mob zhang mod pri tid 串接 數字 能夠 package 利用Python的字符串處理模塊,開發者能夠編寫腳本用來生成那些格式同樣的C、C++、JAVA源程序、頭文件和測試文件,從而避免大量的反復工作。本文概述兩種利用Python string類生成