導航:首頁 > 數據分析 > lDA主題模型最少需要多少數據

lDA主題模型最少需要多少數據

發布時間:2022-09-03 09:04:57

『壹』 NLP系列(三)LDA主題模型

LDA模型是NLP中很基礎也是大家廣為熟知的模型,在面試過程也經常遇到。本文簡單講述下其大致流程。

首先,我們來感受下LDA是什麼,

看來,不同人在不同場景下對LDA的認識,那我們看下網路的解釋:

看到這里我們只需要先記住: LDA的目的就是要識別主題,即把文檔—詞彙矩陣變成文檔—主題矩陣(分布)和主題—詞彙矩陣(分布)

對於語料庫中的每篇文檔,LDA定義了如下生成過程(generativeprocess):
1.對每一篇文檔,從主題分布中抽取一個主題;
2.從上述被抽到的主題所對應的單詞分布中抽取一個單詞;
3.重復上述過程直至遍歷文檔中的每一個單詞。

語料庫中的每一篇文檔與T(通過反復試驗等方法事先給定)個主題的一個多項分布 (multinomialdistribution)相對應,將該多項分布記為θ。每個主題又與詞彙表(vocabulary)中的V個單詞的一個多項分布相對應,將這個多項分布記為φ。

LDA的核心公式如下:
p(w|d)=p(w|t)*p(t|d)
直觀的看這個公式,就是以Topic作為中間層,可以通過當前的θd和φt給出了文檔d中出現單詞w的概率。其中p(t|d)利用θd計算得到,p(w|t)利用φt計算得到。
實際上,利用當前的θd和φt,我們可以為一個文檔中的一個單詞計算它對應任意一個Topic時的p(w|d),然後根據這些結果來更新這個詞應該對應的topic。然後,如果這個更新改變了這個單詞所對應的Topic,就會反過來影響θd和φt。

LDA演算法開始時,先隨機地給θd和φt賦值(對所有的d和t)。然後上述過程不斷重復,最終收斂到的結果就是LDA的輸出。再詳細說一下這個迭代的學習過程:
1.針對一個特定的文檔ds中的第i單詞wi,如果令該單詞對應的topic為tj,可以把上述公式改寫為:
pj(wi|ds)=p(wi|tj)*p(tj|ds)
2.現在我們可以枚舉T中的topic,得到所有的pj(wi|ds),其中j取值1~k。然後可以根據這些概率值結果為ds中的第i個單詞wi選擇一個topic。最簡單的想法是取令pj(wi|ds)最大的tj(注意,這個式子里只有j是變數),即argmax[j]pj(wi|ds)
3.然後,如果ds中的第i個單詞wi在這里選擇了一個與原先不同的topic,就會對θd和φt有影響了(根據前面提到過的這兩個向量的計算公式可以很容易知道)。它們的影響又會反過來影響對上面提到的p(w|d)的計算。對D中所有的d中的所有w進行一次p(w|d)的計算並重新選擇topic看作一次迭代。這樣進行n次循環迭代之後,就會收斂到LDA所需要的結果了。

N個文檔組成的語料庫(𝐷 1,𝐷 2,"……" ,𝐷 𝑛),由V個片語成的詞彙表。矩陣中的值表示了詞𝑊𝑗 〖在文檔𝐷〗 𝑖 中出現的頻率,主題用Z表示,下面對語料庫中的每一個word隨機指派一個主題編號𝑍 𝑖,統計每個𝑍_𝑖下出現的word次數,可得一個主題—詞彙矩陣。

統計每個詞代表的主題在每一個文檔中出現的次數,可得出以下矩陣文檔—主題矩陣

