天天看點

基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

摘要

在機器學習和自然語言處理領域中,主題模型(Topic Model)是在一系列文檔中發現抽象主題的一種統計模型,并被廣泛地應用于文本文檔集合的分析。近年來,各種主題模組化技術,特别是機率圖模組化技術,取得了顯著的進展,其中隐含狄利克雷分布(LDA)等最先進的技術已經成功地應用于可視化文本分析。然而,大多數基于機率模型的方法在多次運作的一緻性和經驗收斂性方面存在缺陷。此外,由于公式和算法的複雜性,LDA 無法輕易合并各種類型的使用者互動和回報。本課題的主要目的是設計一個主題模型可視化分析系統,使用非負矩陣分解的方法對文本進行主題模組化,将訓練過程和結果實時地可視化呈現給使用者,并以半監督模式為核心,設計一系列使用者互動方式,達到基于使用者驅動的文本主題模型互動優化。在經過若幹次模型互動優化後,如果使用者對目前訓練的主題模型感到滿意了,便可以使用此模型來對語料庫之外的新文檔進行拟合,進而得到新文檔的主題分布預測。本系統采用 Web 技術,後端算法和接口使用 Python 語言和 FastAPI Web 架構編寫,前端界面使用 React&Ant Design 架構編寫。本系統中收錄了現實網絡上多種類型的語料庫(中/英文文本、社交使用者短文本、新聞長文本),并提供了一個 Bilibili 網站的視訊評論爬取工具,使用者可以選擇自己感興趣的視訊并爬取該視訊下的評論,然後對其進行主題模組化分析。最後,通過對這些實際語料庫進行主題模組化,執行相應的使用者互動優化主題模型,并對其結果進行對比、分析,發現該系統在運作效率、多次運作的結果一緻性方面明顯要優于 LDA 算法,并且使用者互動确實能夠表達出使用者的意圖,并對主題模型的結果有改進優化的效果。

關鍵詞:自然語言處理,文本分析,資料可視化,互動式聚類,主題模型,半監督,非負矩陣分解(NMF)

一、緒論

1.1 本課題的研究背景和意義

近年來,随着網絡以及社交媒體的不斷發展及活躍,網際網路上每天都會産生大量的文本資訊。在這些海量的文本資料中,對其進行分析并提取出有價值的内容,并由此指導使用者的決策過程一直是研究的熱點領域。在解決這些問題的各種方法中,主題模組化方法(從文檔語料庫中發現語義上具有意義的主題)在資料挖掘/機器學習和可視化分析領域得到了廣泛的應用。顧名思義,這是一個自動識别文本對象中存在的主題并派生文本語料庫顯示的隐藏模式的過程。

主題模組化不同于使用正規表達式或基于字典的關鍵字搜尋技術的基于規則的文本挖掘方法。這是一種無監督的方法,用于查找和觀察大型文本集中的一堆單詞(稱為“主題”)。主題可以定義為“語料庫中共同出現的術語的重複模式”。

主題模型有着廣泛的應用場景,特别是對于文檔聚類,組織大量文本資料,從非結構化文本中檢索資訊以及選擇功能非常有用。例如,《紐約時報》正在使用主題模型來提升其使用者–文章推薦引擎;各種專業人士正在針對招聘行業使用主題模型,他們旨在提取職位描述的潛在特征并将其映射到合适的候選人。

在本節接下來的内容中,我們将回顧主題模型的發展及研究現狀,提出目前存在的問題,以及本課題的研究意義。

1.1.1 主題模型的發展及研究現狀

早在上世紀 80 年代,研究者們常常使用 TF-IDF 方法來進行文檔的檢索和資訊的提取。在此方法中,先選擇一個基于詞或者詞組的基本詞彙,然後對于語料庫中的每個文檔,分别統計其中每個單詞的出現次數。經過合适的正則化後,再将詞的頻率計數和反向文檔頻率計數相比較,得到一個詞數乘以文檔數的向量 X。向量的每個行中都包含着語料庫中每個文檔的 TF-IDF 值。

但是整個 TF-IDF 算法是建立在一個假設之上的:一個單詞出現的文本頻數越小,它差別不同類别文本的能力就越大。這個假設很多時候是不正确的,尤其是在引入 IDF 的過程中,單純地認為文本頻率小的單詞就越重要,文本頻率大的單詞就越無用,顯然這并不是完全正确的。其也不能有效地反映單詞的重要程度和特征詞的分布情況,是以精度有限。

上世紀 90 年代,Deerwester S 等人提出了潛在語義分析(LSA),它是一種用于知識擷取和展示的計算理論和方法,出發點就是文本中的詞與詞之間存在某種聯系,即存在某種潛在的語義結構。Thomas Hofmann 于 1999 年提出了機率潛在語義分析(pLSA),并在文中描述了 pLSA 與 LSA 的差別,即 LSA 主要基于奇異值分解(SVD),而 pLSA 則依賴混合分解。他随後進行了一系列實證研究,并讨論了 pLSA 在自動文檔索引中的應用。他的實證結果表明 pLSA 相對于 LSA 的表現有明顯進步。

