主頁 >  其他 > 致CSDN讀者的一些話:感恩這十年的陪伴,不負遇見,短暫消失

致CSDN讀者的一些話:感恩這十年的陪伴,不負遇見,短暫消失

2021-04-29 20:45:16 其他

從2010年我來到CSDN,再到2013年我撰寫第一篇博客,轉眼已經過去十年,590篇原創文章,786萬次閱讀量,19萬位關注博友,這一個個數字的背后,是我3000多天的默默付出,也是我寫下近千萬文字的心血,

有人說,世間一切,都是遇見,都是機緣,是啊,因為CSDN,我與很多人成為了好朋友,雖未謀面,但這種默默鼓勵、相互分享的感覺真好;因為CSDN,我人生進度條八分之一(十年)的許多故事在這里書寫,筆耕不輟,也算不得辜負時光吧;因為CSDN,我更珍惜每一位博友、每一位朋友、每一位老師,解答大家的問題,鼓勵考研或找作業失敗的人繼續戰斗;因為CSDN,我認識了女神,并分享了許多我們一家的故事,

東西湖的夜很靜,博士的征途很辛苦,遠方的親人例外思念,
為什么我要寫這樣一篇文章呢?一方面,感謝讀者這十年的陪伴和包容,不論我分享什么內容,你們給予我的都是鼓勵和感動;另一方面,因為改變,接下來我將短暫告別CSDN一段時間(技術更新放緩),好好沉下心來去讀論文,去做做科研,

同時,這篇文章非常硬核,會利用Python文本挖掘詳細分享這十年的故事,也算是為文本挖掘初學者和寫相關論文的讀者一些福利,真誠的對所有人說一聲感謝,感恩這十年的陪伴,不負遇見,不負時光,請記住一個叫Eastmount的分享者,此生足矣~

在這里插入圖片描述

文章目錄

  • 一.憶往昔分享歲月
  • 二.硬核-CSDN博客文本挖掘
    • 1.資料爬取
    • 2.計量統計和可視化分析
    • 3.核心詞統計及詞云分析
    • 4.LDA主題挖掘
    • 5.層次聚類主題樹狀圖
    • 6.社交網路分析
    • 7.博客情感分析
    • 8.博客主題演化分析
    • 9.拓展知識
  • 三.總結


一.憶往昔分享歲月

關于作者與CSDN這十年的故事,可以閱讀這篇文章:

  • 我與CSDN的這十年——筆耕不輟,青春熱血

十年,轉瞬即逝,我從青蔥少年成長為了中年大叔,或許,對其他人來說寫博客很平淡,但對我來說,它可能是我這十年最重要的決定和堅守之一,

十年,不負遇見,不負自己,不負時光,感恩所有人的陪伴,因為有你們,人生路上我不孤單,幸好,這十年來,我可以摸著自己的良心說,每一篇博客我都在很認真的撰寫,雕琢,都在用萬字長文書寫下我的滿腔熱血,

下圖是我這十年分享博客按月統計的數量,從2015年找作業分享一次高峰,到如今讀博,從零學習安全知識并分享又是一座高峰,

在這里插入圖片描述

下圖是這十年我在CSDN撰寫博客的主題演化圖,整個十年,我經歷了四個階段,

  • 本科階段:2013年3月至2014年8月
    當時以本科課程為主,包括C#、網路開發、課程基礎知識等等,
  • 碩士階段:2014年9月至2016年8月
    該階段研究生方向為NLP和知識圖譜,因此撰寫了大量的Python基礎知識,包括Android、C#、面試和LeetCode、網站開發等等,
  • 作業階段:2016年9月至2019年7月
    該階段作者初入職場,選擇回到貴州當一名普通的大學教師,并分享了《Python資料挖掘》《網站開發》等課程,撰寫《Python人工智能》《Python影像處理》等專欄,
  • 博士階段:2019年9月至2021年4月
    該階段作者再次回傳校園,離別家鄉親人選擇讀博,并換了大方向,轉而學習系統安全和網路安全,大量安全知識從零學起,《網路安全自學篇》《網路安全提高班》《系統安全和惡意代碼檢測》專欄也開啟,

在這里插入圖片描述

有許多人問我,“你分享快樂嗎?”
快樂,其實每寫一篇博客我的內心都非常喜悅的,每看到讀者的一個點贊或評論,我真的開心得像一個小孩,

那為什么還要短暫消失呢?
因為畢業,因為想家,因為想他(她),我相信,大多數分享者都和我有同樣的心情,分享知識的魅力讓人久久不能忘懷,但每個階段都需要做每個階段的事,遠方的親人尤為思戀,經過我反復思考,所以我決定短暫放下技術博客的撰寫,轉而選擇論文研究,

在這里插入圖片描述

短暫的消失,并不意味著不分享,
而接下來90%的分享都將與論文和科研技術相關,并且每個月不再PUSH自己寫文,我不知道接下來的幾年,我究竟能做到什么程度,我也不能保證能否發一篇高質量的論文,但我會去拼搏,會去戰斗,會去享受,況且,這十年走來,我從來不認為自己是個聰明的人,比我優秀的人太多太多,我更喜歡的是默默撰寫,默默經歷,陪著大家一起成長,別人稱贊我博客的時候,我更多的回復是“都是時間熬出來的”,也確實是時間熬出來的,只是寫了3012天,