以上講了大致LDA的感性認識,如果進行嚴格的數學推導請看這篇文章( https://www.jianshu.com/p/74ec7d5f6821 ),本人認為是看到的不錯的文章。

LDA對自己一直是一個謎,看了網上的很多資料,然後整理了幾篇不錯的,我在這里貼出來。本篇文章主要大致了解了下LDA的大致流程,如果真正搞懂其背後數學原理,還得反復看一下下面的文章:

LDA(LDA文檔主題生成模型)_網路

『貳』 我是這樣一步步理解--主題模型(Topic Model)、LDA(案例代碼)

LDA可以分為以下5個步驟:

關於LDA有兩種含義,一種是線性判別分析(Linear Discriminant Analysis),一種是概率主題模型: 隱含狄利克雷分布(Latent Dirichlet Allocation,簡稱LDA) ,本文講後者。

按照wiki上的介紹,LDA由Blei, David M.、Ng, Andrew Y.、Jordan於2003年提出,是一種主題模型,它可以將文檔集 中每篇文檔的主題以概率分布的形式給出,從而通過分析一些文檔抽取出它們的主題(分布)出來後,便可以根據主題(分布)進行主題聚類或文本分類。同時,它是一種典型的詞袋模型,即一篇文檔是由一組詞構成,詞與詞之間沒有先後順序的關系。此外,一篇文檔可以包含多個主題,文檔中每一個詞都由其中的一個主題生成。

人類是怎麼生成文檔的呢?首先先列出幾個主題,然後以一定的概率選擇主題,以一定的概率選擇這個主題包含的詞彙,最終組合成一篇文章。如下圖所示(其中不同顏色的詞語分別對應上圖中不同主題下的詞)。

那麼LDA就是跟這個反過來: 根據給定的一篇文檔,反推其主題分布。

在LDA模型中,一篇文檔生成的方式如下:

其中,類似Beta分布是二項式分布的共軛先驗概率分布,而狄利克雷分布(Dirichlet分布)是多項式分布的共軛先驗概率分布。此外,LDA的圖模型結構如下圖所示(類似貝葉斯網路結構):

先解釋一下以上出現的概念。

至此,我們可以看到二項分布和多項分布很相似,Beta分布和Dirichlet 分布很相似。

如果想要深究其原理可以參考: 通俗理解LDA主題模型 ,也可以先往下走,最後在回過頭來看詳細的公式,就更能明白了。

總之, 可以得到以下幾點信息。

在講LDA模型之前,再循序漸進理解基礎模型:Unigram model、mixture of unigrams model,以及跟LDA最為接近的pLSA模型。為了方便描述,首先定義一些變數:

反過來,既然文檔已經產生,那麼如何根據已經產生好的文檔反推其主題呢?這個利用看到的文檔推斷其隱藏的主題(分布)的過程(其實也就是產生文檔的逆過程),便是 主題建模的目的:自動地發現文檔集中的主題(分布)。

文檔d和詞w是我們得到的樣本,可觀測得到,所以對於任意一篇文檔,其 是已知的。從而可以根據大量已知的文檔-詞項信息 ,訓練出文檔-主題 和主題-詞項 ,如下公式所示:

故得到文檔中每個詞的生成概率為:

由於 可事先計算求出,而 和 未知,所以 就是我們要估計的參數(值),通俗點說,就是要最大化這個θ。

用什麼方法進行估計呢,常用的參數估計方法有極大似然估計MLE、最大後驗證估計MAP、貝葉斯估計等等。因為該待估計的參數中含有隱變數z,所以我們可以考慮EM演算法。詳細的EM演算法可以參考之前寫過的 EM演算法 章節。

事實上,理解了pLSA模型,也就差不多快理解了LDA模型,因為LDA就是在pLSA的基礎上加層貝葉斯框架,即LDA就是pLSA的貝葉斯版本(正因為LDA被貝葉斯化了,所以才需要考慮歷史先驗知識,才加的兩個先驗參數)。

下面,咱們對比下本文開頭所述的LDA模型中一篇文檔生成的方式是怎樣的:

LDA中,選主題和選詞依然都是兩個隨機的過程,依然可能是先從主題分布{教育:0.5,經濟:0.3,交通:0.2}中抽取出主題:教育,然後再從該主題對應的詞分布{大學:0.5,老師:0.3,課程:0.2}中抽取出詞:大學。

那PLSA跟LDA的區別在於什麼地方呢?區別就在於:

PLSA中,主題分布和詞分布是唯一確定的,能明確的指出主題分布可能就是{教育:0.5,經濟:0.3,交通:0.2},詞分布可能就是{大學:0.5,老師:0.3,課程:0.2}。
但在LDA中,主題分布和詞分布不再唯一確定不變,即無法確切給出。例如主題分布可能是{教育:0.5,經濟:0.3,交通:0.2},也可能是{教育:0.6,經濟:0.2,交通:0.2},到底是哪個我們不再確定(即不知道),因為它是隨機的可變化的。但再怎麼變化,也依然服從一定的分布, 即主題分布跟詞分布由Dirichlet先驗隨機確定。正因為LDA是PLSA的貝葉斯版本,所以主題分布跟詞分布本身由先驗知識隨機給定。

換言之,LDA在pLSA的基礎上給這兩參數 加了兩個先驗分布的參數(貝葉斯化):一個主題分布的先驗分布Dirichlet分布 ,和一個詞語分布的先驗分布Dirichlet分布 。

綜上,LDA真的只是pLSA的貝葉斯版本,文檔生成後,兩者都要根據文檔去推斷其主題分布和詞語分布(即兩者本質都是為了估計給定文檔生成主題,給定主題生成詞語的概率),只是用的參數推斷方法不同,在pLSA中用極大似然估計的思想去推斷兩未知的固定參數,而LDA則把這兩參數弄成隨機變數,且加入dirichlet先驗。

所以,pLSA跟LDA的本質區別就在於它們去估計未知參數所採用的思想不同,前者用的是頻率派思想,後者用的是貝葉斯派思想。

LDA參數估計: Gibbs采樣 ,詳見文末的參考文獻。

推薦系統中的冷啟動問題是指在沒有大量用戶數據的情況下如何給用戶進行個性化推薦,目的是最優化點擊率、轉化率或用戶 體驗(用戶停留時間、留存率等)。冷啟動問題一般分為用戶冷啟動、物品冷啟動和系統冷啟動三大類。

解決冷啟動問題的方法一般是基於內容的推薦。以Hulu的場景為例,對於用 戶冷啟動來說,我們希望根據用戶的注冊信息(如:年齡、性別、愛好等)、搜 索關鍵詞或者合法站外得到的其他信息(例如用戶使用Facebook賬號登錄,並得 到授權,可以得到Facebook中的朋友關系和評論內容)來推測用戶的興趣主題。 得到用戶的興趣主題之後,我們就可以找到與該用戶興趣主題相同的其他用戶, 通過他們的歷史行為來預測用戶感興趣的電影是什麼。

同樣地,對於物品冷啟動問題,我們也可以根據電影的導演、演員、類別、關鍵詞等信息推測該電影所屬於的主題,然後基於主題向量找到相似的電影,並將新電影推薦給以往喜歡看這 些相似電影的用戶。 可以使用主題模型(pLSA、LDA等)得到用戶和電影的主題。

以用戶為例,我們將每個用戶看作主題模型中的一篇文檔,用戶對應的特徵 作為文檔中的單詞,這樣每個用戶可以表示成一袋子特徵的形式。通過主題模型 學習之後,經常共同出現的特徵將會對應同一個主題,同時每個用戶也會相應地 得到一個主題分布。每個電影的主題分布也可以用類似的方法得到。

那麼如何解決系統冷啟動問題呢? 首先可以得到每個用戶和電影對應的主題向量,除此之外,還需要知道用戶主題和電影主題之間的偏好程度,也就是哪些主題的用戶可能喜歡哪些主題的電影。當系統中沒有任何數據時,我們需要一些先驗知識來指定,並且由於主題的數目通常比較小,隨著系統的上線,收集到少量的數據之後我們就可以對主題之間的偏好程度得到一個比較准確的估計。

通俗理解LDA主題模型

LDA模型應用:一眼看穿希拉里的郵件

【 機器學習通俗易懂系列文章 】

『叄』 spark mllib lda主題模型一般迭代多少次

1.1 LDA實例

實例步驟:

1)載入數據

