[書蘊筆記-2]使用word2vec模型迭代獲取標籤

使用word2vec模型迭代獲取標籤

前言

整體索引在此 :書蘊——基於書評的人工智能推薦系統

之前把書評預處理並將每本書訓練出了word2vec模型,本篇博客針對如何提取書籍的標籤具體展開描述。

這幾天一直都沒怎麼學習,真的怠惰了。
大概是失戀後的正常反應吧。
雖然對不起她。
嘛。

以上請自行忽略。

思路

索引篇也提到了,主要是通過word2vec模型,找出前a的高頻詞放入new_word_set,然後計算new_word_set中所有詞距離最近的前5個詞,並把這5個詞也加入new_word_set中,重複迭代獲取標籤。其中的數字可以修改,以下列出不同參數的不同效果。具體步驟與僞碼以及源碼如下:

步驟

  1. 讀取某本書的word2vec模型
  2. 該模型下vocabulary取頻率最高的前3個單詞放入到new_word_set中
  3. 使用該書的word2vec模型,找到new_word_set集合中每一個詞距離最近的5個詞,將找到的詞放入temp_word_set和word_set集合中
  4. 清空new_word_set,將temp_word_set中所有的詞放入new_word_set,清空temp_word_set
  5. 重複步驟3,4,重複迭代3次(或者是迭代到詞的數量爲某一個值時)。

僞碼

def 提取標籤(模型路徑, new_word_set):
    for i in range(3):
        for word in new_word_set:
            獲取和word距離最近的前5個詞
            將這5個詞加入temp_word_set
        word_set= word_set並集temp_word_set
        new_word_set清空
        new_word_set的內容更新爲temp_word_set的內容
        temp_word_set清空
    返回word_set集合

源碼

因爲我把迭代獲取標籤和計算書籍的距離放在一個py文件裏,所以這裏只貼提取標籤的代碼。
這個代碼很多參數需要重新調整,才能獲得比較好的效果。
下一篇會結合整體的代碼結合參數調整,對比效果綜合總結一下。

def extract_tag_set(model_name, new_word_set):
    word2vec_base = '書評\\word2vec\\model\\'
    model = Word2Vec.load(word2vec_base + model_name)  # type: Word2Vec
    word_set = set()  # 結果集
    # new_word_set = {"阿米爾"}  # 新詞集
    temp_word_set = set()  # 關聯詞集
    for i in range(3):
        for word in new_word_set:
            top5 = model.wv.most_similar(word, topn=5)
            for l in top5:
                temp_word_set.add(l[0])
        word_set = temp_word_set | word_set
        new_word_set.clear()
        new_word_set = temp_word_set.copy()
        temp_word_set.clear()
        # print(word_set)
    return word_set

效果

稍微看看提取出來的標籤都是些啥玩意兒吧。