但我是真的享受啊,享受在CSDN所分享的一切,享受與每一位博友的相遇相識,享受每一位朋友的祝福與鼓勵,我感恩的寫下590篇文章,65個專欄,千萬文字和代碼,也勉強可以說上一句“不負遇見,不負青春,此生足矣”,

在這里插入圖片描述

在這里插入圖片描述

下圖展示了這十年我寫的博客涉及的各個方向,這些年,我一直都知道學得太雜,而沒有深入,就希望博士期間能深入某個領域,博一博二安全基礎知識也學了很多,所以接下來是時候進入第五個階段,開啟論文的閱讀和撰寫以及實驗復現,也希望博友們理解,更期待您的陪伴,

在這里插入圖片描述

沙子是握不住的,時間也是,
但當我付出之后,我可以隨手把它揚起,我可以把在時間中發生的點滴記錄,比如技術、又如愛情,讀博苦嗎?苦,無數個寂靜的夜都需要我們去熬,去拼,但有的人更苦,比如家里的另一位,接下來三年,我希望自己始終記住,我為什么選擇來到這里,選擇來到東西湖,也是時候沉下心來去學習論文和做實驗了,技術分享該放就放,雖然不舍,握不住的沙,就隨手揚了它;即便回到原點,我也沒有失去什么,況且這段經歷也是人生的談資啊,也希望每一位博友都珍惜當下,都去做自己喜歡的事情,去經歷,

在這里插入圖片描述

我看著路,夢的入口有點窄,這或許是最美麗的意外,
這篇文章我將使用在CSDN的第一次群發,還請見諒,下一次應該是2024年我博士畢業那天,再次感謝所有人的陪伴,一個好的分享者需要不斷去學習新知識,前沿技術再總結給大家,所以我們應該尊重每一位創作者的果實,同時,我在這里向所有讀者保證,三年之后,我將帶著新的理解,新的感受,去分享更優質的文章,去回饋所有讀者,幫助更多初學者入門,或許手癢我也會寫一篇非常詳細的總結吧,

再次感謝大家,希望大家記住CSDN有一位叫Eastmount的作者,一位叫楊秀璋的博主,如果能記住娜璋和小珞一家就更開心了,哈哈~愛你們喔,困惑或遇到困難的讀者,可以加我微信共同前行,

在這里插入圖片描述

我們的故事都還在續寫,你們的陪伴依然繼續,
最后,熟悉我的讀者知道我開了三個付費專欄,常常有讀者因在校讀書或經濟拮據,因此我在文中多次提到可以私聊我給全文,其實我早已把這些文章開源到了github,我更希望每一位讀者都能從文章中學到知識,希望覺得文章好且手里輕松的給個9塊打賞,奶粉錢就夠了,在此,我也把這三個地址分享給需要的讀者吧!且行且珍惜,購買也歡迎喔,

  • Python影像處理
    https://github.com/eastmountyxz/CSDNBlog-ImageProcessing
  • 網路安全自學篇
    https://github.com/eastmountyxz/CSDNBlog-Security-Based
  • Python人工智能
    https://github.com/eastmountyxz/CSDNBlog-AI-for-Python

在這里插入圖片描述

給想學技術的說聲抱歉,大家記得等我喔!江湖再見,感恩同行,

在這里插入圖片描述



二.硬核-CSDN博客文本挖掘

之前我給學安全的讀者一波福利,告訴大家安全學習路線及CSDN優秀的博主,

  • 那些年我在CSDN追過的安全白帽大佬,respect

這里,我最后再給Python文本挖掘讀者一波福利,希望您喜歡~這篇文章思路大家可以借鑒,但不要直接拿去寫論文喔!但思路已經非常清晰,大家一定動手撰寫代碼,

1.資料爬取

這里不介紹具體代碼,保護CSDN原創,但會給出對應的核心知識點,建議讀者結合自己的方向去抓取文本知識,

核心擴展包:

  • import requests
  • from lxml import etree
  • import csv

核心流程:

  • 解決headers問題
  • 解決翻頁問題
  • 審查元素分析DOM樹結構
  • 定位節點采用Xpath分析
  • 分別賺取標題、URL、時間、閱讀和評論數量
  • 詳情頁面抓取

在這里插入圖片描述

在這里插入圖片描述

爬蟲輸出結果,建議學會打樁輸出(多用print),

在這里插入圖片描述

整理后的結果如下圖所示,內容輸出到CSV存盤,

在這里插入圖片描述


2.計量統計和可視化分析

(1) 按小時分析作者撰寫習慣
首先,我們來分析作者“Eastmount”的撰寫博客習慣,同時利用Matplotlib和PyEcharts繪制圖形,發現Echarts繪制的圖形更好看,由圖可知,該作者長期在深夜和下午撰寫博客,

在這里插入圖片描述

源代碼如下:

# encoding:utf-8
"""
By:Easmount CSDN 2021-04-19
"""
import re
import time
import csv
import pandas as pd
import numpy as np