返回的數據格式為:documents: RDD[(Long, Vector)],其中:Long為文章ID,Vector為文章分詞後的詞向量;用戶可以讀取指定目錄下的數據,通過分詞以及數據格式的轉換,轉換成RDD[(Long, Vector)]即可。

2)建立模型

模型參數設置說明:

k: 主題數,或者聚類中心數

DocConcentration:文章分布的超參數(Dirichlet分布的參數),必需>1.0

TopicConcentration:主題分布的超參數(Dirichlet分布的參數),必需>1.0

MaxIterations:迭代次數

setSeed:隨機種子

CheckpointInterval:迭代計算時檢查點的間隔

Optimizer:優化計算方法,目前支持"em", "online"

3)結果輸出

topicsMatrix以及topics(word,topic))輸出。

實例代碼如下:

[java] view plain
import org.apache.log4j.{ Level, Logger }
import org.apache.spark.{ SparkConf, SparkContext }
import org.apache.spark.mllib.clustering.LDA
import org.apache.spark.mllib.linalg.Vectors

object lda {

def main(args: Array[String]) {
//0 構建Spark對象
val conf = new SparkConf().setAppName("lda")
val sc = new SparkContext(conf)
Logger.getRootLogger.setLevel(Level.WARN)

//1 載入數據,返回的數據格式為:documents: RDD[(Long, Vector)]
// 其中:Long為文章ID,Vector為文章分詞後的詞向量
// 可以讀取指定目錄下的數據,通過分詞以及數據格式的轉換,轉換成RDD[(Long, Vector)]即可
val data = sc.textFile("data/mllib/sample_lda_data.txt")
val parsedData = data.map(s => Vectors.dense(s.trim.split(' ').map(_.toDouble)))
// Index documents with unique IDs
val corpus = parsedData.zipWithIndex.map(_.swap).cache()

//2 建立模型,設置訓練參數,訓練模型
/**
* k: 主題數,或者聚類中心數
* DocConcentration:文章分布的超參數(Dirichlet分布的參數),必需>1.0
* TopicConcentration:主題分布的超參數(Dirichlet分布的參數),必需>1.0
* MaxIterations:迭代次數
* setSeed:隨機種子
* CheckpointInterval:迭代計算時檢查點的間隔
* Optimizer:優化計算方法,目前支持"em", "online"
*/
val ldaModel = new LDA().
setK(3).
setDocConcentration(5).
setTopicConcentration(5).
setMaxIterations(20).
setSeed(0L).
setCheckpointInterval(10).
setOptimizer("em").
run(corpus)

//3 模型輸出,模型參數輸出,結果輸出
// Output topics. Each is a distribution over words (matching word count vectors)
println("Learned topics (as distributions over vocab of " + ldaModel.vocabSize + " words):")
val topics = ldaModel.topicsMatrix
for (topic <- Range(0, 3)) {
print("Topic " + topic + ":")
for (word <- Range(0, ldaModel.vocabSize)) { print(" " + topics(word, topic)); }
println()
}

}

}

