任務(wù)一:周杰倫粉絲團(tuán)數(shù)據(jù)主題
1.下載安裝Robo 3T用于連接mongodb
2.數(shù)據(jù)存放在ai_crawler中
3.使用python讀取數(shù)據(jù),并分析:
專(zhuān)輯數(shù):33張 ?- ? 2空 ?= ?31
歌曲數(shù):370首 ?- ?69空 ?= ?301
有兩個(gè)專(zhuān)輯沒(méi)有評(píng)論:album_id=38721188 不愛(ài)我就拉倒 comments_num=0檩淋;album_id=18870 The Era 2010 超時(shí)代演唱會(huì) comments_num=0信峻。
A.數(shù)據(jù)預(yù)處理----分詞,jieba分詞
支持三種分詞模式额获;支持自定義詞典
seg_list = jieba.cut("你的句子",cut_all=True) ?#全模式
seg_list = jieba.cut("你的句子",cut_all=False) ?#精確模式? ??
seg_list = jieba.cut_for_search("你的句子")? # 搜索引擎模式
·全模式,把句子中所有的可以成詞的詞語(yǔ)都掃描出來(lái), 速度非常快柬脸,但是不能解決歧義倔矾;
·精確模式妄均,試圖將句子最精確地切開(kāi),適合文本分析哪自;
·搜索引擎模式丰包,在精確模式的基礎(chǔ)上,對(duì)長(zhǎng)詞再次切分壤巷,提高召回率邑彪,適合用于搜索引擎分詞。 支持繁體分詞胧华。
#精確模式: 我/ 去過(guò)/ 清華大學(xué)/ 和/ 北京大學(xué)/ 寄症。
#全模式: 我/ 去過(guò)/ 清華/ 清華大學(xué)/ 華大/ 大學(xué)/ 和/ 北京/ 北京大學(xué)/ 大學(xué)/ 。
#搜索引擎模式: 我/ 去過(guò)/ 清華/ 華大/ 大學(xué)/ 清華大學(xué)/ 和/ 北京/ 大學(xué)/ 北京大學(xué)/ 矩动。
B.數(shù)據(jù)預(yù)處理----去除停用詞
根據(jù)網(wǎng)上現(xiàn)有全部資源有巧,對(duì)所謂“哈工大停用詞詞庫(kù)”、“四川大學(xué)機(jī)器學(xué)習(xí)智能實(shí)驗(yàn)室停用詞庫(kù)”、百度停用詞表“等等各種停用詞表,整理去重在提取中文詞(而不是大量英文詞和中文標(biāo)點(diǎn)符號(hào))出了一個(gè)比較全面的詞表出來(lái)族吻,一共1598個(gè)民效。中文停用詞表下載:chinese-stopwords埋泵。
C.抽取關(guān)鍵詞绊含、主題詞
a)TF-IDF算法:
TF-IDF(詞頻-逆文檔頻率)算法是一種統(tǒng)計(jì)方法市殷,用以評(píng)估一字詞對(duì)于一個(gè)文件集或一個(gè)語(yǔ)料庫(kù)中的其中一份文件的重要程度纫事。字詞的重要性隨著它在文件中出現(xiàn)的次數(shù)成正比增加渗鬼,但同時(shí)會(huì)隨著它在語(yǔ)料庫(kù)中出現(xiàn)的頻率成反比下降览露。該算法在數(shù)據(jù)挖掘、文本處理和信息檢索等領(lǐng)域得到了廣泛的應(yīng)用譬胎,如從一篇文章中找到它的關(guān)鍵詞(找關(guān)鍵詞)差牛。
TFIDF的主要思想是:如果某個(gè)詞或短語(yǔ)在一篇文章中出現(xiàn)的頻率TF高,并且在其他文章中很少出現(xiàn)堰乔,則認(rèn)為此詞或者短語(yǔ)具有很好的類(lèi)別區(qū)分能力偏化,適合用來(lái)分類(lèi)。TF-IDF實(shí)際上就是 TF*IDF镐侯,其中 TF(Term Frequency)侦讨,表示詞條在文章Document 中出現(xiàn)的頻率;IDF(Inverse Document Frequency)苟翻,其主要思想就是韵卤,如果包含某個(gè)詞 Word的文檔越少,則這個(gè)詞的區(qū)分度就越大崇猫,也就是 IDF 越大沈条。對(duì)于如何獲取一篇文章的關(guān)鍵詞,我們可以計(jì)算這邊文章出現(xiàn)的所有名詞的 TF-IDF诅炉,TF-IDF越大蜡歹,則說(shuō)明這個(gè)名詞對(duì)這篇文章的區(qū)分度就越高,取 TF-IDF 值較大的幾個(gè)詞汞扎,就可以當(dāng)做這篇文章的關(guān)鍵詞季稳。
jieba分詞中的TFIDF算法調(diào)用:
import jieba.analyse
jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=())
jieba.analyse.TFIDF(idf_path=None)
·sentence 為待提取的文本
·topK 為返回幾個(gè) TF/IDF 權(quán)重最大的關(guān)鍵詞擅这,默認(rèn)值為 20
·withWeight 為是否一并返回關(guān)鍵詞權(quán)重值澈魄,默認(rèn)值為 False
·allowPOS 僅包括指定詞性的詞,默認(rèn)值為空仲翎,即不篩選
·idf_path 為 IDF 頻率文件
TFIDF算法--專(zhuān)輯主題詞結(jié)果:
TFIDF算法--歌曲主題詞結(jié)果:
b)TextRank算法:
該算法先空著!C堤场=岜俊!!炕吸!
c)LDA算法:
LDA(Latent Dirichlet Allocation)是一種文檔生成模型伐憾。它認(rèn)為一篇文章是有多個(gè)主題的,而每個(gè)主題又對(duì)應(yīng)著不同的詞赫模。一篇文章的構(gòu)造過(guò)程树肃,首先是以一定的概率選擇某個(gè)主題,然后再在這個(gè)主題下以一定的概率選出某一個(gè)詞瀑罗,這樣就生成了這篇文章的第一個(gè)詞胸嘴。不斷重復(fù)這個(gè)過(guò)程,就生成了整篇文章斩祭。當(dāng)然這里假定詞與詞之間是沒(méi)順序的劣像。
文檔生成過(guò)程:詞--->主題--->文章
LDA過(guò)程:文章--->主題--->詞
LDA的使用是上述文檔生成的逆過(guò)程,它將根據(jù)一篇得到的文章摧玫,去尋找出這篇文章的主題驾讲,以及這些主題對(duì)應(yīng)的詞。LDA是無(wú)監(jiān)督的機(jī)器學(xué)習(xí)模型席赂,并且使用了詞袋模型吮铭。一篇文章將會(huì)用詞袋模型構(gòu)造成詞向量。LDA需要我們手動(dòng)確定要?jiǎng)澐值闹黝}的個(gè)數(shù)颅停,一般超參數(shù)對(duì)結(jié)果無(wú)很大影響谓晌。
什么是LDA? 簡(jiǎn)而言之
·它是一種無(wú)監(jiān)督的貝葉斯模型癞揉。
·是一種主題模型纸肉,它可以將文檔集中的每篇文檔按照概率分布的形式給出。
·是一種無(wú)監(jiān)督學(xué)習(xí)喊熟,在訓(xùn)練時(shí)不需要手工標(biāo)注的訓(xùn)練集柏肪,需要的是文檔集和指定主題的個(gè)數(shù)。
·是一種典型的詞袋模型芥牌,它認(rèn)為一篇文檔是由一組詞組成的集合烦味,詞與詞之間沒(méi)有順序和先后關(guān)系。
同一主題下壁拉,某個(gè)詞出現(xiàn)的概率谬俄,以及同一文檔下,某個(gè)主題出現(xiàn)的概率弃理,兩個(gè)概率的乘積溃论,可以得到某篇文檔出現(xiàn)某個(gè)詞的概率,在模型訓(xùn)練的時(shí)候痘昌,調(diào)整這兩個(gè)分布就可以了钥勋。?
由此可以定義LDA的生成過(guò)程:
·對(duì)每篇文檔炬转,在主題分布中抽取一個(gè)主題;(相當(dāng)于左圖)
·對(duì)抽到的主題所對(duì)應(yīng)的單詞分布中隨機(jī)抽取一個(gè)單詞算灸;(在右圖中抽)
·重復(fù)上述過(guò)程直至遍歷整篇文檔中的每個(gè)單詞
LDA算法--歌曲主題詞結(jié)果:
LDA算法--歌曲主題詞結(jié)果:
參考文章:
【1】NLP中文分詞工具比較
【2】python+gensim︱jieba分詞、詞袋doc2bow谢翎、TFIDF文本挖掘
【6】中文停用詞詞表
【7】題模型TopicModel:通過(guò)gensim實(shí)現(xiàn)LDA
【8】主題模型(LDA)(一)--通俗理解與簡(jiǎn)單應(yīng)用
任務(wù)二:模型固化
模型訓(xùn)練train:使用訓(xùn)練集語(yǔ)料輸入不斷的輸入模型捍靠,從而建立好模型。
模型測(cè)試test:使用測(cè)試集語(yǔ)料輸入已經(jīng)搭建好的模型森逮,評(píng)估這個(gè)模型的預(yù)測(cè)能力榨婆。
模型評(píng)估estimate:?褒侧?良风??闷供?
模型預(yù)測(cè)predict:不是訓(xùn)練集烟央,也不是測(cè)試集,是其他新新新的數(shù)據(jù)歪脏。
參考文章:tensorflow將訓(xùn)練好的模型freeze,即將權(quán)重固化到圖里面,并使用該模型進(jìn)行預(yù)測(cè)?
通過(guò)代碼改寫(xiě)疑俭,已經(jīng)實(shí)現(xiàn)了【RNN-for-Joint-NLU-master】模型的固化和預(yù)測(cè)(分別對(duì)應(yīng):freeze.py和predict_model.py)。P鍪А3А!豪硅!但是效果和2018-06-26寫(xiě)的模型預(yù)測(cè)一樣哩照,每次運(yùn)行都會(huì)得到不一樣的準(zhǔn)確率,且遠(yuǎn)遠(yuǎn)差于訓(xùn)練過(guò)程中得到的準(zhǔn)確率懒浮。 ? ? ? ?
參考文章:
【1】tensorflow將訓(xùn)練好的模型freeze,即將權(quán)重固化到圖里面,并使用該模型進(jìn)行預(yù)測(cè)