#------------------------------------------------------------------------------
#第一步 讀取資料
dd = []   #日期
tt = []   #時間
with open("data.csv", "r", encoding="utf8") as csvfile:
    csv_reader = csv.reader(csvfile)
    k = 0
    for row in csv_reader:
        if k==0:      #跳過標題
            k = k + 1
            continue
        #獲取資料 2021-04-08 21:52:21
        value_date = row[4]
        value_time = row[5]
        hour = value_time.split(":")[0]
        hour = int(hour)
        dd.append(row[4])
        tt.append(hour)
        #print(row[4],row[5])
        #print(hour)
        k = k + 1
print(len(tt),len(dd))
print(dd)
print(tt)

#------------------------------------------------------------------------------
#第二步 統計不同小時的個數
from collections import Counter
cnt = Counter(tt)
print(cnt.items())  #dict_items
#字典按鍵排序
list_time = []
list_tnum = []
for i in sorted(cnt):
    print(i,cnt[i])
    list_time.append(i)
    list_tnum.append(cnt[i])

#------------------------------------------------------------------------------
#第三步 繪制柱狀圖
import matplotlib.pyplot as plt
N = 24
ind = np.arange(N)
width=0.35
plt.bar(ind, list_tnum, width, color='r', label='hour') 
plt.xticks(ind+width/2, list_time, rotation=40) 
plt.title("The Eastmount's blog is distributed by the hour")  
plt.xlabel('hour')  
plt.ylabel('numbers')  
plt.savefig('Eastmount-01.png',dpi=400)  
plt.show()

#------------------------------------------------------------------------------
#第四步 PyEcharts繪制柱狀圖

from pyecharts import options as opts
from pyecharts.charts import Bar
bar=(
    Bar()
        .add_xaxis(list_time)
        .add_yaxis("數量", list_tnum, color="blue")
        .set_global_opts(title_opts=opts.TitleOpts(
            title="Eastmount博客按小時分布", subtitle="hour"))
    )
bar.render('01-Eastmount博客按小時分布.html')

(2) 按月份統計博客
作者按月份撰寫博客如下圖所示,2015年找作業撰寫了大量LeetCode代碼,后續是讀博期間安全分享較多,

在這里插入圖片描述

源代碼如下:

# encoding:utf-8
"""
By:Easmount CSDN 2021-04-19
"""
import re
import time
import csv
import pandas as pd
import numpy as np

#------------------------------------------------------------------------------
#第一步 讀取資料
dd = []   #日期
tt = []   #時間
with open("data.csv", "r", encoding="utf8") as csvfile:
    csv_reader = csv.reader(csvfile)
    k = 0
    for row in csv_reader:
        if k==0:      #跳過標題
            k = k + 1
            continue
        #獲取資料 2021-04-08 21:52:21
        value_date = row[4]
        value_time = row[5]
        hour = value_time.split(":")[0]   #獲取小時
        hour = int(hour)
        month = value_date[:7]            #獲取月份
        dd.append(month)
        tt.append(hour)
        #print(row[4],row[5])
        #print(hour,month)
        print(month)
        k = k + 1
        #break
print(len(tt),len(dd))
print(dd)
print(tt)

#------------------------------------------------------------------------------
#第二步 統計不同日期的個數
from collections import Counter
cnt = Counter(dd)
print(cnt.items())  #dict_items
#字典按鍵排序
list_date = []
list_dnum = []
for i in sorted(cnt):
    print(i,cnt[i])
    list_date.append(i)
    list_dnum.append(cnt[i])

#------------------------------------------------------------------------------
#第三步 PyEcharts繪制柱狀圖
from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.charts import Line
from pyecharts.commons.utils import JsCode

line = (
    Line()
    .add_xaxis(list_date)
    .add_yaxis('數量', list_dnum, is_smooth=True,
               markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_="average")]),
               markpoint_opts=opts.MarkPointOpts(data=[opts.MarkPointItem(type_="max"),
                                                       opts.MarkPointItem(type_="min")]))
    # 隱藏數字 設定面積
    .set_series_opts(
        areastyle_opts=opts.AreaStyleOpts(opacity=0.5),
        label_opts=opts.LabelOpts(is_show=False))
    # 設定x軸標簽旋轉角度
    .set_global_opts(xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-30)), 
                     yaxis_opts=opts.AxisOpts(name='數量', min_=3), 
                     title_opts=opts.TitleOpts(title='Eastmount博客按日期分布'))        
    )
line.render('02-Eastmount博客按日期分布.html')

(3) 按星期統計博客
按星期統計如下,呼叫date.weekday()函式可以輸出對應的星期,周末作者更新稍微少一些,

在這里插入圖片描述

核心代碼如下:

# encoding:utf-8
"""
By:Easmount CSDN 2021-04-19
"""
import re
import time
import csv
import pandas as pd
import numpy as np
import datetime

#定義星期函式
def get_week_day(date):
    week_day_dict = {
        0 : '星期一',
        1 : '星期二',
        2 : '星期三',
        3 : '星期四',
        4 : '星期五',
        5 : '星期六',
        6 : '星期天'
    }
    day = date.weekday()
    return week_day_dict[day]

#------------------------------------------------------------------------------
#第一步 讀取資料

