當前位置: 首頁>>機器學習>>正文


pyspark LDA模型示例

潛在的Dirichlet分配(LDA),是專為文本文檔設計的主題模型。

術語說明:

  • “word”=“term”:詞匯表的元素。
  • “token”:出現在文檔中的term的實例。
  • “topic”:主題,表示某種概念的詞的多項分布。
  • “document”: 文檔,一段文本。

參考文獻:原始LDA論文 (journal version): Blei, Ng, and Jordan. “Latent Dirichlet Allocation.” JMLR, 2003。

pyspark LDA

要在pyspark中應用LDA主題模型(spark python版LDA),可以使用pyspark.mllib.clustering.LDA類的方法train, 該方法的聲明如下:

train(rdd, k=10, maxIterations=20, docConcentration=-1.0, topicConcentration=-1.0, seed=None, checkpointInterval=10, optimizer='em')

LDA.train方法的參數說明

  • rdd – 文檔的RDD,它們是文檔ID和單詞(word)計數向量的元組。單詞計數向量是具有固定大小詞匯(其中詞匯大小是向量的長度)的“詞袋”。文檔ID必須是唯一的並且 >= 0。
  • k – 推斷的主題數量,即軟聚類中心數。 (默認值:10)
  • maxIterations – 允許的最大迭代次數。 (默認值:20)
  • docConcentration – 文檔集中度參數(通常稱為“alpha”),用於文檔在主題上分布(“theta”)的先驗。 (默認值:-1.0)
  • topicConcentration – 主題集中度參數(通常稱為“beta”或“eta”),用於主題在單詞分布上的先驗。 (默認值:-1.0)
  • seed – 用於聚類初始化的隨機種子。根據係統時間設置為無生成種子。 (默認值:無)
  • checkpointInterval – 檢查點之間的周期(迭代)。 (默認值:10)
  • optimizer – 用於執行實際計算的LDAOptimizer。目前支持“em”,“online”。 (默認:“em”)

LDA建模示例

訓練LDA模型並輸出模型內容

>>> from pyspark.mllib.linalg import Vectors
>>> from numpy.testing import assert_almost_equal, assert_equal
>>> data = [
...     [1, Vectors.dense([0.0, 1.0])],
...     [2, SparseVector(2, {0: 1.0})],
... ]
>>> rdd =  sc.parallelize(data)
>>> model = LDA.train(rdd, k=2, seed=1)
>>> model.vocabSize()
2
>>> model.describeTopics()
[([1, 0], [0.5..., 0.49...]), ([0, 1], [0.5..., 0.49...])]
>>> model.describeTopics(1)
[([1], [0.5...]), ([0], [0.5...])]

LDA模型效果驗證

>>> topics = model.topicsMatrix()
>>> topics_expect = array([[0.5,  0.5], [0.5, 0.5]])
>>> assert_almost_equal(topics, topics_expect, 1)

LDA模型文件的保存和讀取

>>> import os, tempfile
>>> from shutil import rmtree
>>> path = tempfile.mkdtemp()
### 保存LDA模型
>>> model.save(sc, path)
#### 加載LDA模型
>>> sameModel = LDAModel.load(sc, path)
>>> assert_equal(sameModel.topicsMatrix(), model.topicsMatrix())
>>> sameModel.vocabSize() == model.vocabSize()
True
>>> try:
...     rmtree(path)
... except OSError:
...     pass

pyspark LDA模型的最新介紹參考:LDA

本文由《純淨天空》出品。文章地址: https://vimsky.com/zh-tw/article/3392.html,未經允許,請勿轉載。