文本分析合集,文本向量处理的方法jieba,对文本的特征工程之TfidfVectorizer以及结合TruncatedSVD,WordCloud词云图展示

文本分析合集,文本向量处理的方法jieba,对文本的特征工程之TfidfVectorizer以及结合TruncatedSVD,WordCloud词云图展示

对于一列文本我们需要对其进行操作的话首先要进行分词处理
例如如下列表
在这里插入图片描述
我们进行最简单的jieba分词处理

import jieba
dfco = df.copy()
dfco['分词描述'] = df['款式'].apply(jieba.lcut)
def tf_re(k):
    k = '{}'.format(k)
    k = k.replace('[','').replace(']','')
    return k
dfco['分词描述'] = dfco['分词描述'].apply(tf_re)
dfco

这是分词后的结果
在这里插入图片描述

停用词加载

停用词在末尾

def get_stopword():
    s = set()
    with open('stop.txt',encoding = 'UTF-8') as f:
        for line in f:
            s.add(line.strip())
    return s
stopword = get_stopword() #返回的是一个列表可以通过list转换

分词转换成多列数字

TfidfVectorizer

 
from sklearn.feature_extraction.text import TfidfVectorizer
#取出X和y
X = dfco['分词描述']
#创建一个TfidfVectorizer的实例
vectorizer = TfidfVectorizer(stop_words='english', #这里的english可以换成停用词
                             use_idf=True, 
                             smooth_idf=True)
#使用Tfidf将文本转化为向量
X = vectorizer.fit_transform(X)
#看看特征形状
X.shape

这个X本质是可以直接拿来训练的,例如直接聚类

from sklearn.cluster import KMeans

# assuming X is a sparse matrix obtained from TfidfVectorizer
num_clusters = 4

# apply KMeans clustering algorithm to the data
kmeans = KMeans(n_clusters=num_clusters, random_state=42)
clusters = kmeans.fit_predict(X)

# add the cluster labels to the original DataFrame
dfco['cluster'] = clusters
dfco

为了方便观察和学习我们转换了一下,这就是对应的特征值

# 将稀疏矩阵转化为DataFrame
pd.DataFrame(X.toarray(), columns=vectorizer.get_feature_names())

在这里插入图片描述
在做预测方面,我们只需要将所需预测文本进行如下处理便可以获得一行多列数据,这个多少列和上面训练的结果是一样

# Generate a feature vector for a new text input
new_text = "这是一段新的文本"
new_vector = vectorizer.transform([new_text])

# Convert the sparse vector to a dense array and create a DataFrame row
new_row = pd.DataFrame(new_vector.toarray(), columns=vectorizer.get_feature_names())
new_row

对于词性特征可以通过如下方式查看

#词性特征值
data1 = {'word': vectorizer.get_feature_names_out(),
        'tfidf': X.toarray().sum(axis=0).tolist()}
df1 = pd.DataFrame(data1).sort_values(by="tfidf" ,ascending=False,ignore_index=True) 
df1

CountVectorizer模型

from sklearn.feature_extraction.text import CountVectorizer

n_features = 3000 #提取1000个特征词语
tf_vectorizer = CountVectorizer(strip_accents = 'unicode',
                                max_features=n_features,
                                stop_words='english',
                                max_df = 0.5,
                                min_df = 10)

X = tf_vectorizer.fit_transform(dfco['分词描述'])

TfidfVectorizer结合TruncatedSVD模型

#向量转换
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.decomposition import TruncatedSVD
from sklearn.pipeline import Pipeline
import joblib
# raw documents to tf-idf matrix: 
vectorizer = TfidfVectorizer(stop_words='english', 
                             use_idf=True, 
                             smooth_idf=True)
# SVD to reduce dimensionality: 采用了随机SVD算法,迭代次数为10次,将维度降至5
svd_model = TruncatedSVD(n_components=5,       
                         algorithm='randomized',
                         n_iter=10)