dd = []   #日期
tt = []   #時間
ww = []   #星期
with open("data.csv", "r", encoding="utf8") as csvfile:
    csv_reader = csv.reader(csvfile)
    k = 0
    for row in csv_reader:
        if k==0:      #跳過標題
            k = k + 1
            continue
        #獲取資料 2021-04-08 21:52:21
        value_date = row[4]
        value_time = row[5]
        hour = value_time.split(":")[0]   #獲取小時
        hour = int(hour)
        month = value_date[:7]            #獲取月份
        dd.append(month)
        tt.append(hour)

        #獲取星期
        date = datetime.datetime.strptime(value_date, '%Y-%m-%d').date()
        week = get_week_day(date)
        ww.append(week)
        #print(date,week)
        k = k + 1
print(len(tt),len(dd),len(ww))
print(dd)
print(tt)
print(ww)

#------------------------------------------------------------------------------
#第二步 統計不同日期的個數
from collections import Counter
cnt = Counter(ww)
print(cnt.items())  #dict_items
#字典按鍵排序
list_date = ['星期一','星期二','星期三','星期四','星期五','星期六','星期天']
list_dnum = [0,0,0,0,0,0,0]

for key,value in cnt.items():
    k = 0
    while k<len(list_date):
        if key==list_date[k]:
            list_dnum[k] = value
            break
        k = k + 1
print(list_date,list_dnum)

#------------------------------------------------------------------------------
#第三步 PyEcharts繪制柱狀圖
from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.charts import Line
from pyecharts.commons.utils import JsCode
bar=(
    Bar()
        .add_xaxis(list_date)
        .add_yaxis("數量", list_dnum, color='pink')
        .set_global_opts(title_opts=opts.TitleOpts(
            title="Eastmount博客按星期分布", subtitle="week"))
    )
bar.render('03-Eastmount博客按星期分布.html')

3.核心詞統計及詞云分析

詞云分析非常適合初學者,這里作者也簡單分享核心主題詞統計和詞云分析的程序,

(1) 統計核心關鍵詞及詞頻
輸出結果如下圖所示:

在這里插入圖片描述

代碼如下:

# coding=utf-8
"""
By:Easmount CSDN 2021-04-19
"""
import jieba
import re
import time
import csv
from collections import Counter

#------------------------------------中文分詞----------------------------------
cut_words = ""
all_words = ""
stopwords = ["[", "]", ")", "(", ")", "(", "【", "】",
             ".", "、", "-", "—", ":", ":", "《", "》",
             "的", "和", "之", "及", "“", "”", "?", "?"]

#匯入自定義詞典
#jieba.load_userdict("dict.txt")

f = open('06-data-fenci.txt', 'w')

with open("data.csv", "r", encoding="utf8") as csvfile:
    csv_reader = csv.reader(csvfile)
    k = 0
    for row in csv_reader:
        if k==0:      #跳過標題
            k = k + 1
            continue
        #獲取資料
        title = row[1]
        title = title.strip('\n')
        #print(title)
        #分詞
        cut_words = ""
        seg_list = jieba.cut(title,cut_all=False)
        for seg in seg_list:
            if seg not in stopwords:
                cut_words += seg + " "
        #cut_words = (" ".join(seg_list))
        f.write(cut_words+"\n")
        all_words += cut_words
        k = k + 1
f.close()
#輸出結果
all_words = all_words.split()
print(all_words)

#------------------------------------詞頻統計---------------------------------- 
c = Counter()
for x in all_words:
    if len(x)>1 and x != '\r\n':
        c[x] += 1
#輸出詞頻最高的前10個詞
print('\n詞頻統計結果:')
for (k,v) in c.most_common(10):
    print("%s:%d"%(k,v))
#存盤資料
name ="06-data-word.csv"
fw = open(name, 'w', encoding='utf-8')
i = 1
for (k,v) in c.most_common(len(c)):
    fw.write(str(i)+','+str(k)+','+str(v)+'\n')
    i = i + 1
else:
    print("Over write file!")
    fw.close()

(2) PyEcharts詞云可視化
輸出結果如下圖所示,出現詞頻越高的單詞顯示越大、越鮮艷,

在這里插入圖片描述

代碼如下:

# coding=utf-8
"""
By:Easmount CSDN 2021-04-19
"""
import jieba
import re
import time
import csv
from collections import Counter

#------------------------------------中文分詞----------------------------------
cut_words = ""
all_words = ""
stopwords = ["[", "]", ")", "(", ")", "(", "【", "】",
             "01", "02", "03", "04", "05", "06", "07",
             "08", "09", "什么"]
f = open('06-data-fenci.txt', 'w')

with open("data.csv", "r", encoding="utf8") as csvfile:
    csv_reader = csv.reader(csvfile)
    k = 0
    for row in csv_reader:
        if k==0:      #跳過標題
            k = k + 1
            continue
        #獲取資料
        title = row[1]
        title = title.strip('\n')
        #print(title)
        #分詞
        cut_words = ""
        seg_list = jieba.cut(title,cut_all=False)
        for seg in seg_list:
            if seg not in stopwords:
                cut_words += seg + " "
        #cut_words = (" ".join(seg_list))
        f.write(cut_words+"\n")
        all_words += cut_words
        k = k + 1
f.close()
#輸出結果
all_words = all_words.split()
print(all_words)