年,潛在語義分析被 Jerome Bellegarda 提出使用在自然語言進行中。2003 年 Andrew Y. Ng 等人在論文中提出用于 pLSA 的 aspect model 具有嚴重的過度拟合問題,他們提出了隐含狄利克雷分布(LDA),這可以看作是結合了貝葉斯思想的 pLSA。LDA 是目前使用的最常見的主題模型。

年,針對目前主題模型可以為文檔建構可解釋的向量表示,而詞向量在句法規則方面十分有效,Christopher E Moody 提出了 lda2vec,一個學習密集單詞向量的模型,将上述兩類模型的優點結合。他們的方法很容易融入現有的自動微分架構,并允許科學家使用無監督文檔表示,同時學習單詞向量和它們之間的線性關系。

1.1.2 目前存在的問題

主題模型是一種無監督學習模型,其結果的好壞取決于所選的模型參數和訓練集,并且具有很高的不确定性。使用者通常無法在訓練過程中對模型的結果進行修正,特别是一些專業領域,使用者無法向主題模型提供一些領域知識來提高主題模組化的品質。已有一些研究提出,通過對主題模型添加限制的形式來解決這一問題。Hu 等人提出了互動式主題模型,然而主題模組化的結果十分不直覺,從中尋找不恰當的結果并添加合适的限制非常耗時、費力。同時現在基于機率圖模型的主題模組化算法結果往往具有不确定性,很難引入使用者的互動回報操作,比如讓使用者互動調整模組化的中間結果和參數,進而得到更優的主題分析結果。

1.1.3 本課題的研究意義

本課題的研究意義是對目前主題模組化算法進行優化改進,解決算法結果的不确定性和使用者互動回報引入的困難性這 2 個問題,将可視化分析技術與主題模型相結合,提供有效的互動手段,讓人們充分參與到分析主題模型的結果中來,利用人的認知能力,從資料中挖掘有效資訊,達到基于使用者驅動的文本主題模型互動優化。

1.2 研究内容和主要工作

本課題的研究主要内容是在國内外互動式主題模組化的研究基礎上,設計一個面向文本分析的互動式主題模組化可視化分析系統。系統使用非負矩陣分解(NMF)來作為主題模組化的主要算法,并參考了 Jaegul Choo 等人提出的 UTOPIAN 主題模組化可視化分析系統,對其中的半監督非負矩陣分解(SS-NMF)算法和多種使用者互動方式進行了實作及改進。

本系統采用 Web 技術,後端算法和接口使用 Python 語言和 FastAPI Web 架構編寫,前端界面使用 React&Ant Design 架構編寫。主要工作可分為以下幾個部分:

  • 語料庫的爬取、收集和整理,并寫入資料庫。
  • 後端主題模組化相關算法的編寫。
  • 後端 Web API 接口的編寫。
  • 前端界面的設計。
  • 前端與後端的對接,調用後端資料接口,并将資料可視化。
  • 前端使用者互動邏輯的編寫。

1.3 本文的組織結構

本文共分為六章,各章内容如下:

  • 第一章,總結了課題研究的背景,國内外相關領域的研究及應用,課題研究的主要任務和本文的主要工作。
  • 第二章,對後端的實作過程進行了詳細的闡述,包括算法實作過程、後端 Web API 接口實作過程等。
  • 第三章,對前端的實作過程進行了詳細的闡述,包括界面的區域子產品介紹、與後端接口的對接、資料可視化展示等。
  • 第四章,對算法進行定量分析及比較,主要是對算法的性能、收斂速度、多次運作的一緻性方面進行分析,并與 LDA 算法進行對比。
  • 第五章,對此系統進行實際使用場景的展示,選取了現實中多種類型的語料庫來進行主題模組化,并示範了各種使用者互動方式,以及主題模型随着使用者互動優化的變化過程。
  • 第六章,對本文進行總結并提出下一步工作。

二、核心算法

2.1 文本預處理

預處理主要分為分詞和特征提取,接收的輸入參數如下:

  • Language: CorpusLanguage(Enum),表示語料庫的語言類型,目前支援中文和英文 2 種類型。
  • Documents: List[str],語料庫資料,使用字元串清單來表示,其中每個元素代表一篇文檔。
  • Min_word_num_in_doc: int,文檔最小詞數過濾,如果文檔的詞數小于該值,則過濾掉該文檔。此參數可以用來過濾掉某些過短且意義不大的文本,比如“哈哈哈哈哈”,進而提高語料庫的品質。

接下來是分詞部分,因為中文和英文的語言結構特點不一樣,是以采取的方法也有所不同。其中英文分詞用的是 nltk[footnoteRef:1]中的 tokenize 分詞工具,中文分詞用的是結巴中文分詞[footnoteRef:2],中文和英文的停用詞清單使用的是網上他人整理的資料。分詞流程圖如下:

基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 中英文分詞流程圖

接下來是特征提取,我們使用 TF-IDF 算法來計算特征矩陣,算法的實作我們使用了 scikit-learn 科學工具包中的 TfidfTransformer 類,計算的過程如下:

  • 計算詞袋,即将上一步中所有文檔的分詞結果清單合并去重,得到語料庫中出現的所有單詞的集合。
  • 計算詞頻矩陣,其中 m 是詞袋長度(即單詞總數),n 是文檔總數,表示單詞 i 在文檔 j 中的出現詞數。
  • 使用 TfidfTransformer 來從詞頻矩陣計算得到非負矩陣。