『肆』 01 主題模型 - 大綱

主題模型 是機器語言在自然語言處理中的一個應用,主要做的是無監督的任務。

一般情況下,如果我們拿到一篇文章,這篇文章是無標記的文章。我希望通過機器學習的相關演算法,幫助我們得到文章的分類結果。這是我們的初衷。

之前提到過,在傳統的聚類演算法中,當我們的數據量足夠大、特徵非常多的時候, 我們的距離度量公式就相對得失去了某種意義。即高維的數據會面臨維度爆炸的問題,高維空間里邊邊角角里的數據之間的距離就沒有什麼意思了。如果距離的度量失效,那麼聚類演算法的結果就會非常差。

因此,傳統的無監督的演算法在處理文本分類的時候就起不到很好的作用了。因為文本分類在特徵處理的時候我們會使用詞袋法和TF-IDF,這些方法基於我們的語料庫生成一個當前文章的詞向量,即根據單詞在文章中出現的頻率/頻數,來決定詞向量中每一個元素的大小。

相對而來,生成的詞向量是比較稀疏的,因為一篇文章中不太可能包含語料庫中的所有片語。這種情況下怎麼辦呢? 我們引入了主題模型來解決這種距離度量失效的情況。 相對來說,這個結果可能會稍微的好一些。

但目前業界中,對主題模型的爭議也比較大。很多人也認為主題模型的效果不太好。或者可以這么理解:模型再好,不如語料好。即, 優質的語料可以幫助提高文章分類的效果,不管你用的是什麼模型。

根據 LSA模型 ,引申出了一個基於概率的模型PLSA, PLSA模型 本質上是一個生成式模型。

之前在聊統計學的時候,我們認為 統計學 是分兩個學派的:
1、傳統統計學的頻率派;
2、貝葉斯學派。
實際上 頻率派 在傳統統計學中,我們認為其少了一個先驗條件。
貝葉斯 認為世界上任何一件事情的發生都是由之前的某些事情來決定的。
所以貝葉斯要考慮很多先驗條件。即 P(A|B) = P(A)×P(B|A)/P(B); 貝葉斯考慮A事件發生概率前,先要考慮其後驗條件B;

LDA模型 是基於PLSA這個模型,在加入了一些先驗的條件後得到的一個主題模型。