# pipeline of tf-idf + SVD, fit to and applied to documents:流水线
svd_transformer = Pipeline([('tfidf', vectorizer), 
                            ('svd', svd_model)])
# fit and transform the data:
dc_matrix = svd_transformer.fit_transform(data['分词描述'])

# save the models to disk:
joblib.dump(svd_transformer, 'svd_transformer.joblib')
# load the models from disk:
svd_transformer = joblib.load('svd_transformer.joblib')
#转换
dc_matrix = svd_transformer.transform(data['分词描述'])
dc_matrix.shape

分词之后的训练在这有案例

词频统计,Counter,词云图,stop.txt在结尾

分词统计

import jieba


#分词
import concurrent.futures
import jieba
import pandas as pd
from tqdm import tqdm

df = pd.read_csv('目标文件.csv')
def tokenize(text):
    return [word for word in jieba.lcut(text)]

def tokenize_df(df):
    with concurrent.futures.ThreadPoolExecutor() as executor:
        results = list(tqdm(executor.map(tokenize, df['正文']), total=len(df)))
    df['分词描述'] = pd.Series(results)
    return df

dfco = tokenize_df(df)
def get_stopword():
    s = set()
    with open('stop.txt',encoding = 'UTF-8') as f:
        for line in f:
            s.add(line.strip())
    return s
stopword = get_stopword()
def remove_stopword_2(words):
    stopword = get_stopword()
    #加入停用的新内容
    stopword.add('\n')
    stopword.add(' ')
    try:
        return [word for word in words if word not in stopword and not word.isnumeric()]
    except Exception as e:
        return []
    

dfco['分词描述'] = dfco['分词描述'].apply(remove_stopword_2)
#词频统计
from itertools import chain
from collections import Counter

li_2d = dfco['分词描述'].tolist()
#将二维列表转换为一维
li_1d = list(chain.from_iterable(li_2d))
print(f'总词汇量:{len(li_1d)}')
c = Counter(li_1d)
print(f'不重复词汇量:{len(c)}')

词频表

#转换为词频表
alist = []
blist = []
for k, v in c.most_common(len(c)):
    alist.append(k)
    blist.append(v)
newdf = pd.concat([pd.DataFrame(alist),pd.DataFrame(blist)],axis=1)
newdf.columns=['词','数量']
newdf

效果展示
在这里插入图片描述

词云图

import pyecharts.options as opts
from pyecharts.charts import WordCloud
#展示的数量
common = c.most_common(2000)
#可以对字段长度进行筛选
common_filter= [(k, v) for k, v in common if len(k) >= 3  and len(k) <= 7]
#过滤掉开头一些不必要字符影响
data = common_filter[5:]
#绘制词云图
cshow = (
    WordCloud()
    .add(series_name="热点分析", data_pair=data, word_size_range=[6, 66])
    .set_global_opts(
        title_opts=opts.TitleOpts(
            title="热点分析", title_textstyle_opts=opts.TextStyleOpts(font_size=23)
        ),
        tooltip_opts=opts.TooltipOpts(is_show=True),
    )
    
)
# cshow.render('热点分析.html')#保存为html
cshow.render_notebook()

#这里都是词云图,随便找了一张放上去了
在这里插入图片描述

IDA主题分析

其中分词部分和前面的是一样的不过多了一个去掉列表的[]函数,这里用到了CountVectorizer来处理文本数据

import jieba
#分词
import concurrent.futures
import jieba
import pandas as pd
from tqdm import tqdm
df = pd.read_csv('目标文件.csv')
def tokenize(text):
    return [word for word in jieba.lcut(text)]

def tokenize_df(df):
    with concurrent.futures.ThreadPoolExecutor() as executor:
        results = list(tqdm(executor.map(tokenize, df['正文']), total=len(df)))
    df['分词描述'] = pd.Series(results)
    return df

dfco = tokenize_df(df)
def tf_re(k):
    k = '{}'.format(k)
    k = k.replace('[','').replace(']','')
    return k
dfco['分词描述'] = dfco['分词描述'].apply(tf_re)

ida主题分析