2.2 大型語料庫的記憶體優化

當我們将以上 NMF 算法應用到一個稍大的語料庫的時候,出現了 MemoryError 記憶體不足的錯誤。經過分析,我們發現在算法中,輸入矩陣 A 和對角矩陣是比較占用記憶體空間的。假設現在的語料庫包含 50,000 個文檔,20,000 個單詞,矩陣的資料類型為 float32,那麼矩陣 A 的建立就需要 4GB 的記憶體空間,而需要 10GB 的記憶體空間,然而這 2 個矩陣中的大部分元素都是 0,占用這麼大的記憶體空間完全是沒必要的。是以我們可以使用 scipy.sparse[footnoteRef:4]中的稀疏矩陣來節省記憶體空間,主要用到了以下 3 種稀疏矩陣:

  • csr_matrix:按行壓縮的稀疏矩陣存儲方式,由三個一維數組 indptr, indices, data 組成。indptr 存儲每一行資料元素的起始位置,indices 這是存儲每行中資料的列号,與 data 中的元素一一對應。它的主要優點是高效地進行矩陣的算術運算,以及快速地行切片,缺點是列切片和稀疏矩陣的轉換比較慢。
基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 csr_matrix 的存儲結構圖

  • csc_matrix:和 csr_matrix 正好相反,即按列壓縮的稀疏矩陣存儲方式,同樣由三個一維數組 indptr, indices, data 組成,優缺點和 csr_matrix 基本一緻,它們之間唯一的差別就是按行或按列壓縮進行存儲。而這一差別決定了 csr_matrix 擅長行操作;csc_matrix 擅長列操作,進行運算時需要進行合理存儲結構的選擇。
基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 csc_matrix 的存儲結構圖

  • lil_matrix:使用兩個嵌套清單存儲稀疏矩陣:data 儲存每行中的非零元素的值,rows 儲存每行非零元素所在的列号(列号是順序排序的)。這種格式很适合逐個添加元素,并且能快速擷取行相關的資料。其初始化方式同 coo_matrix 初始化的前三種方式:通過密集矩陣建構、通過其他矩陣轉化以及建構一個一定 shape 的空矩陣。優點是快速地按行切片以及高效地添加、删除、查找元素,缺點是列切片、矩陣加法、乘法效率較低。
基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 lil_matrix 的存儲結構圖

2.3 UMAP 資料降維&可視化

統一流形逼近與投影(Uniform Manifold Approximation and Projection, UMAP)是由 Mclnnes 在 2018 年提出的一種降維技術,類似于 t-SNE,可用于可視化,但也可用于一般的非線性降維。該方法采用 k-最近鄰的概念,并利用随機梯度下降優化結果。它首先計算高維空間中點之間的距離(一般是歐幾裡得距離),将它們投影到低維空間中,然後計算低維空間中點之間的距離。然後,使用随機梯度下降,以盡量減少這些距離之間的差異。

UMAP 的一些主要優點是:

  • 它可以處理大資料集和高維資料而不太困難。
  • 它将可視化除了保留局部結構外,它還保留了資料的全局結構。UMAP 将流形上的鄰近點映射到低維表示中的鄰近點,并且對于遠處點也這樣做的能力與減少資料次元的能力結合在一起。
  • 速度比 t-SNE 要快很多,且降維效果更好。

當應用到主題模組化中時,我們以 NMF/SS-NMF 的結果矩陣 H 作為 UMAP 的輸入。詳細地說,假設主題數為 k,那麼 H 的清單示文檔 i 與這 k 個主題的相關度,也就是說它是一個 k 維的向量。我們通過将每個基于主題相關度表示的文檔向量使用 UMAP 算法來降到三維,擷取每個文檔基于三維空間坐标的表示方式,進而将每個文檔作為一個節點來在 3D 散點圖中可視化。

在本系統中,我們會在可視化前随機生成一個顔色數組 ColorArray,每個主題叢集對應其中一種顔色。假設表示主題 ti 的顔色,那麼在 3D 散點圖中,文檔 di 的顔色為其硬聚類到的主題(與其相關度最大的主題)的顔色,即:

但是,在實際将 UMAP 算法的結果應用到 3D 散點圖可視化中,我們發現其中不同的主題叢集嚴重地聚集在一起:

基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 原始 UMAP 的可視化結果

如上圖所示,由于重疊,使得難以分析主題與主題以及文檔與文檔之間的關系。為了克服這個問題,我們對原有的 UMAP 算法進行了一點改進,以便可以更好地顯示嘈雜資料集(如文檔)中的叢集結構。假設表示文檔 i 和 j 之間的成對距離,如果這 2 個文檔硬聚類到同一個主題叢集,則我們将它們之間的成對距離乘以一個縮放因子(可由使用者調整)。如果用僞代碼的形式來表示即為:

表 UMAP 的改進方法

UMAP 改進:自定義距離計算函數 UMAP 改進:自定義距離計算函數
1 輸入:縮放因子,文檔 i 的列向量,文檔 j 的列向量
2
3 :Return
4 Else:Return

