tf-idf+lda分析多篇文章摘要

2023-11-16

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
#import seaborn as sns
plt.rcParams['font.sans-serif'] = ['KaiTi']  #指定默认字体 SimHei黑体
plt.rcParams['axes.unicode_minus'] = False   #解决保存图像是负号'
import jieba
import os
# stop_list  = pd.read_csv("停用词.txt",index_col=False,quoting=3,sep="\t",names=['stopword'], encoding='utf-8')
df = pd.read_csv('软件项目风险管理论文.csv', encoding='utf-8')
df
主题 摘要
0 浅谈软件项目管理中的成本效益和收益管理 软件项目实施的主要目标就是实现经济效益。在软件项目管理过程中,必须对所要研发的软件开展经济学...
1 J公司用户中心系统项目风险管理研究 随着社会环境的变化,项目风险管理的重要性日渐凸显,特别是软件项目,这类项目大多迭代快,在这过...
2 敏捷软件项目风险管理探析 在敏捷实践中敏捷方法有利于降低项目风险,但它们通常不足以应对在某些场景(例如在高度规范的领域...
3 B公司A软件项目风险管理 近年来,软件产品市场高速发展,信息安全也越来越被大家所关注,SM(国家涉密信息)软件行业更是...
4 S公司敏捷开发互联网软件项目的风险管理 随着科技的不断进步发展,信息技术发展至今已经非常成熟,其已经被广泛用于各行各业当中。为顺应时...
... ... ...
592 长沙软件园有限公司项目管理成熟度评价研究 长沙软件园有限公司具体负责长沙国家软件产业基地的专业基础设施、软件开发环境建设及技术创新运营...
593 基于3G技术的“移动勘险”项目管理研究 随着世界移动互联网及物联网、云计算技术的发展,3G技术的优势得到了充分的发挥。智能手机的普及...
594 软件项目风险管理之探索 随着IT科技的飞速发展,软件项目的风险管理成为项目实施成功与否的重要环节。该文通过风险计划编...
595 软件项目风险管理过程探析 软件项目风险管理是一个基于过程的管理。是对整个项目生命周期内可能遇到的风险进行预测、识别、分...
596 SG公司人力资源管理信息系统开发项目的进度计划与控制研究 随着现代信息技术的发展,信息化管理软件逐渐成为现代企业提高效率、增加效益不可或缺的必要工具与...

597 rows × 2 columns

#Jieba分词函数

def IsChinese(character):
    '''判断是否为中文字符'''
    for cha in character:
        if not '\u0e00' <= cha <= '\u9fa5':
            return False
    else:
        return True
        
jieba.load_userdict('no_split.txt')
key_words = set()
with open('no_split.txt', encoding='utf-8') as f:
    for line in f:
        l = line.strip()
        if l:
            key_words.add(l)
print('key_words', len(key_words))
stop_list = []
def txt_cut(juzi):
    # lis=[w for w in jieba.cut(juzi) if w not in stop_list]
    # lis=[w for w in jieba.cut(juzi) if IsChinese(w)]
    lis=[w for w in jieba.cut(juzi) if w in key_words]
    return (" ").join(lis)

df['cutword']=df['摘要'].astype('str').apply(txt_cut)
df
Building prefix dict from the default dictionary ...
Loading model from cache C:\Users\wangkai\AppData\Local\Temp\jieba.cache
Loading model cost 0.718 seconds.
Prefix dict has been built successfully.


key_words 362
主题 摘要 cutword
0 浅谈软件项目管理中的成本效益和收益管理 软件项目实施的主要目标就是实现经济效益。在软件项目管理过程中,必须对所要研发的软件开展经济学...
1 J公司用户中心系统项目风险管理研究 随着社会环境的变化,项目风险管理的重要性日渐凸显,特别是软件项目,这类项目大多迭代快,在这过... 项目风险 项目风险 项目风险 项目风险 项目风险 客户需求不明确 项目风险 沟通风险 项目风险
2 敏捷软件项目风险管理探析 在敏捷实践中敏捷方法有利于降低项目风险,但它们通常不足以应对在某些场景(例如在高度规范的领域... 项目风险 项目风险 项目风险 项目风险 项目风险
3 B公司A软件项目风险管理 近年来,软件产品市场高速发展,信息安全也越来越被大家所关注,SM(国家涉密信息)软件行业更是... 需求风险 技术风险 人员风险 管理风险 需求风险 技术风险 人员风险 管理风险 需求风险 需...
4 S公司敏捷开发互联网软件项目的风险管理 随着科技的不断进步发展,信息技术发展至今已经非常成熟,其已经被广泛用于各行各业当中。为顺应时... 项目风险 开发风险 开发风险
... ... ... ...
592 长沙软件园有限公司项目管理成熟度评价研究 长沙软件园有限公司具体负责长沙国家软件产业基地的专业基础设施、软件开发环境建设及技术创新运营...
593 基于3G技术的“移动勘险”项目管理研究 随着世界移动互联网及物联网、云计算技术的发展,3G技术的优势得到了充分的发挥。智能手机的普及...
594 软件项目风险管理之探索 随着IT科技的飞速发展,软件项目的风险管理成为项目实施成功与否的重要环节。该文通过风险计划编... 项目风险
595 软件项目风险管理过程探析 软件项目风险管理是一个基于过程的管理。是对整个项目生命周期内可能遇到的风险进行预测、识别、分... 项目风险 项目风险 项目风险
596 SG公司人力资源管理信息系统开发项目的进度计划与控制研究 随着现代信息技术的发展,信息化管理软件逐渐成为现代企业提高效率、增加效益不可或缺的必要工具与...

597 rows × 3 columns

import jieba.analyse
text = ''
for i in range(len(df['cutword'])):
    text += df['cutword'][i]+'\n'
jieba.analyse.extract_tags(text,topK=20,withWeight=True)
[('项目风险', 8.96327305713358),
 ('需求变更', 0.434584893820764),
 ('需求风险', 0.3314630546090573),
 ('技术风险', 0.32409720895107824),
 ('管理风险', 0.287267980661183),
 ('开发风险', 0.15468275881756008),
 ('人力资源风险', 0.147316913159581),
 ('过程风险', 0.13258522184362292),
 ('人员风险', 0.11048768486968576),
 ('沟通风险', 0.08102430223776956),
 ('项目管理风险', 0.0736584565797905),
 ('成本超支', 0.058926765263832406),
 ('进度延期', 0.05156091960585336),
 ('成本风险', 0.05156091960585336),
 ('组织风险', 0.05156091960585336),
 ('技术复杂', 0.03682922828989525),
 ('团队风险', 0.029463382631916203),
 ('市场变化', 0.029463382631916203),
 ('业务风险', 0.029463382631916203),
 ('项目范围变更', 0.029463382631916203)]
from sklearn.feature_extraction.text import  CountVectorizer,TfidfVectorizer
from sklearn.decomposition import LatentDirichletAllocation
tf_vectorizer = TfidfVectorizer()
#tf_vectorizer = TfidfVectorizer(ngram_range=(2,2)) #2元词袋
X = tf_vectorizer.fit_transform(df.cutword)
#print(tf_vectorizer.get_feature_names_out())
print(X.shape)
(597, 54)
data1 = {'word': tf_vectorizer.get_feature_names(),
        'tfidf': X.toarray().sum(axis=0).tolist()}
df1 = pd.DataFrame(data1).sort_values(by="tfidf" ,ascending=False,ignore_index=True) 
df1.head(50)
word tfidf
0 项目风险 263.114700
1 技术风险 13.927242
2 管理风险 13.047944
3 需求风险 12.544134
4 需求变更 11.912484
5 开发风险 9.081740
6 过程风险 7.930715
7 人力资源风险 6.603049
8 人员风险 5.521073
9 成本超支 4.871734
10 进度延期 4.674772
11 项目管理风险 4.631457
12 沟通风险 3.740801
13 技术复杂 3.349597
14 组织风险 2.778550
15 业务风险 2.626922
16 市场变化 2.390404
17 市场风险 2.340672
18 成本风险 2.089939
19 团队风险 1.915098
20 沟通不畅 1.903461
21 合同风险 1.551550
22 项目范围变更 1.485818
23 需求变更频繁 1.468582
24 项目范围风险 1.464663
25 开发环境风险 1.295113
26 更新风险 1.288034
27 风险管理风险 1.173554
28 开发效率低 1.000000
29 员工流失 1.000000
30 用户风险 0.988988
31 运营风险 0.970427
32 产品风险 0.892363
33 管理层不支持 0.859065
34 用户需求变化 0.836008
35 范围变更 0.728814
36 设计不合理 0.707107
37 工作效率低 0.707107
38 项目质量风险 0.686501
39 时间风险 0.662809
40 产品性能不足 0.650848
41 需求不明确或不完整 0.640246
42 管理能力不足 0.626602
43 组织管理风险 0.612870
44 需求不明确 0.557005
45 新技术的使用 0.531023
46 使用新技术 0.495843
47 设计和实现风险 0.479658
48 计划编制风险 0.479658
49 客户需求不明确 0.463192
n_topics = 4  #分为10类
lda = LatentDirichletAllocation(n_topics=n_topics, max_iter=100,
                                learning_method='batch',
                                learning_offset=100,
#                                 doc_topic_prior=0.1,
#                                 topic_word_prior=0.01,
                               random_state=0)
lda.fit(X)
LatentDirichletAllocation(batch_size=128, doc_topic_prior=None,
             evaluate_every=-1, learning_decay=0.7,
             learning_method='batch', learning_offset=100,
             max_doc_update_iter=100, max_iter=100, mean_change_tol=0.001,
             n_jobs=1, n_topics=4, perp_tol=0.1, random_state=0,
             topic_word_prior=None, total_samples=1000000.0, verbose=0)
def print_top_words(model, feature_names, n_top_words):
    tword = []
    tword2 = []
    tword3=[]
    for topic_idx, topic in enumerate(model.components_):
        print("Topic #%d:" % topic_idx)
        topic_w = [feature_names[i] for i in topic.argsort()[:-n_top_words - 1:-1]]
        topic_pro=[str(round(topic[i],3)) for i in topic.argsort()[:-n_top_words - 1:-1]]  #(round(topic[i],3))
        tword.append(topic_w) 
        tword2.append(topic_pro)
        print(" ".join(topic_w))
        print(" ".join(topic_pro))
        print(' ')
        word_pro=dict(zip(topic_w,topic_pro))
        tword3.append(word_pro)
    return tword3
##输出每个主题对应词语和概率
n_top_words = 20
feature_names = tf_vectorizer.get_feature_names()
word_pro = print_top_words(lda, feature_names, n_top_words)
Topic #0:
技术复杂 业务风险 项目范围风险 需求变更频繁 开发效率低 产品性能不足 市场变化 新技术的使用 技术复杂性 项目风险 成本风险 技术风险 开发团队成员缺乏经验 市场风险 成本超支 风险管理风险 开发风险 管理能力不足 需求变更 组织风险
3.597 2.873 1.711 1.709 1.25 0.9 0.819 0.774 0.651 0.262 0.26 0.255 0.254 0.254 0.254 0.253 0.253 0.253 0.253 0.253
 
Topic #1:
人力资源风险 成本超支 进度延期 沟通风险 需求变更 市场变化 合同风险 项目范围变更 员工流失 运营风险 范围变更 工作效率低 设计不合理 需求不明确 客户需求不明确 技术变更 项目管理风险 项目风险 风险管理风险 技术风险
6.841 5.112 4.924 3.985 2.472 2.07 1.793 1.735 1.249 1.219 0.978 0.957 0.957 0.799 0.708 0.598 0.274 0.263 0.261 0.255
 
Topic #2:
项目风险 开发风险 市场风险 组织风险 更新风险 风险管理风险 需求不明确或不完整 管理能力不足 开发团队成员缺乏经验 技术复杂性 项目管理风险 客户需求不明确 技术风险 新技术的使用 成本风险 管理风险 成本超支 用户风险 使用新技术 人员风险
263.321 9.299 2.221 1.816 1.534 1.392 0.886 0.871 0.648 0.256 0.255 0.254 0.253 0.253 0.253 0.253 0.253 0.253 0.252 0.252
 
Topic #3:
技术风险 管理风险 需求风险 需求变更 过程风险 人员风险 项目管理风险 成本风险 团队风险 沟通不畅 开发环境风险 组织风险 用户风险 产品风险 管理层不支持 用户需求变化 项目质量风险 时间风险 组织管理风险 使用新技术
14.164 13.29 12.788 9.937 8.176 5.766 4.851 2.325 2.164 2.151 1.544 1.458 1.235 1.14 1.108 1.084 0.934 0.911 0.86 0.741

#输出每篇文章对应主题
topics=lda.transform(X)
topic=np.argmax(topics,axis=1)
df['topic']=topic
#df.to_excel("data_topic.xlsx",index=False)
print(topics.shape)
print(topics[0])
topic[0]
(597, 4)
[0.25 0.25 0.25 0.25]





0
import random   #定义随机生成颜色函数
def randomcolor():
    colorArr = ['1','2','3','4','5','6','7','8','9','A','B','C','D','E','F']
    color ="#"+''.join([random.choice(colorArr) for i in range(6)])
    return color
[randomcolor() for i in range(3)]
['#3149B8', '#A4E22C', '#2BE6D5']
from collections import Counter
from wordcloud import WordCloud
from matplotlib import colors
#from imageio import imread    #形状设置
#mask = imread('爱心.png')  
 
def generate_wordcloud(tup):
    color_list=[randomcolor() for i in range(10)]  #随机生成10个颜色
    wordcloud = WordCloud(background_color='white',font_path='simhei.ttf',#mask = mask, #形状设置
                          max_words=20, max_font_size=50,random_state=42,
                          colormap=colors.ListedColormap(color_list)       #颜色
                          ).generate(str(tup))
    return wordcloud
dis_cols = 4                  #一行几个
dis_rows = 3
dis_wordnum=20
plt.figure(figsize=(5 * dis_cols, 5 * dis_rows),dpi=128)
kind=len(df['topic'].unique())
 
for i in range(kind):
    ax=plt.subplot(dis_rows,dis_cols,i+1)
    most10 = [ (k,float(v)) for k,v in word_pro[i].items()][:dis_wordnum]  #高频词
    ax.imshow(generate_wordcloud(most10), interpolation="bilinear")
    ax.axis('off')
    ax.set_title("第{}类话题 前{}词汇".format(i,dis_wordnum), fontsize=30)
plt.tight_layout()
plt.show()

在这里插入图片描述


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

tf-idf+lda分析多篇文章摘要 的相关文章

  • tensorflow Protobuf编译问题

    我想为 google 对象检测 API 编译 protobuf 库 我按照官方教程输入protoc object detection protos proto python out 然后我得到的是 object detection prot
  • 重新索引错误没有意义

    I have DataFrames大小在 100k 到 2m 之间 我正在处理这个问题的框架是如此之大 但请注意 我必须对其他框架执行相同的操作 gt gt gt len data 357451 现在这个文件是通过编译许多文件创建的 所以它
  • Python grpc protobuf 存根生成问题:--grpc_out: protoc-gen-grpc: 插件失败,状态代码 1

    正如问题所说 我从源代码编译了 grpc 并且也做了sudo pip install grpcio 但是 那which grpc python plugin不返回任何内容 这是一个问题 因为route guide的grpc python示例
  • 在 Python 中绘制分类数据的三个维度

    我的数据包含三个我试图可视化的分类变量 城市 五个之一 职业 四种之一 血型 四种之一 到目前为止 我已经成功地以一种我认为易于使用的方式对数据进行了分组 import numpy as np pandas as pd Make data
  • Spyder 导入模块出错

    我正在尝试在 Spyder 中使用 sklearn 一开始 当我尝试导入它时 我收到 ImportError No module named sklearn 然后我用 PYTHONPATH 管理器设置 PATH 然后使用工具菜单中的 更新模
  • 小数缓存是Python规范中定义的还是一个实现细节?

    Python 似乎有一个所谓的 小数字缓存 用于存储 5 到 256 范围内的数字 我们可以使用以下程序来演示这一点 for i in range 7 258 if id i id i 0 print i is cached else pr
  • python 脚本中 os.system 的 256 和 512 响应代码是什么

    当我在 python 中使用 os system ping 服务器时 我得到多个响应代码 使用的命令 os system ping q c 30 s SERVERANME 0 在线 256 离线 512 512 是什么意思 Per the
  • 从主机名中提取域名

    是否有一种编程方式可以从给定的主机名查找域名 给出 gt www yahoo co jp 返回 gt yahoo co jp 有效但非常慢的方法是 拆分为 并从左侧删除 1 个组 使用 dnspython 加入并查询 SOA 记录 当返回有
  • 使用 3d 对象作为 3d 散点图中的标记 - Python

    使用下面的代码 我尝试模拟一个用罐头制成的碗 我希望每个标记都是一个罐头 最好的方法是什么 我真的很感激任何建议 谢谢 import pylab import numpy as np from math import pi sin cos
  • 使用 python 只读取 Excel 中的可见行

    我想只读取 python 中 Excel 工作表中的可见行 输入 Excel表 所以当我过滤时 作为 python 中的输出 在本例中我将仅获得可见数据 1 行 这是我的代码 from openpyxl import load workbo
  • PyCharm 无法识别字典值类型

    我有一个简单的代码片段 其中我将字典值设置为空列表 new dict for i in range 1 13 new dict i 现在 如果在下一行的循环内我会输入new dict i 并添加一个点 我希望 PyCharm 向我显示可用于
  • 根据给定列表中的值替换列中的值[重复]

    这个问题在这里已经有答案了 我在数据框中有一列 仅允许定义列表中存在的值 例如 给定列表 l1 1 2 5 6 如果列表中不存在列中的值 我需要将每个值替换为 0 column Expected column 1 1 5 5 2 2 3 0
  • 如何绘制多类分类器的精度和召回率?

    我正在使用 scikit learn 我想绘制精度和召回曲线 我正在使用的分类器是RandomForestClassifier scikit learn 文档中的所有资源都使用二元分类 另外 我可以绘制多类的 ROC 曲线吗 另外 我只找到
  • 使用 Python 脚本打开特定文件类型?

    如何使 Python 脚本成为特定文件类型 例如 foo 的默认应用程序 例如 当我双击 Finder Explorer 中的文件时 我希望该文件在 Python 脚本中打开 这可以在 Win 和 或 OS X 中实现吗 如果重要的话 该应
  • Celery:每个工作人员的 task_acks_late 的不同设置/向 celery 添加自定义选项

    这个问题是后续问题django celery 禁用一个工作者的预取 有错误吗 https stackoverflow com questions 58290045 django celery disable prefetch for one
  • 在python中安装scipy模块时出错

    我正在尝试使用 pip 在 python 中安装 scipy 模块 它显示以下错误 Command c users sony appdata local programs python python35 32 python exe u c
  • 如何加速 pandas 字符串函数?

    我正在使用 pandas 矢量化 str split 方法来提取从 上的拆分 返回的第一个元素 我还尝试使用 df apply 与 lambda 和 str split 来产生等效的结果 使用 timeit 时 我发现 df apply 的
  • 如何可视化多维数据上的 kmeans 聚类

    我在 mnist 数据集上使用 kmeans 聚类算法 并希望可视化聚类后的图 到目前为止我做了这个 from mnist import MNIST mndata MNIST Datasets X train y train mndata
  • 如何将 fields 参数传递到 Google Drive Python API 调用中

    I have results drive service files list body execute where body q query string maxResults 1 为了提高性能 我想限制返回的字段 如下所述 https
  • django admin 中内联模型的分页器

    我有这个简单的 django 模型 由一个传感器和特定传感器的值组成 每个日射强度计的值数量很多 gt 30k 是否可以以某种方式分页PyranometerValues在特定日期或一般情况下将分页器应用于管理内联视图 class Pyran

随机推荐

  • Vue路由跳转时报错TypeError: Cannot read properties of undefined (reading ‘$createElement‘)

    错误的原因 单词写错 将component写成components
  • css 实现虚线效果的3种方式详解

    一 效果 首先可以看一下下图显示的实现效果 用三种方式实现了虚线效果 点击查看demo代码 二 实现 1 border 属性 查看 mdn 的 border 我们知道 border 可以用于设置一个或多个以下属性的值 border widt
  • 【Web server failed to start. Port 8080 was already in use】解决方案

    问题描述 你是否遇到过这个问题呢 无论是初学者 还是中高级开发者 你都会遇到这个问题 我们就来总结一下 Web server failed to start Port 8080 was already in use Description
  • 刷脸支付俨然形成风口抓住风口才能起飞

    刷脸支付项项目的热度越来越高 更多的支付巨头参与到其中来 最近各大银行联合发布了刷脸支付刷脸付 把刷脸支付的热度推到一个新的高度 刷脸支付这么火热 各大支付巨头纷纷投入巨额资金抢占市场 随着我国支付行业的发展 刷脸支付已然成为下一代支付方式
  • 恶劣天气 3D 目标检测数据集收集

    Summary of the Adverse Weather 3D Object Detection Dataset DENSE数据集 CADC数据集 Ithaca365数据集 DENSE数据集 论文地址 https arxiv org p
  • 设备树(dtb数据)匹配struct machine_desc结构体

    1 函数调用关系 start kernel setup arch setup machine fdt 解析dtb数据 得到匹配的struct machine desc结构体 这是用来描述板级配置的 early init dt verify
  • Socket连接和Http连接

    Socket连接与HTTP连接 我们在传输数据时 可以只使用 传输层 TCP IP协议 但是那样的话 如果没有应用层 便无法识别数据内容 如果想要使传输的数据有意义 则必须使用到应用层协议 应用层协议有很多 比如HTTP FTP TELNE
  • 分数的拆分原理和方法_四年级数学计算方法和技巧汇总,附口算练习,赶紧给孩子看!...

    简便运算的方法 1 提取公因式 这个方法实际上是运用了乘法分配律 将相同因数提取出来 考试中往往剩下的项相加减 会出现一个整数 注意相同因数的提取 例如 0 92 1 41 0 92 8 59 0 92 1 41 8 59 2 借来借去法
  • java框架之ssh框架之认识

    SSH框架 1 SSH框架是什么 SSH框架是struts spring hibernate的一个集成框架 分为四层 表示层 业务逻辑层 数据持久层和域模块层 其中使用Struts作为系统的整体基础架构 负责MVC的分离 在Struts框架
  • 【实例分割】5、Look Closer to Segment Better

    文章目录 一 背景 二 动机 三 方法 3 1 Boundary Patch Extraction 3 2 Boundary Patch Refinement 3 3 Learning and Inference 四 实验 Paper ht
  • python语法-pyspark实战(数据输出)

    将RDD对象转化为python对象 1 collect算子 collect算子 功能 将RDD各个分区内的数据 统一收集到Driver中 形成一个list对象 用法 rdd collect 返回值是一个list 2 reduce算子 col
  • Jmeter实现登录不同的账号,去完成不同版本的业务流程

    一 思路 通过线程数量去控制你想要登录的用户数量 登录后获取可以区分不同业务流程的字段值 使用循环控制器 在循环控制器下添加if控制器从而去执行不同版本的业务流程 二 简单介绍一下思路中提到插件配置 线程组 方式一 方式二 2 获取登录后的
  • 百元买百鸡4

    题目 公鸡5元钱一只 母鸡3元钱一只 小鸡3只一元钱 用100元钱买一百只鸡 其中公鸡 母鸡 小鸡都必须要有 问公鸡 母鸡 小鸡要买多少只刚好凑足100元钱 思路 公鸡 母鸡 小鸡 100 5 公鸡 3 母鸡 小鸡 3 100 需要两个条件
  • 基于Java平台实现发送短信功能

    首先我们需要一个平台来帮助我们发送短信 而我们是调用它的接口 使用中国网建的SMS平台相对简单 因此需要去平台 https www smschinese com cn reg shtml 注册 1 跳转到注册页面并填写信息 2 注册后点击登
  • 申请软著详细流程

    相信有很多小白和本人一样不知道如何自己申请软著 只要耐心按照读完此文 保证自己可以独立申请啦 如果自己申请的话 目前软著登记是免费的 自己也就付个邮费 如果是加急的话 可以找三方代理机构办理 反正时间越短 价格越高 正常自己申请的话 最后拿
  • jQuery学习

    1 引入jqueryDownload jQuery jQuery 2 是jQuery的别称 以下两种等效 function div hide jQuery function jQuery div hide 3 jQuery对象和DOM对象
  • 线索二叉树(中序、先序和后序及遍历)

    链式存储 线索二叉树是二叉树的一类 在看线索二叉树之前我们先看一下二叉树的链式存储 一个二叉树的存储例子 后面用到的二叉树都是这棵 代码是这样的 public class BinaryTreeNode
  • 看看Docker Desktop WSL2 backend

    一 前言 这篇文章将通过 Docker Desktop 最新版以 WSL2 作后端 VirtualBox 和 VMware 最新版能和 Hype V 共存 等方面来表达笔者对微软重新认识 实际上笔者对 Docker 的使用也没多长时间 而且
  • 【包真】我的第一次webpack优化,首屏渲染从9s到1s

    大家好 我是猫小白 本文基于vue2 全文阅读大约需要3分钟 谈到webpack优化大部分人可能都看腻了 无非就那几招嘛 我之前也是看过许多类似的文章 但都没有自己真正上手过 下面是我用公司的项目真实操练下来的 首屏加载速度提升很大 刷刷的
  • tf-idf+lda分析多篇文章摘要

    import pandas as pd import numpy as np import matplotlib pyplot as plt import seaborn as sns plt rcParams font sans seri