from sklearn.feature_extraction.text import CountVectorizer

n_features = 3000 #提取1000个特征词语
tf_vectorizer = CountVectorizer(strip_accents = 'unicode',
                                max_features=n_features,
                                stop_words='english',
                                max_df = 0.5,
                                min_df = 10)

X = tf_vectorizer.fit_transform(dfco['分词描述'])

from sklearn.decomposition import LatentDirichletAllocation
lda = LatentDirichletAllocation(n_components=10, random_state=123)
docres = lda.fit_transform(X)

import pyLDAvis.sklearn
pyLDAvis.enable_notebook()
panel = pyLDAvis.sklearn.prepare(lda, X, tf_vectorizer, mds='tsne')
# 使用pyLDAvis.save_html方法将可视化结果保存为html文件
pyLDAvis.save_html(panel, "LDA主题分析.html")
panel

展示一下意思意思
在这里插入图片描述

困惑度曲线

模型中n_components=10不是很好确定是多少所以需要这来进行可视化分析

#困惑度计算
#利用困惑度在未知主题个数的时候通过可视化来确定
import matplotlib.pyplot as plt
from tqdm import tqdm
plexs = []
n_max_topics = 16  # 这里值可自行设置
for i in tqdm(range(1,n_max_topics)):
    lda = LatentDirichletAllocation(n_components=i,random_state=123)
    lda.fit(X)
    plexs.append(lda.perplexity(X))
 

n_t =15 # 区间最右侧的值。注意:不能大于n_max_topics
x=list(range(1,n_t))
plt.plot(x,plexs[1:n_t])
plt.xlabel("number of topics")
plt.ylabel("perplexity")
plt.show()

在这里插入图片描述

stop.txt