在本系統中,我們使用了 Python 中的 umap-learn[footnoteRef:5]包來作為其實作。若要實作上述的改進算法,則隻需要将自定義距離計算函數作為一個回調函數傳遞給 UMAP 類的 metric 參數即可。改進後的 UMAP 算法的可視化結果如下圖所示:

基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 改進 UMAP 的可視化結果()

通過這種方式,現在 UMAP 的可視化結果可以更緊湊地表示每個叢集,進而可以更清晰地看出叢集結構。正如我們所看到的,比表現的更清晰,可以很容易看出有 5 個主題叢集。

三、系統設計與實作

3.1 系統介紹及流程圖

本系統采用了前後端分離的方式來實作,後端采用 Python 語言編寫,主要工作是核心算法的實作、語料庫爬蟲以及 Web API 的編寫;前端主要使用 JavaScript 語言編寫,主要工作是使用者界面與互動的設計、與後端接口的資料對接、資料可視化。整個系統運作的流程圖如下:

圖 系統運作流程圖

3.2 後端實作過程

3.2.1 架構介紹

在本系統中,我們使用了 SQLAlchemy 作為 SQL 工具包和對象關系映射器,它提供了一套完整的企業級持久化模式,專為高效率和高性能的資料庫通路而設計,簡單易用用,專門為 Python 語言而準備。使用了 FastAPI 作為後端的 Web 架構,它是一個基于 Python3.6+ 建構的現代化、高效率、高性能的 Web 架構,具有以下特點:

  • 快速:非常高的性能,與 NodeJS 和 Go 相當。
  • 高效編碼:将開發特性的速度提高大約 200% 到 300%。
  • 簡易:旨在易于使用和學習,減少閱讀文檔的時間。
  • 穩健:擷取可用于生産環境的代碼,具有自動互動式文檔。
  • 基于标準:基于 API 的開放标準(并與之完全相容):OpenAPI(以前稱為 Swagger)和 JSON Schema。

3.2.2 資料庫 ORM 映射類

在本系統中,我們使用 SQLite 資料庫來存儲語料庫,其中一種語料庫即對應一個表,除了 Bilibili 視訊表和 Bilibili 視訊評論表之間存在關系外,其他的表都是獨立存在的,是以我們隻介紹這 2 個表及對應的 ORM 映射類,其他的表是類似的。ER 圖如下:

基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 資料庫 ER 圖

ORM 映射類主要定義在 models.py 中,所有類都繼承自 declarative_base 類,其中 Bilibili 視訊和視訊評論映射類的定義如下:

基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 ORM 映射類定義

3.2.3 Pydantic 模型類

此類主要是在 API 讀取資料庫并傳回資料時使用的,我們将 API 将傳回資料類型設定為 Pydantic 模型類時,當通過 SQLAlchemy 讀取資料庫并傳回 ORM 映射類對象時,FastAPI 将自動将其轉為相應的 Pydantic 模型類對象,并傳回前端需要的 JSON 資料形式。以 Bilibili 視訊評論為例,相應的 Pydantic 模型類定義如下:

基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 Pydantic 模型類

3.2.4 TextPreprocessing 文本預處理類

此類的主要作用是進行文本預處理工作,核心方法如下:

  • english_split_words():對英文語料庫進行逐文檔分詞。
  • chinese_split_words():對中文語料庫進行逐文檔分詞。
  • feature_extraction():語料庫特征提取,計算詞袋模型、詞頻矩陣以及 TF-IDF 矩陣。
  • get_new_doc_tfidf(doc):在目前語料庫的背景下,計算新文檔的 TF-IDF 矩陣。
  • Start():開始預處理工作,包括分詞和特征提取。

3.2.5 SSNMFTopicModel 非負矩陣分解類

此類的主要工作是進行非負矩陣分解的計算工作,核心方法如下:

  • random_init_wh():随機初始化矩陣 W 和 H。
  • fit_original_nmf_cjlin_nnls():計算原始的 NMF。
  • fit_semi_supervised_nmf_cjlin_nnls():計算帶有使用者互動資訊的半監督 NMF。
  • fit_new_doc(a):拟合新文檔,得到其在目前主題模型背景下的主題分布。

3.2.6 TopicModelTrainingTask 訓練任務類

此類的主要工作是接受前端傳遞的訓練參數,建立訓練對象并進行背景計算工作,以及構造前端需要的可視化資料,核心方法如下:

  • preprocessing():建立文本預處理對象,進行文本預處理工作。
  • start_nmf_and_umap(is_first_training = True):開始 NMF 訓練和 UMAP 降維工作。
  • mmf_training():建立 SSNMFTopicModel 和 UMAP 對象,開始初次 NMF 訓練工作。
  • topic_keyword_optimization():設定主題關鍵詞優化參數,并開始 SSNMF 訓練工作。
  • topic_split ():設定主題拆分參數,并開始 SSNMF 訓練工作。
  • topic_merge():設定主題合并參數,并開始 SSNMF 訓練工作。
  • keyword_induced_topic_create():設定關鍵詞誘導主題建立參數,并開始 SSNMF 訓練工作。
  • document_induced_topic_create():設定文檔誘導主題建立參數,并開始 SSNMF 訓練工作。
  • new_doc_topic_distribution_predict(doc):對新文檔進行主題分布預測計算工作。
  • get_topic_cluster_data():擷取前端主題聚類所需要的可視化資料。