傳統判斷兩個文檔相似性的方法是通過查看兩個文檔共同出現的單詞的多少,如TF-IDF等,這種方法沒有考慮到文字背後的語義關聯,可能在兩個文檔共同出現的單詞很少甚至沒有,但兩個文檔是相似的。

舉個例子,有兩個句子分別如下:
「喬布斯離我們而去了。」
蘋果價格會不會降?

實際上有生活常識的人都知道,一個公司的創始人去世後,意味著股價肯定會跌。所以上面兩句話本質上在說蘋果公司的事情,但這兩句話中沒有任何一個詞是一樣的。如果我們用傳統的詞袋法去分析,我們會發現兩篇文章的相似度是0。 這種情況下我們得考慮主題模型。




主題模型 (Topic Model)是用來在一系列文檔中發現 抽象主題 的一種統計模型。直觀來講,如果一篇文章有一個中心思想,那麼一定存在一些特定詞語會出現的比較頻繁。比方說,如果現在一篇文章是在講蘋果公司的,那麼「喬布斯」和「IPhone」等詞語出現的頻率會更高一些;如果現在一篇文章是在描述微軟公司的,那麼「Windows」和「Microsoft」等詞語出現的頻率會更高一些;但真實情況下,一篇文章中通常包含多種主題,而且每個主題所佔的比例各不相同,比如一篇文章中10%和蘋果公司有關,90%和微軟公司有關,那麼和微軟有關的關鍵字出現的次數應該是蘋果關鍵字出現次數的9倍。

主題模型就是一種自動分析每個文檔,統計文檔內詞語,根據統計的信息判斷當前文檔包含哪些主題以及各個主題所佔比例各為多少。

主題模型是對文本中隱含主題的一種建模方法,每個主題其實是詞表上單詞的概率分布;

主題模型是一種生成模型,一篇文章中每個詞都是通過「以一定概率選擇某個主題,並從這個主題中以一定概率選擇某個詞語」這樣一個過程得到的;

模擬一個自由撰稿人的寫作思路:

1、作者為寫一篇文章構思了很多主題→以72%的概率選中了「蘋果公司」為主題寫文章→以0.23%的概率以「籃球」這個詞開頭寫這篇文章。→以87%的概率以「Iphone」這個詞為第二段的開頭。

2、作者為寫一篇文章構思了很多主題→以5%的概率選中了「籃球」為主題寫文章→以90%的概率以「某個球星」這個詞開頭寫這篇文章。→以0.035%的概率以「Iphone」這個詞為第二段的開頭。

分析 以我們對社會的認知,我們知道當以蘋果公司為主題時寫的文章,Iphone這個詞出現的概率,會比以籃球為主題寫文章時出現的概率高很多。反之在以籃球為主題寫文章時,Iphone這個詞可能就壓根不會出現。

我們想對當前文章生成一個主題的時候,我們會從文章庫中進行尋找。比如現在是NBA的休賽期,我們認為在新聞發布的文章庫中,NBA的新聞出現的比較少。而當蘋果開新的發布會時,我們認為新聞文章庫中,蘋果公司主題的文章會變多。

本質上我們剛剛構建的兩個 自由撰稿人的寫作思路 是一個貝葉斯網路。

結合上述這些基本概念我們來看下面的公式:

分析公式:
首先思考:P(片語,主題,文章) = P(w,t,d) 的聯合概率如何求?

主題模型 克服了傳統信息檢索中文檔相似度計算方法的缺點,並且能夠在 海量的數據中找出文字間的語義主題 。主題模型在自然語言和給予文本的搜索上起到了重要的作用。

怎樣才能生成主題?對文章的主題應該怎麼分析?這是主題模型要解決的問題。

02 主題模型 - SVD矩陣分解、LSA模型

『伍』 LDA 原理說明

LDA為latent Dirichlet allocation的簡稱,是一個生成式模型,是一種主題模型,無監督度學習方法。其基本假設是一篇文檔是一個詞袋,由多個片語成,與詞的順序無關,它可以有多個主題(topic),並且文檔中的詞都和這些主題相關。這里使用sparse dirichlet的原因是,一個主題中的詞的概率分布是被修剪過得,所以僅有一小部分詞的概率較大,這就和實際場景更加貼近