#------------------------------------詞頻統計---------------------------------- 
c = Counter()
for x in all_words:
    if len(x)>1 and x != '\r\n':
        c[x] += 1
#輸出詞頻最高的前10個詞
print('\n詞頻統計結果:')
for (k,v) in c.most_common(10):
    print("%s:%d"%(k,v))
#存盤資料
name ="06-data-word.csv"
fw = open(name, 'w', encoding='utf-8')
i = 1
for (k,v) in c.most_common(len(c)):
    fw.write(str(i)+','+str(k)+','+str(v)+'\n')
    i = i + 1
else:
    print("Over write file!")
    fw.close()

#------------------------------------詞云分析----------------------------------
from pyecharts import options as opts
from pyecharts.charts import WordCloud
from pyecharts.globals import SymbolType

# 生成資料 word = [('A',10), ('B',9), ('C',8)] 串列+Tuple
words = []
for (k,v) in c.most_common(200):
    # print(k, v)
    words.append((k,v))
# 渲染圖
def wordcloud_base() -> WordCloud:
    c = (
        WordCloud()
        .add("", words, word_size_range=[20, 40], shape='diamond') #shape=SymbolType.ROUND_RECT
        .set_global_opts(title_opts=opts.TitleOpts(title='Eastmount十年博客詞云圖'))
    )
    return c

# 生成圖
wordcloud_base().render('05-Eastmount十年博客詞云圖.html')

4.LDA主題挖掘

LDA模型是文本挖掘或主題挖掘中非常經典的演算法,讀者可以閱讀作者之前的文章,詳細介紹該模型,這里,我們用它來對作者博客進行主題挖掘,設定的主題數為4,通常需要計算困惑度比較,

在這里插入圖片描述

同時計算各個主題對應的主題詞,如下所示,注意,建議讀者結合自己的文本進行相應的優化,這會得到更符合真實情況的主題詞,并且主題之間會存在相互交融的現象,比如安全系列博客,會有Python相關的滲透文章,

在這里插入圖片描述

完整代碼如下:

#coding: utf-8
import pandas as pd
from sklearn.feature_extraction.text import TfidfVectorizer, CountVectorizer

#---------------------  第一步 讀取資料(已分詞)  ----------------------
corpus = []

# 讀取預料 一行預料為一個檔案
for line in open('06-data-fenci.txt', 'r').readlines():
    corpus.append(line.strip())
        
#-----------------------  第二步 計算TF-IDF值  ----------------------- 
# 設定特征數
n_features = 2000
tf_vectorizer = TfidfVectorizer(strip_accents = 'unicode',
                                max_features=n_features,
                                stop_words=['的','或','等','是','有','之','與','可以','還是','這里',
                                            '一個','和','也','被','嗎','于','中','最','但是','大家',
                                            '一下','幾天','200','還有','一看','300','50','哈哈哈哈',
                                             '“','”',',',',','?','、',';','怎么','本來','發現',
                                             'and','in','of','the','我們','一直','真的','18','一次',
                                           '了','有些','已經','不是','這么','一一','一天','這個','這種',
                                           '一種','位于','之一','天空','沒有','很多','有點','什么','五個',
                                           '特別'],
                                max_df = 0.99,
                                min_df = 0.002) #去除檔案內出現幾率過大或過小的詞匯
tf = tf_vectorizer.fit_transform(corpus)
print(tf.shape)
print(tf)

#-------------------------  第三步 LDA分析  ------------------------ 
from sklearn.decomposition import LatentDirichletAllocation
# 設定主題數
n_topics = 4
lda = LatentDirichletAllocation(n_components=n_topics,
                                max_iter=100,
                                learning_method='online',
                                learning_offset=50,
                                random_state=0)
lda.fit(tf)
# 顯示主題數 model.topic_word_
print(lda.components_)
# 幾個主題就是幾行 多少個關鍵詞就是幾列 
print(lda.components_.shape)                         
# 計算困惑度
print(u'困惑度:')
print(lda.perplexity(tf,sub_sampling = False))

# 主題-關鍵詞分布
def print_top_words(model, tf_feature_names, n_top_words):
    for topic_idx,topic in enumerate(model.components_):  # lda.component相當于model.topic_word_
        print('Topic #%d:' % topic_idx)
        print(' '.join([tf_feature_names[i] for i in topic.argsort()[:-n_top_words-1:-1]]))
        print("")
# 定義好函式之后 暫定每個主題輸出前20個關鍵詞
n_top_words = 20                                       
tf_feature_names = tf_vectorizer.get_feature_names()
# 呼叫函式
print_top_words(lda, tf_feature_names, n_top_words)

#------------------------  第四步 可視化分析  ------------------------- 
import pyLDAvis
import pyLDAvis.sklearn

#pyLDAvis.enable_notebook()
data = pyLDAvis.sklearn.prepare(lda,tf,tf_vectorizer)
print(data)
#顯示圖形
pyLDAvis.show(data)
pyLDAvis.save_json(data,' 06-fileobj.html')

5.層次聚類主題樹狀圖

層次聚類繪制的樹狀圖,也是文本挖掘領域常用的技術,它會將各個領域相關的主題以樹狀的形式進行顯示,這里輸出結果如下圖所示:

在這里插入圖片描述