!
"
#
$
%
&
'
(
)
*
+
,
-
--
.
..
...
......
...................
./
.../
//
0
1
2
3
4
5
6
7
8
9
:
://
::
;
<
=
>
>>
?
@
A
Lex
[
\
]
^
_
`
exp
sub
sup
|
}
~
~~~~
·
×
×××
Δ
Ψ
γ
μ
φ
φ.
В
—
——
———
‘
’
’‘
“
”
”,
…
……
…………………………………………………③
′∈
′|
℃
Ⅲ
↑
→
∈[
∪φ∈
≈
①
②
②c
③
③]
④
⑤
⑥
⑦
⑧
⑨
⑩
──
■
▲
 
、
。
〈
〉
《
》
》),
」
『
』
【
】
〔
〕
〕〔
㈧
一
一.
一一
一下
一个
一些
一何
一切
一则
一则通过
一天
一定
一方面
一旦
一时
一来
一样
一次
一片
一番
一直
一致
一般
一起
一转眼
一边
一面
七
万一
三
三天两头
三番两次
三番五次
上
上下
上升
上去
上来
上述
上面
下
下列
下去
下来
下面
不
不一
不下
不久
不了
不亦乐乎
不仅
不仅...而且
不仅仅
不仅仅是
不会
不但
不但...而且
不光
不免
不再
不力
不单
不变
不只
不可
不可开交
不可抗拒
不同
不外
不外乎
不够
不大
不如
不妨
不定
不对
不少
不尽
不尽然
不巧
不已
不常
不得
不得不
不得了
不得已
不必
不怎么
不怕
不惟
不成
不拘
不择手段
不敢
不料
不断
不日
不时
不是
不曾
不止
不止一次
不比
不消
不满
不然
不然的话
不特
不独
不由得
不知不觉
不管
不管怎样
不经意
不胜
不能
不能不
不至于
不若
不要
不论
不起
不足
不过
不迭
不问
不限
与
与其
与其说
与否
与此同时
专门
且
且不说
且说
两者
严格
严重
个
个人
个别
中小
中间
丰富
串行
临
临到
为
为主
为了
为什么
为什麽
为何
为止
为此
为着
主张
主要
举凡
举行
乃
乃至
乃至于
么
之
之一
之前
之后
之後
之所以
之类
乌乎
乎
乒
乘
乘势
乘机
乘胜
乘虚
乘隙
九
也
也好
也就是说
也是
也罢
了
了解
争取
二
二来
二话不说
二话没说
于
于是
于是乎
云云
云尔
互
互相
五
些
交口
亦
产生
亲口
亲手
亲眼
亲自
亲身
人
人人
人们
人家
人民
什么
什么样
什麽
仅
仅仅
今
今后
今天
今年
今後
介于
仍
仍旧
仍然
从
从不
从严
从中
从事
从今以后
从优
从古到今
从古至今
从头
从宽
从小
从新
从无到有
从早到晚
从未
从来
从此
从此以后
从而
从轻
从速
从重
他
他人
他们
他是
他的
代替
以
以上
以下
以为
以便
以免
以前
以及
以后
以外
以後
以故
以期
以来
以至
以至于
以致
们
任
任何
任凭
任务
企图
伙同
会
伟大
传
传说
传闻
似乎
似的
但
但凡
但愿
但是
何
何乐而不为
何以
何况
何处
何妨
何尝
何必
何时
何止
何苦
何须
余外
作为
你
你们
你是
你的
使
使得
使用
例如
依
依据
依照
依靠
便
便于
促进
保持
保管
保险
俺
俺们
倍加
倍感
倒不如
倒不如说
倒是
倘
倘使
倘或
倘然
倘若
借
借以
借此
假使
假如
假若
偏偏
做到
偶尔
偶而
傥然
像
儿
允许
元/吨
充其极
充其量
充分
先不先
先后
先後
先生
光
光是
全体
全力
全年
全然
全身心
全部
全都
全面
八
八成
公然
六
兮
共
共同
共总
关于
其
其一
其中
其二
其他
其余
其后
其它
其实
其次
具体
具体地说
具体来说
具体说来
具有
兼之
内
再
再其次
再则
再有
再次
再者
再者说
再说
冒
冲
决不
决定
决非
况且
准备
凑巧
凝神
几
几乎
几度
几时
几番
几经
凡
凡是
凭
凭借
出
出于
出去
出来
出现
分别
分头
分期
分期分批
切
切不可
切切
切勿
切莫
则
则甚
刚
刚好
刚巧
刚才
初
别
别人
别处
别是
别的
别管
别说
到
到了儿
到处
到头
到头来
到底
到目前为止
前后
前此
前者
前进
前面
加上
加之
加以
加入
加强
动不动
动辄
勃然
匆匆
十分
千
千万
千万千万
半
单
单单
单纯
即
即令
即使
即便
即刻
即如
即将
即或
即是说
即若
却
却不
历
原来
去
又
又及
及
及其
及时
及至
双方
反之
反之亦然
反之则
反倒
反倒是
反应
反手
反映
反而
反过来
反过来说
取得
取道
受到
变成
古来
另
另一个
另一方面
另外
另悉
另方面
另行
只
只当
只怕
只是
只有
只消
只要
只限
叫
叫做
召开
叮咚
叮当
可
可以
可好
可是
可能
可见
各
各个
各人
各位
各地
各式
各种
各级
各自
合理
同
同一
同时
同样
后
后来
后者
后面
向
向使
向着
吓
吗
否则
吧
吧哒
吱
呀
呃
呆呆地
呐
呕
呗
呜
呜呼
呢
周围
呵
呵呵
呸
呼哧
呼啦
咋
和
咚
咦
咧
咱
咱们
咳
哇
哈
哈哈
哉
哎
哎呀
哎哟
哗
哗啦
哟
哦
哩
哪
哪个
哪些
哪儿
哪天
哪年
哪怕
哪样
哪边
哪里
哼
哼唷
唉
唯有
啊
啊呀
啊哈
啊哟
啐
啥
啦
啪达
啷当
喀
喂
喏
喔唷
喽
嗡
嗡嗡
嗬
嗯
嗳
嘎
嘎嘎
嘎登
嘘
嘛
嘻
嘿
嘿嘿
四
因
因为
因了
因此
因着
因而
固
固然
在
在下
在于
地
均
坚决
坚持
基于
基本
基本上
处在
处处
处理
复杂
多
多么
多亏
多多
多多少少
多多益善
多少
多年前
多年来
多数
多次
够瞧的
大
大不了
大举
大事
大体
大体上
大凡
大力
大多
大多数
大大
大家
大张旗鼓
大批
大抵
大概
大略
大约
大致
大都
大量
大面儿上
失去
奇
奈
奋勇
她
她们
她是
她的
好
好在
好的
好象
如
如上
如上所述
如下
如今
如何
如其
如前所述
如同
如常
如是
如期
如果
如次
如此
如此等等
如若
始而
姑且
存在
存心
孰料
孰知
宁
宁可
宁愿
宁肯
它
它们
它们的
它是
它的
安全
完全
完成
定
实现
实际
宣布
容易
密切
对
对于
对应
对待
对方
对比
将
将才
将要
将近
小
少数
尔
尔后
尔尔
尔等
尚且
尤其
就
就地
就是
就是了
就是说
就此
就算
就要
尽
尽可能
尽如人意
尽心尽力
尽心竭力
尽快
尽早
尽然
尽管
尽管如此
尽量
局外
居然
届时
属于
屡
屡屡
屡次
屡次三番
岂
岂但
岂止
岂非
川流不息
左右
巨大
巩固
差一点
差不多
己
已
已矣
已经
巴
巴巴
带
帮助
常
常常
常言说
常言说得好
常言道
平素
年复一年
并
并不
并不是
并且
并排
并无
并没
并没有
并肩
并非
广大
广泛
应当
应用
应该
庶乎
庶几
开外
开始
开展
引起
弗
弹指之间
强烈
强调
归
归根到底
归根结底
归齐
当
当下
当中
当儿
当前
当即
当口儿
当地
当场
当头
当庭
当时
当然
当真
当着
形成
彻夜
彻底
彼
彼时
彼此
往
往往
待
待到
很
很多
很少
後来
後面
得
得了
得出
得到
得天独厚
得起
心里
必
必定
必将
必然
必要
必须
快
快要
忽地
忽然
怎
怎么
怎么办
怎么样
怎奈
怎样
怎麽
怕
急匆匆
怪
怪不得
总之
总是
总的来看
总的来说
总的说来
总结
总而言之
恍然
恐怕
恰似
恰好
恰如
恰巧
恰恰
恰恰相反
恰逢
您
您们
您是
惟其
惯常
意思
愤然
愿意
慢说
成为
成年
成年累月
成心
我
我们
我是
我的
或
或则
或多或少
或是
或曰
或者
或许
战斗
截然
截至
所
所以
所在
所幸
所有
所谓
才
才能
扑通
打
打从
打开天窗说亮话
扩大
把
抑或
抽冷子
拦腰
拿
按
按时
按期
按照
按理
按说
挨个
挨家挨户
挨次
挨着
挨门挨户
挨门逐户
换句话说
换言之
据
据实
据悉
据我所知
据此
据称
据说
掌握
接下来
接着
接著
接连不断
放量
故
故意
故此
故而
敞开儿
敢
敢于
敢情
数/
整个
断然
方
方便
方才
方能
方面
旁人
无
无宁
无法
无论
既
既...又
既往
既是
既然
日复一日
日渐
日益
日臻
日见
时候
昂然
明显
明确
是
是不是
是以
是否
是的
显然
显著
普通
普遍
暗中
暗地里
暗自
更
更为
更加
更进一步
曾
曾经
替
替代
最
最后
最大
最好
最後
最近
最高
有
有些
有关
有利
有力
有及
有所
有效
有时
有点
有的
有的是
有着
有著
望
朝
朝着
末##末
本
本人
本地
本着
本身
权时
来
来不及
来得及
来看
来着
来自
来讲
来说
极
极为
极了
极其
极力
极大
极度
极端
构成
果然
果真
某
某个
某些
某某
根据
根本
格外
梆
概
次第
欢迎
欤
正值
正在
正如
正巧
正常
正是
此
此中
此后
此地
此处
此外
此时
此次
此间
殆
毋宁
每
每个
每天
每年
每当
每时每刻
每每
每逢
比
比及
比如
比如说
比方
比照
比起
比较
毕竟
毫不
毫无
毫无例外
毫无保留地
汝
沙沙
没
没奈何
没有
沿
沿着
注意
活
深入
清楚
满
满足
漫说
焉
然
然则
然后
然後
然而
照
照着
牢牢
特别是
特殊
特点
犹且
犹自
独
独自
猛然
猛然间
率尔
率然
现代
现在
理应
理当
理该
瑟瑟
甚且
甚么
甚或
甚而
甚至
甚至于
用
用来
甫
甭
由
由于
由是
由此
由此可见
略
略为
略加
略微
白
白白
的
的确
的话
皆可
目前
直到
直接
相似
相信
相反
相同
相对
相对而言
相应
相当
相等
省得
看
看上去
看出
看到
看来
看样子
看看
看见
看起来
真是
真正
眨眼
着
着呢
矣
矣乎
矣哉
知道
砰
确定
碰巧
社会主义
离
种
积极
移动
究竟
穷年累月
突出
突然
窃
立
立刻
立即
立地
立时
立马
竟
竟然
竟而
第
第二
等
等到
等等
策略地
简直
简而言之
简言之
管
类如
粗
精光
紧接着
累年
累次
纯
纯粹
纵
纵令
纵使
纵然
练习
组成
经
经常
经过
结合
结果
给
绝
绝不
绝对
绝非
绝顶
继之
继后
继续
继而
维持
综上所述
缕缕
罢了
老
老大
老是
老老实实
考虑
者
而
而且
而况
而又
而后
而外
而已
而是
而言
而论
联系
联袂
背地里
背靠背
能
能否
能够
腾
自
自个儿
自从
自各儿
自后
自家
自己
自打
自身
臭
至
至于
至今
至若
致
般的
良好
若
若夫
若是
若果
若非
范围
莫
莫不
莫不然
莫如
莫若
莫非
获得
藉以
虽
虽则
虽然
虽说
蛮
行为
行动
表明
表示
被
要
要不
要不是
要不然
要么
要是
要求
见
规定
觉得
譬喻
譬如
认为
认真
认识
让
许多
论
论说
设使
设或
设若
诚如
诚然
话说
该
该当
说明
说来
说说
请勿
诸
诸位
诸如
谁
谁人
谁料
谁知
谨
豁然
贼死
赖以
赶
赶快
赶早不赶晚
起
起先
起初
起头
起来
起见
起首
趁
趁便
趁势
趁早
趁机
趁热
趁着
越是
距
跟
路经
转动
转变
转贴
轰然
较
较为
较之
较比
边
达到
达旦
迄
迅速
过
过于
过去
过来
运用
近
近几年来
近年来
近来
还
还是
还有
还要
这
这一来
这个
这么
这么些
这么样
这么点儿
这些
这会儿
这儿
这就是说
这时
这样
这次
这点
这种
这般
这边
这里
这麽
进入
进去
进来
进步
进而
进行
连
连同
连声
连日
连日来
连袂
连连
迟早
迫于
适应
适当
适用
逐步
逐渐
通常
通过
造成
逢
遇到
遭到
遵循
遵照
避免
那
那个
那么
那么些
那么样
那些
那会儿
那儿
那时
那末
那样
那般
那边
那里
那麽
部分
都
鄙人
采取
里面
重大
重新
重要
鉴于
针对
长期以来
长此下去
长线
长话短说
问题
间或
防止
阿
附近
陈年
限制
陡然
除
除了
除却
除去
除外
除开
除此
除此之外
除此以外
除此而外
除非
随
随后
随时
随着
随著
隔夜
隔日
难得
难怪
难说
难道
难道说
集中
零
需要
非但
非常
非徒
非得
非特
非独
靠
顶多
顷
顷刻
顷刻之间
顷刻间
顺
顺着
顿时
颇
风雨无阻
饱
首先
马上
高低
高兴
默然
默默地
齐
︿
!
#
$
%
&
'
(
)
)÷(1-
)、
*
+
+ξ
++
,
,也
-
-β
--
-[*]-
.
/
0
0:2
1
1.
12%
2
2.3%
3
4
5
5:0
6
7
8
9
:
;
<
<±
<Δ
<λ
<φ
<<
=
=″
=☆
=(
=-
=[
={
>
>λ
?
@
A
LI
R.L.
ZXFITL
[
[①①]
[①②]
[①③]
[①④]
[①⑤]
[①⑥]
[①⑦]
[①⑧]
[①⑨]
[①A]
[①B]
[①C]
[①D]
[①E]
[①]
[①a]
[①c]
[①d]
[①e]
[①f]
[①g]
[①h]
[①i]
[①o]
[②
[②①]
[②②]
[②③]
[②④
[②⑤]
[②⑥]
[②⑦]
[②⑧]
[②⑩]
[②B]
[②G]
[②]
[②a]
[②b]
[②c]
[②d]
[②e]
[②f]
[②g]
[②h]
[②i]
[②j]
[③①]
[③⑩]
[③F]
[③]
[③a]
[③b]
[③c]
[③d]
[③e]
[③g]
[③h]
[④]
[④a]
[④b]
[④c]
[④d]
[④e]
[⑤]
[⑤]]
[⑤a]
[⑤b]
[⑤d]
[⑤e]
[⑤f]
[⑥]
[⑦]
[⑧]
[⑨]
[⑩]
[*]
[-
[]
]
]∧′=[
][
_
a]
b]
c]
e]
f]
ng昉
{
{-
|
}
}>
~
~±
~+
¥

参考资源链接:[用python结合jiebawordcloud实现词云效果](https://wenku.csdn.net/doc/6401ad2dcce7214c316ee92f?utm_source=wenku_answer2doc_content) 在网络安全领域,通过分析漏洞信息的词频可以帮助我们了解漏洞的流行趋势和潜在的攻击模式。为了解决如何使用Pythonjiebawordcloud库对网络安全漏洞信息进行文本分析并生成词云图这一问题,你可以参考《用python结合jiebawordcloud实现词云效果》这份资料。该资源详细介绍了如何利用jieba进行中文分词,并用wordcloud库生成美观的词云图。 首先,你需要使用Python的requests库来获取目标网站的数据,例如Wooyun漏洞信息的页面。然后,利用jieba库进行中文分词,以便将中文文本分割成单独的词。jieba不仅能进行简单的分词,还能识别出常见的专有名词、人名、地名等。接下来,使用wordcloud库生成词云图,你可以根据实际需求调整词云的形状、颜色和布局。 这里是一个简化的代码示例: ```python import requests import jieba from wordcloud import WordCloud # 获取网站数据 response = requests.get('***') html = response.text # 进行分词处理 seg_list = jieba.cut(html) seg_str = ' '.join(seg_list) # 生成词云图 wordcloud = WordCloud(font_path='simhei.ttf', width=800, height=400).generate(seg_str) wordcloud.to_file('wordcloud.png') ``` 注意,由于网络安全相关的文本分析可能涉及到敏感内容,你需要确保你的行为符合相关法律法规,并尊重数据来源网站的版权和隐私政策。 在完成词云图的生成后,为了进一步深入学习和探索,你可以查阅《用python结合jiebawordcloud实现词云效果》这份资料。它不仅包括了基本的词云生成步骤,还提供了高级自定义和优化的技巧,帮助你在网络安全数据分析方面取得更深入的洞察。 参考资源链接:[用python结合jiebawordcloud实现词云效果](https://wenku.csdn.net/doc/6401ad2dcce7214c316ee92f?utm_source=wenku_answer2doc_content)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南师大蒜阿熏呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值