先定義幾個簡寫表示:
①詞袋錶示為D,詞袋中有V個詞,裡面有M篇文檔,每個文檔的長度為Ni(文檔中含有N個詞);
②α為每個文檔的主題分布的先驗dirichlet分布的參數;(這里簡單說明一下dirichlet分布,見文章最後)
③β為每個主題詞分布的先驗dirichlet分布的參數 ;
④Θi文檔i的主題分布,為多項式分布,但受到參數為α的Dirichlet先驗分布控制;
⑤φk為主題k的詞分布,k∈[0,K],為多項式分布,但受到參數為β的Dirichlet先驗分布控制;
⑥ωij為具體的詞,這是和①中的已知量,其他的均為變數;
⑦zij為第i篇文檔的第j個詞的主題;

統計說明如下:

從dirichlet分布α中取樣生成文檔i的主題分布Θ i (Θ i ~Dir(α),α<1)

從主題k的多項式分布φ k 中取樣生成的文檔i的第j個詞的主題z ij

從dirichlet分布β中取樣生成主題詞z ij 的詞語分布φz ij

從詞語的多項式分布φz ij 中重采樣最終生成詞語ω ij

那麼,模型的聯合分布(生成詞w的概率)為:

最終,文檔i的單詞分布集對Θ i 、φ求積分,對z ij 求和,(因為有一篇文檔假設由K個主題組成,每個主題k滿足多項式分布,並且文檔包含j個詞)得到:

根據p(ω i |α,β)的最大似然估計,最終可以通過EM/吉布斯采樣估計出模型中的參數。

對文檔中的所有詞遍歷一遍為其隨機分配一個主題(zij),即zij符合mult(1/K),將文檔i中k主題出現的次數、文檔i中主題數量和、k主題對應的某個詞的次數、主題k的總詞數,這4個變數都加1。
之後,開始重復迭代尋優。

例如,文檔i的詞ωij對應的主題為k,根據LDA中topic sample的概率分布sample出新的主題,更新對應的上述4個變數分布加1

迭代完成後,輸出主題-詞參數矩陣φ和文檔-主題矩陣Θ

beta分布的x∈[0,1],是實數,概率密度為x (α-1)(1-x) (β-1),其中α,β>0,這和bernoulli 分布形式上類似,但是bernoulli的x取值為0或1。

當選擇不同α和β時,beta分布的pdf為:

說明:

pdf為連續型變數的概率密度函數

beta分布是針對一個x變數,dirichlet分布是針對多個隨機變數,通常標記為Dir(α),表示連續多元概率分布,參數α>0,是beta分布的擴展,通常被用於貝葉斯統計中的一種先驗分布。

對於兩個隨機變數(k=2)的pdf分布如下圖:

dirichlet分布的pd如下所示:

共軛:假定一個先驗分布A,將該先驗分布的參數帶入另外的一個分布中,得到後驗證分布,如果該後驗分布和該先驗分布有相同的形式,則稱為共軛(conjugacy)。

beta分布是bernoulli(二項式分布)的共軛先驗分布為共軛,dirichlet為multinomial(多項式分布)的共軛先驗分布。

參考鏈接:

<u>https://en.wikipedia.org/wiki/Latent_Dirichlet_allocation</u>

https://blog.csdn.net/MeituanTech/article/details/80804170

wiki中文版

閱讀全文

與lDA主題模型最少需要多少數據相關的資料

熱點內容
db2資料庫連接池如何重連 瀏覽:7
安卓蘋果換機傳文件 瀏覽:562
win10對話框不全 瀏覽:614
iphone4刪除不了照片 瀏覽:803
安卓faceriglive2d 瀏覽:736
sas大數據累加高位溢出 瀏覽:777
線切割編程軟體怎麼畫45度角 瀏覽:660
電腦系統分區刪除後還有文件嗎 瀏覽:134
應用文件名不能打中文否則打不開 瀏覽:463
mt6752工具 瀏覽:949
flash多邊形工具邊數 瀏覽:576
編程貓和風變編程哪個好 瀏覽:749
4月13號win10更新內容 瀏覽:117
java虛擬機 瀏覽:166
電腦藍屏怎麼看代碼 瀏覽:715
天盟網路技術公司 瀏覽:238
文件怎麼保存為視頻 瀏覽:575
資料庫性能cpu的關系 瀏覽:755
飛歌g8黃金版安卓系統版本 瀏覽:135
qq通訊錄順序 瀏覽:601

友情鏈接