3.2.7 Web API 接口

在 FastAPI 中,當啟動伺服器後,通路http://127.0.0.1:8000/docs,就可以看到自動生成的互動式 API 文檔界面,本系統中的後端 API 如下所示:

基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 後端 Web API 接口一覽

後端接口主要分為三類:

  • 語料庫資料接口:讀取資料庫,傳回相應的語料庫文本資料。
基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 Bilibili 視訊評論資料接口

  • 背景計算任務接口:添加一個 BackgroundTask 并在背景執行,比如文本預處理、NMF、t-SNE 等計算任務。
基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 文本預處理背景計算任務接口

  • 背景計算任務進度資料接口:擷取背景任務的目前計算進度,比如目前疊代次數,中間計算結果等等,傳回的進度資料主要用于前端可視化
基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 文本預處理任務進度接口

  • 資料可視化接口:擷取主題模型訓練的相關資料,比如詞袋模型、主題詳細資訊、文檔詳細資訊、降維文檔節點坐标等,傳回的資料用于前端可視化。
基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 主題詳細資訊接口

3.3 前端實作過程

3.3.1 架構介紹

在本系統中,我們使用了 React 和 antd(Ant Design of React)庫來設計前端:

React 是一個用于建構使用者界面的 JavaScript 庫,它使建立互動式 UI 變得輕而易舉。設計者可以為應用的每一個狀态設計簡潔的視圖,當資料改變時 React 能有效地更新并正确地渲染元件。使用 React 可以建立擁有各自狀态的元件,再由這些元件構成更加複雜的 UI。元件邏輯使用 JavaScript 編寫而非模版,是以設計者可以輕松地在應用中傳遞資料,并使得狀态與 DOM 分離。

antd 是基于 Ant Design 設計體系的 React UI 元件庫,主要用于研發企業級中背景産品。它具有以下特性:

  • 提煉自企業級中背景産品的互動語言和視覺風格。
  • 開箱即用的高品質 React 元件。
  • 使用 TypeScript 開發,提供完整的類型定義檔案。
  • 全鍊路開發和設計工具體系。
  • 數十個國際化語言支援。
  • 深入每個細節的主題定制能力。

3.3.2 介紹界面

此界面是一個簡單的首頁,作用是來向使用者介紹各個語料庫的詳細資訊,如下圖所示:

基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 介紹界面

3.3.3 Bilibili 視訊評論爬蟲界面

此界面主要用于抓取 Bilibili 視訊評論資料,使用者可以在右側的 Bilibili 内嵌網頁中複制自己感興趣的視訊的連結,然後選擇想要爬取的評論頁數,接着爬蟲工具将自動爬取評論并寫入資料庫,最終該視訊下的所有評論就可以被當作一個語料庫來分析了。通過這種方式,使得用于文本分析的語料庫資料更加豐富且靈活了,使用者随時可以抓取并分析自己感興趣的語料資料,而不是從固定的資料中來選擇。

此界面我們是使用 Streamlit[footnoteRef:6]來完成的,它是一個可以讓使用者使用純 Python 來建構 Web 應用的科學工具包。爬蟲功能子產品本身是作為後端的一部分、使用 Python 來編寫的,但是因為爬蟲的過程本身就需要發送大量的網絡請求,且花費的時間比較長,是以如果使用前端展示界面、并與後端互動的方式來實作的話,就比較麻煩且備援了。雖然 Streamlit 的宗旨是讓資料科學家和機器學習工程師能夠在短短幾個小時内建立高效的應用程式,但是用來建立一個簡單的互動式頁面也是非常适合的。

基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 在内嵌網頁中複制自己感興趣的視訊的連結

基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 選擇抓取評論的頁數,爬蟲工具将自動抓取評論并寫入資料庫

3.3.4 語料庫檢視/選擇界面

在此界面中,使用者可以詳細地檢視語料庫中的文檔資料,并勾選自己感興趣的語料庫來作為分析對象。以 Bilibili 視訊評論語料庫為例,操作界面如下若幹圖所示:

基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 檢視已爬取評論資料的視訊,并選擇一個作為待分析的語料庫對象

基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 檢視詳細評論資料

3.3.5 側邊欄主要制界面

在訓練子產品中,我們将控制功能放在一個可收起/展開的側邊欄中,來控制文本預處理、NMF 訓練、UMAP 降維等算法的運作/停止、相應參數的調節。

3.3.6 右側訓練狀态 Tab

這個界面展示了實時的訓練狀态,如下圖所示:

基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 訓練狀态 Tab

3.3.7 詞雲圖 Tab

這個界面會将文本預處理後的詞頻矩陣來可視化為一個詞雲圖,詞頻越高,繪制出的詞越大。使用者可以通過詞雲圖來粗略地分析一下語料庫中的熱詞、主要話題。

基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 詞雲圖 Tab

3.3.8 NMF 疊代誤差折線圖 Tab