注意,這里作者可以通過設定過濾來顯示樹狀圖顯示的主題詞數量,并進行相關的對比實驗,找到最優結果,

# -*- coding: utf-8 -*-
import os
import codecs
from sklearn.feature_extraction.text import CountVectorizer, TfidfTransformer
from sklearn.manifold import TSNE
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import jieba
from sklearn import metrics
from sklearn.metrics import silhouette_score
from array import array
from numpy import *
from pylab import mpl
from sklearn.metrics.pairwise import cosine_similarity
import matplotlib.pyplot as plt
import matplotlib as mpl
from scipy.cluster.hierarchy import ward, dendrogram

#---------------------------------------加載語料-------------------------------------
text = open('06-data-fenci.txt').read()
print(text)
list1=text.split("\n")
print(list1)
print(list1[0])
print(list1[1])
mytext_list=list1

#控制顯示數量
count_vec = CountVectorizer(min_df=20, max_df=1000)  #最大值忽略
xx1 = count_vec.fit_transform(list1).toarray()
word=count_vec.get_feature_names() 
print("word feature length: {}".format(len(word)))
print(word)
print(xx1)
print(type(xx1))
print(xx1.shape)
print(xx1[0])

#---------------------------------------層次聚類-------------------------------------
titles = word
#dist = cosine_similarity(xx1)

mpl.rcParams['font.sans-serif'] = ['SimHei']

df = pd.DataFrame(xx1)
print(df.corr())
print(df.corr('spearman'))
print(df.corr('kendall'))
dist = df.corr()
print (dist)
print(type(dist))
print(dist.shape)

#define the linkage_matrix using ward clustering pre-computed distances
linkage_matrix = ward(dist) 
fig, ax = plt.subplots(figsize=(8, 12)) # set size
ax = dendrogram(linkage_matrix, orientation="right",
                p=20, labels=titles, leaf_font_size=12
                ) #leaf_rotation=90., leaf_font_size=12.
#show plot with tight layout
plt.tight_layout() 
#save figure as ward_clusters
plt.savefig('07-KH.png', dpi=200)
plt.show()

6.社交網路分析

社交網路分析常用于引文分析,文科領域有的成為文獻知識圖譜(和Google提出的知識圖譜或本體有區別),它也是文獻挖掘領域常用的技術手段,這里我們繪制社交網路關系圖譜如下所示,主要利用Gephi軟體,也推薦Neo4j或D3,可以看到作者十年的分享主要集中在四塊內容,它們又相互聯系,相輔相成,

  • 網路安全
  • Python
  • 逆向分析
  • 基礎知識或編程技術

推薦文章:

  • [Pyhon大資料分析] 五.新聞話題抓取及Gephi構建主題知識圖譜

在這里插入圖片描述

第一步,我們需要計算兩兩共現矩陣,資料量過大可能會邊界溢位,
輸出結果如下圖所示,此時希望大家進行停用詞過濾或將例外關系洗掉,

# -*- coding: utf-8 -*-
"""
@author: eastmount CSDN 2020-04-20
"""
import pandas as pd
import numpy as np
import codecs
import networkx as nx
import matplotlib.pyplot as plt
import csv
from scipy.sparse import coo_matrix
 
#---------------------------第一步:讀取資料-------------------------------
word = [] #記錄關鍵詞
f = open("06-data-fenci.txt", encoding='gbk')            
line = f.readline()           
while line:
    #print line
    line = line.replace("\n", "") #過濾換行
    line = line.strip('\n') 
    for n in line.split(' '):
        #print n
        if n not in word:
            word.append(n)
    line = f.readline()
f.close()
print(len(word)) #關鍵詞總數 2913

#--------------------------第二步 計算共現矩陣----------------------------
a = np.zeros([2,3])
print(a)

#共現矩陣
#word_vector = np.zeros([len(word),len(word)], dtype='float16')

#MemoryError:矩陣過大匯報記憶體錯誤 采用coo_matrix函式解決該問題
print(len(word))
#型別<type 'numpy.ndarray'>
word_vector = coo_matrix((len(word),len(word)), dtype=np.int8).toarray() 
print(word_vector.shape)

f = open("06-data-fenci.txt", encoding='gbk')  
line = f.readline()           
while line:
    line = line.replace("\n", "") #過濾換行
    line = line.strip('\n') #過濾換行
    nums = line.split(' ')

    #回圈遍歷關鍵詞所在位置 設定word_vector計數
    i = 0
    j = 0
    while i<len(nums):         #ABCD共現 AB AC AD BC BD CD加1
        j = i + 1
        w1 = nums[i]           #第一個單詞
        while j<len(nums):
            w2 = nums[j]       #第二個單詞
            #從word陣列中找到單詞對應的下標
            k = 0
            n1 = 0
            while k<len(word):
                if w1==word[k]:
                    n1 = k
                    break
                k = k +1
            #尋找第二個關鍵字位置
            k = 0
            n2 = 0
            while k<len(word):
                if w2==word[k]:
                    n2 = k
                    break
                k = k +1
            #重點: 詞頻矩陣賦值 只計算上三角
            if n1<=n2:
                word_vector[n1][n2] = word_vector[n1][n2] + 1
            else:
                word_vector[n2][n1] = word_vector[n2][n1] + 1
            #print(n1, n2, w1, w2)
            j = j + 1
        i = i + 1
    #讀取新內容
    line = f.readline()
    #print("next line")