model_seg_三體 中的標籤爲:
{'面對', '人類文明', '書名', '移居', '消亡', '招募', '萌芽', '2', '融入', '逃避', '異常', '試', '不可避免', '行走', '註定', '三冊', '集體', '更何況', '悟', '解答', '赤裸裸', '艱難', '對外', '引出', '不禁', '相通', '異化', '處於', '隱隱約約', '探尋', '一瞬間', '科學界', '剿滅', '代價', '警方', '輕鬆', '變革', '好奇', '知曉', '初衷', '接觸', '相遇', '開發', '子孫', '忠實', '殘酷', '外部', '慢', '並未', '鬥爭', '不算', '迫使', '守護', '說起', '裏', '爭當', '潛意識', '當做', '悄然', '產物', '慢慢', '異類', '期盼', '刷', '一切都是', '尾', '外力', '滅亡', '作出', '融合', '名', '一員', '審問者', '住', '插敘', '精神領袖', '狂妄', '後半段', '在精神上', '第三本', '災難', '適宜', '推演', '如飢似渴', '看待', '宇宙空間', '介入', '對此', '終於', '最深', '第一步', '打開', '統治', '困難', '墮落', '跳出', '逃過', '降臨到', '分爲', '第二本', '一遍', '打算', '改善', '中三體', '反抗', '殘忍', '說到底', '交代', '防衛', '參透', '重如泰山', '斥', '開啓', '自相殘殺', '終將', '出路', '監督', '拉開', '張力', '演化', '美妙', '未必', '無可', '一口氣', '路上', '無關', '稍微', '頑強', '面紗', 'lt', '支配', '一共', '星人', '厭惡', '之中', '巧合', '一度', '不值一提', '伏筆', '審視', '本性', '終結', '留戀', '覆滅', '罪惡', '怪物', '安全感', '流浪', '現狀', '面前', '正義', '悲慘', '做法', '星期', '哭', '寄希望於', 'gt', '衆生', '喪失', '起源', '穩藏', '是否是', '意志', '不利於', '網遊', '相', '要義', '暗示', '一頁', '好奇心', '揭開', '全局', '一週', '兩本', '初步', '尋求', '一段時間', '了愛', '可謂', '開端', '惡劣', '抑制', '派別', '語', '款', '條件', '狀態', '截然不同', '曙光', '珍貴', '關乎', 'boss', '引向', '短', '思緒', '詳細', '從頭到尾', '日子', '挫敗', '剛剛', 'PS', '淘汰', '地方', '至極', '共鳴', '沒想到', '第一次', '抱', '重複', '揭曉', '結尾', '弱者', '光明', '信徒', '一章', '後續', '意識', '處境', '後果', '舒適', '願望', '翻開', '演變', '民衆', '正式', '諷刺', '持續', '救贖', '映射', '所有人', '三者', '世界末日', '引子', '野蠻', '4.', '幾天', '解脫', '蠻荒', '透露', '和平共處', '登陸', '主觀', '守護者', '不用說', '博弈', '畫卷', '或者說', '一幕', '外來', '浮現', '24.', '燦爛', '搏殺', '消除', '困境', 'high', '生態系統', '疑問', '安德', '前提', '人權', '想着', '忠誠', '生死存亡', '生死', '奇異', '挽救', '推向'}
正在提取 model_seg_三體Ⅲ 中的標籤…
model_seg_三體Ⅲ 中的標籤爲:
{'理由', '小兒科', '最爲', '漂流瓶', '消亡', '貫穿', '舉動', '瓜葛', '詭譎', '人類文明', '高潮迭起', '料到', '定格', '局面', '複雜性', '歸宿', '重啓', '安利', '了前', '顯而易見', '苟延殘喘', '版本', '續集', '魚缸', '意圖', '共同努力', '看不見', '無邊', '數量', '留在', '臨界值', '百年', '一抹', '大同', '看作', '暗黑', '歸於', '拋棄', '迴歸', '可知', '接觸', '恐慌', '滄海一粟', '迴應', '超出', '跨', '功夫', '求生', '折磨', '憤怒', '平淡', '消化', '時刻', '不復存在', '生死', '總體', '當作', '記錄', '歸零', '重生', '微不足道', '應對', '足夠', '籠罩', '滅亡', '所處', '兩本書', '保衛戰', '狂妄', '災難', '終點', '領袖', '倒計時', 'I', '視爲', '招來', '回顧', '全宇宙', '證據', '遭受', '忠於', '浩劫', '衆矢之的', '一具', '光錐', '領導者', '自信', '還給', '冒失', '中三體', '罪人', '達成', '孕育', '死屍', '反抗', '公斤', '舊', '至高無上', '盲目', '走到', '存亡', '無可救藥', '想來', '球', '拍成電影', '自相殘殺', '戰勝', '完結', '長時間', '如果說', '初次', '塵埃', '絕境', '有害', '數次', '生態', '已然', '自大', '浮雲', '直至', '新生', '足以', '歸還給', '蝗蟲', '怨恨', '無垠', '之中', '億萬', '直面', '唏噓', '漫長', '刷新', '罪惡', '選擇題', '新', '潘多拉', '外形', '防備', '上看', '掙扎', '氣勢磅礴', '短視', '一款', '權利', '寄希望於', '擺脫', '這時候', '看成', '深意', '嚴鋒', '俗套', '危難', '跨入', '循環', '序', '簡介', '一小', '引來', '一頁', '暗無天日', '初步', '光亮', '抗爭', '尋求', '回到', '號召', '物競天擇', '點睛之筆', '小事', '淺', '忘卻', '壓力', '卑微', '輸給', '數量級', '關乎', '趕上', '自取滅亡', '繁衍', '輪迴', '驚訝', '不爲過', '誤讀', '啓示', '緊張', '無能爲力', '定位', '剛剛', '忽視', 'NB', '贏得', '憐憫', '以求', '龐大', '歸還', '弱者', '媲美', '誕生', '後續', '億萬年', '貼切', '抵抗', '高於', '死去', '熱寂', '預言', '氣勢', '辛苦', '後記', '翻開', '驚喜', '正式', '已有', '救贖', '催生出', '滅絕', '娓娓道來', '疑點', '衰亡', '奇蹟', '和平共處', '超凡脫俗', '滅頂之災', '一二', '失效', '渴望', '面臨', '希冀', '最讓人', '遠方', '搏殺', '疏忽', '臨時', '送向', '生死存亡', '五公斤', '跳躍', '挽救'}
正在提取 model_seg_紅樓夢 中的標籤…
model_seg_紅樓夢 中的標籤爲:
{'玉寶釵', '三次', '第三十一回', '哭哭啼啼', '絕妙', '惜墨如金', '可不是', '早知如此', '放心', '後期', '打趣', '後事', '虎狼', '穿插', '出場', '生平', '心意', '此話', '成親', '正冊', '曖昧', '醪曲', '着力', '假寐', '幾十回', '房中', '愛哭', '留得', '提醒', '解答', '淋漓盡致', '貼心', '邢岫煙', '冷笑', '不理', '亂說', '極妙', '謎', '淘氣', '留在', '場面', '曉得', '腦海中', '差點', '雪雁', '金鎖', '無處', '吃醋', '硬', '青梅竹馬', '提及', '走進', '無不', '彷彿', '哭泣', '模仿', '並未', '裏', '順序', '愛黛玉', '寶', '終歸', '堵', '一下子', '第二回', '阿Q', '俯拾皆是', '獨獨', '十二支', '尋覓', '臭男人', '混帳', '象', '可說', '晚年', '圖冊', '關切', '小心眼', '有沒有', '好歹', '生分', '多半', '體諒', '湘雲', '心直口快', '說出', '口裏', '和黛玉', '你好', '檻', '隱晦', '聽見', '一名', '好像', '回來', '十二釵', '小性', '面貌', '反面', '傷感', '言語', '不明', '胡說', '沒意思', '咬', '聰明伶俐', '細緻', '後悔', '多處', '傳神', '妨礙', '吟詩', '親姐姐', '交代', '着墨', '寶琴', '惋惜', '奢華', '刪掉', '猜測', '冤', '心病', '第五回', '口氣', '相愛', '筆法', '不見得', '推', '推之於', '不至', '懂事', '列', '平空', '聽到', '第十三回', '無可', '越發', '伴侶', '一口氣', '要說', '言情', '曲折', '走出', '尖酸刻薄', '熱鬧', '閨閣', '篇幅', '情敵', '計較', '不該', '廁所', '心碎', '疑惑', '發現自己', '難過', '回去', '說不出來', '臉譜化', '岔開', '包容', '倒像', '心愛', '半天', '林姑娘', '提示', '黛玉', '小人物', '外', '摔', '之口', '說錯', '感激', '心目', '真情', '聯詩', '通考', '曲筆', '敬重', '不遠', '寶釵', '問道', '多早晚', '誇', '周到', '大方', '中', '表白', '混賬', '貓', '黛', '正面', '寫到', '由來', '撒謊', '妹紙', '之時', '貌似', '頗爲', '回到', '小氣', '開端', '神祕', '書外', '吵架', '心中', '開心', '謎團', '說道', '多行', '不信', '作詩', '搶', '圍繞', '要緊', '當初', '褒貶', '冊', '信息', '第三回', '見到', '沒人', '細微', '許', '出口', '小性兒', '點頭', '這話', '僅憑', '櫃', '站住', '說完', '出入', '刻薄', '問問', '一流', '壞', '出彩', '那段', '學詩', '嬸子', '試探', '真性情', '飽滿', '冊頁', '在意', '判曲', '取笑', '安慰', '瞧', '怔', '哄', '劇中', '太多太多', '和寶釵', '矯情', '儒林外史', '多疑', '親密', '寶貝', '玩笑話', '好好', '留神', '紫鵑'}
正在提取 model_seg_追風箏的人 中的標籤…
model_seg_追風箏的人 中的標籤爲:
{'慘死', '阿米爾', '頭髮', '不顧', '蠕動', '維護', '天空', '無怨無悔', '捍衛', '好受', '風險', '飛翔', '飛', '學會', '騙子', '冷淡', '停止', '無私', '久久', '落地', '放飛', '一同', '阿桑', '一隻', '忠實', '兼', '追', '守護', '離去', '夥伴', '追回', '掉落', '當做', '最出色', '理所當然', '冠軍', '天上', '塞爾', '祝你好運', '佔有', '領養', '喉結', '線', '壞孩子', '冬天', '米爾', '奮力', '空中', '吞嚥', '毫無保留', '寵愛', '羞辱', '親密無間', '弟弟', '挺身', '動搖', '掠起', '親人', '命中註定', '打敗', '鬥', '情同手足', '隱忍', '那年', '情同', '欺凌', '無動於衷', '激怒', '阿賽夫', '傷', '怨恨', '上書', '玻璃', '忠心耿耿', '深愛', '遇上', '他家', '人世', '相仿', '包容', '至死', '哈桑', '哈森', '榮耀', '直視', '人能', '逆來順受', '疼愛', '贏回', '忠心', '不肯', '翱翔', '出頭', '對手', '勝利', '冬日', '墜落', '竟是', '無條件', '揍', '關愛', '1975', '大賽', '求', '贏得', '撿', '比賽', '勝利者', '死去', '後記', '服侍', '陪伴', '割斷', '親兄弟', '上前', '親', '但他卻', '侵犯', '高手', '玩伴', '親生', '傭人', '合', '手足', '長長的', '奉獻', '燦爛', '愛和', '奴僕', '追到', '親密', '參加', '撫養'}

總結

別罵我,爲什麼是這些詞……

有些詞比較正常,有些詞比如“中”顯然就是停用詞沒有去除好的鍋。
畢竟停用詞是直接用得別人的停用詞表,當然效果不好。

再者就是迭代的思路需要改進一下,應該以廣度而非深度爲核心,比如高頻詞的top10詞,然後迭代次數少一點。
之前是5次迭代,top5,效果……下一篇總結的時候好好講一講。

另外,確實需要一個好一點的評測手段了,光這樣看……主觀直覺並不能證明這些詞就ok阿,得算距離來看,嗯。
下一篇結合不同參數的不同效果來看看吧。

沒什麼好總結的,我特麼再不好好學習,真的就沒救了。

最後我要保持神祕感。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章