在 NMF 計算的過程中,此界面會繪制一個折線圖,來實時地将 NMF 每一次的疊代誤內插補點繪制出來,如下圖所示:

基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 NMF 疊代誤差折線圖

3.3.9 主題聚類可視化 Tab

當 NMF 訓練完成後,系統就會自動進行 UMAP 降維算法。當降維完成後,此界面會将結果中的文檔節點坐标繪制在 3D 叢集圖中,如下圖所示:

基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 3D 主題模型叢集圖

在此 3D 散點圖中,我們提供了多種互動方式:

  • 旋轉、縮放視圖。
  • 将滑鼠停留在某個文檔節點上可檢視其内容。
  • 通過單擊右側的主題摘要 label 可以顯示/隐藏某個主題叢集。
  • 通過輕按兩下右側的主題摘要 labe 可以隐藏除這個主題叢集以外的所有其他主題叢集,再次輕按兩下可以恢複。
基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 隻顯示主題叢集 4,檢視其中的一個文檔節點

3.3.10 文檔詳細資訊抽屜

在 3D 散點圖中,當使用者點選自己感興趣的文檔節點後,就會從右側彈出一個抽屜,來顯示此文檔的詳細資訊,包括文檔内容、文檔詞頻統計和文檔主題分布,如下圖所示:

基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 文檔詳細資訊抽屜

3.3.11 主題詳細資訊抽屜

在 3D 散點圖的左側有一個主題選擇下拉框,當使用者選擇自己感興趣的主題後,就會從右側彈出一個抽屜,來顯示此主題的詳細資訊,包括主題詞項分布和主題硬聚類文檔相關度,如下圖所示:

基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 主題詳細資訊抽屜

3.3.12 使用者互動

本系統中提供了 5 種不同的使用者互動類型,當使用者選擇不同的互動類型時,文檔和主題詳細資訊抽屜、使用者互動 Tab 會顯示不同的界面,每種使用者互動類型的詳細介紹如下:

  • 主題關鍵詞優化:使用者可以在主題詳細資訊抽屜中點選[對此主題進行關鍵詞優化]按鈕,界面就會自動跳轉到使用者互動 Tab,在此界面中,使用者可以詳細調整每個關鍵詞的權重及監督強度,然後就可以通過以上互動資訊來進行 SS-NMF、優化該主題了,如下:
基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 對主題進行關鍵詞優化

基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 對主題關鍵詞權重作出調整,并選擇監督強度

  • 主題拆分:使用者可以在主題詳細資訊抽屜中點選[對此主題進行拆分]按鈕,界面就會自動跳轉到使用者互動 Tab,在此界面中,拆分後的 2 個新主題的關鍵詞權重被初始化為和被拆分主題一樣,然後使用者就可以在此基礎上詳細調整每個主題的關鍵詞權重及監督強度,然後就可以通過以上互動資訊來進行 SS-NMF、拆分主題了,如下:
基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 對主題進行拆分

基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 對拆分後新主題的關鍵詞權重作出調整,并選擇監督強度

  • 主題合并:使用者可以選擇 2 個待合并主題,并在主題詳細資訊抽屜中,對其中一個選中[作為合并主題 1],對另一個選中[作為合并主題 2],接着在使用者互動 Tab 中,合并後新主題的關鍵詞權重被初始化為 2 個被合并主題的關鍵詞權重的平均數,然後使用者就可以在此基礎上詳細調整關鍵詞權重及監督強度,然後就可以通過以上互動資訊來進行 SS-NMF、合并主題了,如下:
基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 待合并主題 1

基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 待合并主題 2

基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 對合并新主題的關鍵詞權重作出調整,并選擇監督強度

  • 關鍵詞誘導的主題建立:使用者可以在主題詳細資訊抽屜中選擇或查找自己感興趣的關鍵詞,選擇完畢後,接着在使用者互動 Tab 中,每個關鍵詞的權重被初始化為 1,然後使用者就可以在此基礎上詳細調整每個關鍵詞的權重及監督強度,然後就可以通過以上互動資訊來進行 SS-NMF、誘導建立新主題了,如下:
基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 選擇或查找感興趣的關鍵詞

基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 對新主題的關鍵詞權重作出調整,并選擇監督強度

  • 文檔誘導的主題建立:使用者可以選擇幾個感興趣的文檔,并在文檔詳細資訊抽屜中勾選[作為建立新主題的誘導文檔之一],選擇完畢後,接着在使用者互動 Tab 中,新主題與每個誘導文檔的相關度被初始化為 1,然後使用者就可以在此基礎上詳細調整每個主題與每個文檔的相關度及監督強度,然後就可以通過以上互動資訊來進行 SS-NMF、誘導建立新主題了,如下:

圖 勾選感興趣的文檔作為新主題建立的誘導文檔之一

基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 對新主題的誘導文檔相關度作出調整,并選擇監督強度

3.3.13 新文檔主題分布預測

使用者可以通過目前已訓練的主題模型來對新文檔進行拟合,進而計算出新文檔的主題分布,如下圖所示:

基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 預測新文檔的主題分布

四、算法定量分析及比較