f.close()
print("over computer")


#--------------------------第三步  CSV檔案寫入--------------------------
c = open("word-word-weight.csv","w", encoding='utf-8', newline='')    #解決空行
#c.write(codecs.BOM_UTF8)                                 #防止亂碼
writer = csv.writer(c)                                    #寫入物件
writer.writerow(['Word1', 'Word2', 'Weight'])

i = 0
while i<len(word):
    w1 = word[i]
    j = 0 
    while j<len(word):
        w2 = word[j]
        #判斷兩個詞是否共現 共現詞頻不為0的寫入檔案
        if word_vector[i][j]>0:
            #寫入檔案
            templist = []
            templist.append(w1)
            templist.append(w2)
            templist.append(str(int(word_vector[i][j])))
            #print templist
            writer.writerow(templist)
        j = j + 1
    i = i + 1
c.close()

第二步,我們需要構建物體(節點)和關系(邊)的CSV檔案,如下圖所示:

  • entity-clean.csv
  • rela-clean.csv

在這里插入圖片描述

在這里插入圖片描述

第三步,新建工程,并選擇“資料資料”,輸入電子表格,匯入節點表格,選擇entity物體表,

在這里插入圖片描述

第四步,匯入資料,設定為“邊表格”,注意CSV表格資料一定設定為 Source(起始點)、Target(目標點)、Weight(權重),這個必須和Gephi格式一致,否則匯入資料會提示錯誤,

在這里插入圖片描述

第五步,匯入成功后點擊“概覽”顯示如下所示,接著就是調整引數,

在這里插入圖片描述

第六步,設定模塊化,在右邊統計中點擊“運行”,設定模塊性,同時設定平均路徑長度,在右邊統計中點擊“運行”,設定邊概述,

在這里插入圖片描述

在這里插入圖片描述

第七步,重新設定節點屬性,節點大小數值設定為“度”,最小值還是20,最大值還是120,節點顏色數值設定為“Modularity Class”,表示模塊化,

在這里插入圖片描述

第八步,在布局中選擇“Fruchterman Reingold”,調整區、重力和速度,

在這里插入圖片描述

第九步,點擊預覽,設定宋體字,顯示標簽,透明度調整為20,如下圖所示,

在這里插入圖片描述

第十步,圖譜優化和調整,
同時可以過濾權重或設定顏色模塊淺色,比如得到更為精細的關系圖譜,

在這里插入圖片描述


7.博客情感分析

情感分析主要采用SnowNLP實驗,也推薦大家使用大連理工大學情感詞典進行優化,這里推薦作者之前分析的文章,輸出結果如下圖所示:

在這里插入圖片描述

但是如果我們計算每天或每月新聞的總體情感分數,就會達到時間序列的情感分析圖,從而更好地對情感趨勢進行預測,文本挖掘或圖書情報領域中使用得也非常多,

在這里插入圖片描述

# -*- coding: utf-8 -*-
from snownlp import SnowNLP
import codecs
import os

#獲取情感分數
source = open("06-data-fenci.txt", "r", encoding='gbk')
fw = open("09-result.txt", "w", encoding="gbk")
line = source.readlines()
sentimentslist = []
for i in line:
    s = SnowNLP(i)
    #print(s.sentiments)
    sentimentslist.append(s.sentiments)

#區間轉換為[-0.5, 0.5]
result = []
i = 0
while i<len(sentimentslist):
    result.append(sentimentslist[i]-0.5)
    fw.write(str(sentimentslist[i]-0.5)+"\n")
    print(sentimentslist[i]-0.5, line[i].strip("\n"))
    i = i + 1
fw.close()

#可視化畫圖
import matplotlib.pyplot as plt
import numpy as np
plt.plot(np.arange(0, 598, 1), result, 'k-')
plt.xlabel('Number')
plt.ylabel('Sentiment')
plt.title('Analysis of Sentiments')
plt.show()

8.博客主題演化分析

最后是主題化驗研究,這里推薦大家閱讀南大核心相關的論文,其實主題演化通常分為:

  • 主題新生
  • 主題消亡
  • 主題融合
  • 主題孤獨

主題融合的計算方法各種各樣,大家可以尋找最適合自己論文的方法,比如詞頻、權重、O系數、關聯性分析等等,這里推薦大家使用Echarts繪制,作者的圖譜如下圖所示:

在這里插入圖片描述

注意,作者這里給出的代碼是另一個案例,但原理一樣,僅供參考,真實情況的計算程序更為復雜,計算演化系數通常為小數,

  • https://echarts.apache.org/examples/zh/index.html#chart-type-sankey