在本章節中,我們會從性能、收斂速度、多次運作的一緻性方面來将 NMF 算法與 LDA 算法進行對比及分析,為了使結果具有可對比性,我們對以上 2 個算法采用了等價的輸入參數:

語料庫:Bilibili 視訊網站的電影評論

輸入矩陣 A 規模:

  • 假設主題數 k:10
  • 最大疊代次數 max_iter:1000
  • NMF 誤差停止門檻值 tolerance:1e-4
  • LDA 困惑度停止門檻值 perp_tol:1e-1
  • 評估周期 evaluate_every(每隔幾次疊代進行一次停止條件判斷):1

4.1 性能及收斂速度

對于以上輸入,NMF 花費了 17.4 秒進行了 23 次疊代,而 LDA 花費了 74.2 秒進行了 92 次疊代,NMF 的疊代誤差折線圖及 LDA 的疊代困惑度折線圖如下:

基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 NMF 疊代誤差折線圖

圖 LDA 疊代困惑度折線圖

從以上運作結果可以看出,NMF 與 LDA 相比,平均疊代一次所花費的時間相差不大,但是 NMF 比 LDA 收斂得更快,NMF 差不多在第 15 次疊代時誤差就平穩下來了,而 LDA 直到第 40 次疊代時困惑度才趨于穩定。

4.2 多次運作的一緻性

在本小節中,我們讓 NMF 和 LDA 算法在同樣的輸入參數上分别運作 2 次,并擷取每次運作結果的主題摘要(即與主題相關度最大的前幾個單詞),來測試算法多此運作的一緻性,結果如下:

表 NMF 和 LDA 分别運作 2 次的主題摘要

NMF 第 1 次 NMF 第 2 次 LDA 第 1 次 LDA 第 2 次
主題 1 喜歡,誠,新海 喜歡,誠,新海 嗚嗚,身份證,名字 厘米,每秒,速度
主題 2 東京,泷,三葉 東京,泷,三葉 三葉,名字,電影 電影,三葉,名字
主題 3 去年,今天,單身 去年,今天,單身 厘米,每秒,速度 買,之子,天氣
主題 4 站,這部,電影 站,這部,電影 年,今年,單身 名字,茂,宮本
主題 5 日,月,年 日,月,年 超級,迷茫,煙花 點,釘,分
主題 6 站,刷,彈幕 站,刷,彈幕 買,之子,天氣 智商,彈幕,關
主題 7 一個,哭,現在 一個,哭,現在 江戶,太,好看 小女孩,真快,過得
主題 8 厘米,每秒,速度 厘米,每秒,速度 名字,茂,宮本 名字,号碼,身份證
主題 9 買,之子,天氣 買,之子,天氣 大三,釘,女 次,好看,太
主題 10 茂,宮本,名字 茂,宮本,名字 說,分手,名字 名字,雲南,三刷

從以上結果可以看出,在 NMF 的情況下,主題摘要顯示完全相同,但 LDA 似乎有部分主題的位置發生了變化,例如第 1 次運作結果中的主題 3 在第 2 次運作結果中變成主題 1 了,而且有部分主題在 2 次運作結果中的差異非常大,例如主題 4 第 1 次的主題摘要是(“年”,“今年”,“單身”),而第 2 次是(“名字”,“茂”,“宮本”)。

這些實驗結果意味着當 LDA 應用于可視化分析領域時需要考慮的重要實際問題,因為使用者不能保證他們目前運作得到的 LDA 結果是最适合他們分析的結果。例如,一個 LDA 結果可能無法顯示某個感興趣的特定主題,而其他一些結果則可以。為了解決這個問題,使用者可以多次運作 LDA,看看是否會出現任何有趣的差異,但是這個過程可能會變得非常耗時,因為 LDA 的運作時間非常長,而且還需要比較不同 LDA 的結果。

同時,LDA 算法的這種随機性本質上使使用者無法控制算法過程。具體而言,假設使用者從特定的運作中獲得了一個 LDA 結果,但是他/她希望通過稍微修改 LDA 算法的初始規範(例如 LDA 的初始化和參數)來改善結果。但是,由于基于采樣的 LDA 算法不僅受到初始規範的影響,而且還受到每次疊代随機生成的樣本的影響,是以這種使用者幹預可能會産生與使用者先前完全不同的結果。相反,在大多數确定性算法(例如我們使用的 NMF)中,隻要使用者确定了初始規範,結果就可以被複制,是以使用者可以在運作算法時隔離和控制其幹預的效果。

五、使用案例

在本節中,我們将展示幾種使用場景,這些場景展示了本文中基于 SS-NMF 的互動式主題模型可視化分析系統的若幹功能,以及以使用者驅動的方式來改善主題模型的結果。

5.1 Bilibili 視訊評論資料

在本小節中,我們以 Bilibili 網站的生活 > 美食分區下的的視訊評論作為分析對象。首先,我們将主題數設定為 5,運作初次 NMF 訓練,結果如下:

基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 初次訓練結果

從結果中的主題摘要可以看出,主題 0 和主題 1 有些許相似,而且在 3D 散點圖中相應的主題叢集也靠的比較近,是以我們決定對其進行進一步的分析,分别檢視主題 0 和 1 的詳細資訊,如下:

基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 主題 0 詳細資訊

基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 主題 1 詳細資訊

從以上分析可以看出,主題 0 和主題 1 确實比較相似,且主題下的文檔主要是圍繞着“盜月社”、“視訊”、“溫暖”、“喜歡”這幾個關鍵詞來展開的。是以,我們決定對主題 0 和 1 進行合并,并對其關鍵詞權重進行調整,如下:

基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 合并後新主題的關鍵詞權重

調整完成後,我們将監督強度設定為 5,并運作 SS-NMF 訓練,新的結果如下:

圖 進行主題合并後的訓練結果

基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 合并後新主題的詳細資訊

接下來我們将注意力集中到主題 3 上,它是這 4 個主題叢集中規模最大的,主要的關鍵詞是“菜市場”、“吃”、“想”、“上海”、“好吃”,我們想要将其拆分為 2 個主題,其中一個主要關于“菜市場”、“回憶”,另一個主要關于“上海”、“好吃”、“地方”,如下:

基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 調整拆分後新主題 3 和 4 的關鍵詞權重

調整完成後,我們将監督強度都設定為 5,并運作 SS-NMF 訓練,新的結果如下:

基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 主題拆分後的訓練結果

圖 拆分後新主題 3 的詳細資訊

基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 拆分後新主題 4 的詳細資訊

5.2 外賣使用者評價資料

在本小節中,我們以餓了麼、美團外賣平台上的使用者評價資料作為分析對象。首先,我們将主題數設定為 10,運作初次 NMF 訓練,結果如下:

基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 初次訓練結果

我們注意到主題 5 主要是關于外賣難吃的,也就是說這個主題叢集很可能包含對産品的負面評價,但是像“吃”這樣的關鍵詞在此資料集中并沒有多大意義,是以我們對其進行關鍵詞優化,如下:

基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 調整主題 5 的關鍵詞權重

調整完成後,我們将監督強度設定為 5,并運作 SS-NMF 訓練,新的結果如下:

圖 關鍵詞優化後的訓練結果

基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 關鍵詞優化後主題 5 的詳細資訊

現在,我們想看看是否有任何與外賣包裝有關的問題,是以我們使用“包裝”、“漏”、“破”等關鍵詞來誘導建立新主題,如下:

圖 關鍵詞誘導建立新主題

調整完成後,我們将監督強度設定為 5,并運作 SS-NMF 訓練,新的結果如下:

基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 關鍵詞誘導後的訓練結果

基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 關鍵詞誘導建立的新主題的詳細資訊

5.3 新冠病毒新聞資料

在本小節中,我們以有關 2020 年新冠病毒 COVID-19 的 CBC 新聞報道作為分析對象,首先,我們将主題數設定為 10,運作初次 NMF 訓練,結果如下:

基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 初次訓練結果

我們發現主題 5 中出現了“china”一詞,于是對該主題下的文檔進行分析,發現了其中一篇主要關于湖北、武漢的新聞文檔:

基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 一篇關于湖北武漢的新聞報道

我們現在想要看一看有關湖北武漢的新聞報道,于是使用這個文檔進行了文檔誘導的主題建立,如下:

基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 文檔誘導建立新主題

基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 文檔誘導後的訓練結果

在文檔誘導産生的新主題 10 中,我們發現了若幹篇與武漢相關的新聞報道,其中幾篇的部分片段如下:

基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 文檔 746

基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 文檔 3299

基于 LDA SS-NMF 的文本主題分析可視化分析系統 畢業設計 附完整代碼一、緒論二、核心算法三、系統設計與實作四、算法定量分析及比較五、使用案例六、總結及展望

圖 文檔 818

六、總結及展望

主題模型是機器學習的新興領域,有着廣泛的應用場景,且還有很多新方向亟待探索。在本文中,我們提出了一個基于 NMF 的互動式主題模組化可視化分析系統。與廣泛使用的主題模組化方法 LDA 相比,NMF 從多次運作的一緻性和早期的經驗收斂性等方面具有很多實際的優勢。此外,基于半監督公式的 NMF 能夠以直覺的方式将使用者輸入整合進來。通過實作半監督 NMF,我們提供了 5 種有用的互動功能:主題關鍵詞優化、主題合并、主題拆分、文檔誘導的主題建立和關鍵詞誘導的主題建立。其次,我們介紹了本系統的幾個關鍵優勢,如改進的 UMAP 算法,NMF 和 UMAP 的可視化,以支援各種使用者互動。最後,我們通過在幾個資料集中靈活地應用所支援的互動,展示了本系統的能力。

當然,本系統還有很多值得改進和研究的方向,比如讓使用者可以導入自定義語料庫,并對其進行篩選、文本清理等功能;在處理大型語料庫時,可以考慮将 NMF 的中間輸出可視化給使用者,這樣可以實時地進行使用者互動,而不是要等到疊代完成後才進行;豐富主題的摘要功能,而不是簡單的關鍵詞摘要,這些功能可以顯示語義上有意義的短語或代表性的句子,這将使使用者對結果主題有更全面的了解;考慮在并行化的分布式 NMF 算法的基礎上,改進本系統處理大規模資料的性能。

完整代碼:https://download.csdn.net/download/qq_38735017/87427066