option = {
    series: {
        type: 'sankey',
        layout:'none',
        focusNodeAdjacency: 'allEdges',
        data: [
        {
            name: 'T1-競爭情報'
        },{
            name: 'T1-企業'
        },{
            name: 'T1-企業管理'
        }, {
            name: 'T1-情報研究'
        },{
            name: 'T1-競爭對手'
        },{
            name: 'T1-情報作業'
        },{
            name: 'T1-市場經濟'
        },{
            name: 'T2-競爭情報'
        },{
            name: 'T2-企業'
        },{
            name: 'T2-企業管理'
        },{
            name: 'T2-競爭情報系統'
        },{
            name: 'T2-競爭對手'
        },{
            name: 'T2-知識管理'
        },{
            name: 'T2-反競爭情報'
        },{
            name: 'T3-競爭情報'
        },{
            name: 'T3-企業'
        },{
            name: 'T3-競爭情報系統'
        },{
            name: 'T3-企業管理'
        },{
            name: 'T3-高校圖書館'
        },{
            name: 'T3-反競爭情報'
        },{
            name: 'T3-知識管理'
        },{
            name: 'T4-競爭情報'
        },{
            name: 'T4-企業'
        },{
            name: 'T4-大資料'
        },{
            name: 'T4-產業競爭情報'
        },{
            name: 'T4-競爭情報系統'
        },{
            name: 'T4-高校圖書館'
        },{
            name: 'T4-企業管理'
        }
        
        ],
        links: [{
            source: 'T1-競爭情報',
            target: 'T2-競爭情報',
            value: 10
        }, {
            source: 'T1-企業',
            target: 'T2-企業',
            value: 7
        }, {
            source: 'T1-企業管理',
            target: 'T2-企業管理',
            value: 6
        },{
            source: 'T1-情報研究',
            target: 'T2-競爭情報',
            value: 5
        },{
            source: 'T1-競爭對手',
            target: 'T2-競爭對手',
            value: 5
        },{
            source: 'T1-情報作業',
            target: 'T2-競爭情報',
            value: 3
        },{
            source: 'T1-市場經濟',
            target: 'T2-競爭情報',
            value: 3
        },{
            source: 'T1-競爭情報',
            target: 'T2-競爭情報系統',
            value: 5
        },{
            source: 'T1-競爭情報',
            target: 'T2-競爭情報系統',
            value: 3
        },{
            source: 'T1-競爭情報',
            target: 'T2-知識管理',
            value: 3
        },{
            source: 'T1-競爭情報',
            target: 'T2-反競爭情報',
            value: 3
        },
        
        {
            source: 'T2-競爭情報',
            target: 'T3-競爭情報',
            value: 10
        },{
            source: 'T2-企業',
            target: 'T3-企業',
            value: 7
        },{
            source: 'T3-競爭情報系統',
            target: 'T4-競爭情報',
            value: 3
        },{
            source: 'T2-企業管理',
            target: 'T3-企業管理',
            value: 6
        },{
            source: 'T2-競爭情報系統',
            target: 'T3-競爭情報系統',
            value: 5
        },{
            source: 'T2-競爭對手',
            target: 'T3-競爭情報',
            value: 5
        },{
            source: 'T2-知識管理',
            target: 'T3-知識管理',
            value: 3
        },{
            source: 'T2-反競爭情報',
            target: 'T3-反競爭情報',
            value: 3
        },{
            source: 'T2-競爭情報',
            target: 'T3-高校圖書館',
            value: 4
        },
        
        {
            source: 'T3-競爭情報',
            target: 'T4-競爭情報',
            value: 10
        },{
            source: 'T3-企業',
            target: 'T4-企業',
            value: 7
        },{
            source: 'T3-競爭情報',
            target: 'T4-大資料',
            value: 5
        },{
            source: 'T3-競爭情報',
            target: 'T4-產業競爭情報',
            value: 5
        },{
            source: 'T3-競爭情報系統',
            target: 'T4-競爭情報系統',
            value: 6
        },{
            source: 'T3-企業管理',
            target: 'T4-企業管理',
            value: 4
        },
        {
            source: 'T3-高校圖書館',
            target: 'T4-高校圖書館',
            value: 4
        },{
            source: 'T3-反競爭情報',
            target: 'T4-競爭情報',
            value: 3
        },{
            source: 'T3-知識管理',
            target: 'T4-競爭情報',
            value: 2
        }
        
        ]
    }
};

運行截圖如下所示:

在這里插入圖片描述


9.拓展知識

讀者還可以進行各種各樣的文本挖掘,比如:

  • 命名物體識別
  • 知識圖譜構建
  • 智能問答處理
  • 輿情事件預測


三.總結

最后用我的博客簽名結束這篇文章,“無知·樂觀·低調·謙遜·生活”,時刻告訴自己:無知的我需要樂觀的去求知,低調的底色是謙遜,而謙遜是源于對生活的通透,我們不止有作業、學習、編程,還要學會享受生活,人生何必走得這么匆忙,做幾件開心的事,寫幾篇系統的文,攜一位心愛的人,就很好!感恩CSDN,感謝你我的堅守和分享,這又何止是十年,

感恩所有讀者十年的陪伴,短暫消失只為更好的遇見,接下來三年,愿接納真實的自己,不自卑,不自傲;愿踏踏實實努力、認認真真生活,愛我所愛,無怨無悔,江湖再見,歡迎大家留言喔,共勉~

在這里插入圖片描述

(By:Eastmount 2021-04-28 晚上12點 http://blog.csdn.net/eastmount/ )


轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/281411.html

標籤:AI

上一篇:用 Serverless 的方式,快速上線飛書機器人應用

下一篇:玩轉Linux系統之網路安全部署

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more