Day14——Python文本挖掘数据分析

文章目录

    • 竞争分析-品类分布-适用对象
    • 竞争分析-产品结构-拜耳
    • 在这里插入图片描述
    • 竞争分析-产品结构-拜耳-BCG图
    • 竞争分析-产品结构-拜耳-明星
    • 竞争分析-产品结构-拜耳-奶牛
    • 竞争分析-产品结构-拜耳-问题
    • 竞争分析-产品结构-安速-BCG图
    • 竞争分析-产品结构-安速-明星
    • 竞争分析-产品结构-科凌虫控-BCG图
    • 竞争分析-产品结构-科凌虫控-明星
    • 竞争分析-产品结构-科凌虫控-奶牛
    • 竞争分析-产品结构-科凌虫控-问题
    • 竞争分析-流量结构-分析问题
    • 竞争分析-流量结构-拜耳
    • 竞争分析-流量结构-安速
    • 竞争分析-流量结构-科凌虫控
    • 舆情分析-文本挖掘基本流程
    • 舆情分析-关键词提取


竞争分析-品类分布-适用对象

分析各家的适用对象的分布

bai32 = df3bai.groupby('使用对象').sum()
an32 = df3an.groupby('适用对象').sum()
kl32 = df3kl.groupby('适用对象').sum()
#饼图  [0,1,2]
fig,axes = plt.subplots(1,3,figsize=(10,6)) 
ax = axes[0] #第一个拜耳
bai32['销售额'].plot.pie(autopct='%.f',title='拜耳',startangle=30,ax=ax)
ax.set_ylabel('')
ax = axes[1] #第二个安速
an32['30天销售额'].plot.pie(autopct='%.f',title='安速',startangle=60,ax=ax)
ax.set_ylabel('')
ax = axes[2] #第三个科凌虫控
kl32['30天销售额'].plot.pie(autopct='%.f',title='科凌虫控',startangle=90,ax=ax)
ax.set_ylabel('')
plt.show()

在这里插入图片描述
拜耳的主要对象是蟑螂,而另外两家除此之外还有螨,鼠;

而从之前的分析看灭鼠和蟑螂的整体市场份额都大;应该开拓新市场,尤其是灭鼠,也考察其他两家都开拓的螨市场。

竞争分析-产品结构-拜耳

使用商品交易数据,每个竞争者分开分析,先分析拜耳的数据 · 包含五个月的数据,每个商品至多五个月都有,至少有一个月,故需要对商品分类汇总, 如下为分类汇总前五行结果

os.chdir('..')
os.chdir('./商品交易数据')
filename3 = glob.glob('*.xlsx')
df4bai = pd.read_excel(filename3[1])
df4bai['商品'].value_counts().count()
#自定义分类汇总函数
def byproduct(df):
    dfb = df.groupby('商品').mean().loc[:,['交易增长幅度']] #交易增长幅度做均值
    dfb['交易金额'] = df.groupby('商品').sum()['交易金额']
    dfb['交易金额占比'] = dfb['交易金额']/dfb['交易金额'].sum()
    dfb['商品个数'] = df.groupby('商品').count()['交易金额'] 
    dfb.reset_index(inplace= True)
    return dfb
bai4 = byproduct(df4bai)
bai4.head()

在这里插入图片描述

其中交易增长幅度可表示市场发展率,交易金额占比可表示市场份额这两个指标的最大值都远大于3/4分位数,认为是异常值,考虑引入盖帽法,方便作图

竞争分析-产品结构-拜耳-BCG图

点的大小为商品个数,以中位数作为波士顿矩阵的分隔线,拜耳的BCG图如下

// An highlighted block
bai4.describe(percentiles=[0.1,0.9,0.99])
def block(x):
    qu = x.quantile(.9)
    out = x.mask(x>qu,qu) #当大于90%分位数的进行替换
    return(out)
def block2(df):
    df1 = df.copy()
    df1['交易增长幅度'] = block(df1['交易增长幅度']) #使用盖帽法进行替换交易增长幅度
    df1['交易金额占比'] = block(df1['交易金额占比']) #使用盖帽法进行替换交易增长幅度
    return df1
bai41 = block2(bai4)
bai41.describe(percentiles=[0.1,0.9,0.99])
# mean True  均值
# mean  False  中位数来分割(0.33 0.33)
def plotBOG(df,mean = False,q1=0.5,q2=0.5):
    f,ax = plt.subplots(figsize=(10,8))
    ax = sns.scatterplot('交易金额占比','交易增长幅度',hue='商品个数',size='商品个数',
                   sizes=(20,200),palette='cool',legend='full',data=df)
    #给所有的点加行索引,点对应的是行数据(对应商品),方便探索
    for i in range(0,len(df)):
        ax.text(df['交易金额占比'][i]+0.001,df['交易增长幅度'][i],i) #索引标注相对于x轴右移
    if mean:
        plt.axvline(df['交易金额占比'].mean())#垂线
        plt.axhline(df['交易增长幅度'].mean())#水平线
    else:
        plt.axvline(df['交易金额占比'].quantile(q1))#垂线
        plt.axhline(df['交易增长幅度'].quantile(q2))#水平线
    plt.show()
plotBOG(bai41,mean=True)

在这里插入图片描述
我们可以根据实际的业务选择区间的分隔线,由行业经验确定(例如认为增幅0.1在行业里算高,就可以作为分隔线)

从图可以看出:明星产品和奶牛产品的商品个数普遍比较多。

没有突出的明星产品,但是有快进入明星产品的问题产品。

竞争分析-产品结构-拜耳-明星

查看各个产品结构的产品(除了瘦狗)各种产品排序,关心点不同,排序依据不同-明星产品:都关心,依什么排序都可以,产品一般不多-奶牛产品:老爆款,关心市场份额,依交易金额占比排序-问题产品,潜力款,关心市场增长率,依交易增长幅度排序这里要查看实际数据,故使用盖帽前数据,拜耳明星产品如下:

// An highlighted block
def extractBOG(df,q1=0.5,q2=0.5,by='交易金额占比'):
    # 明星产品
    star = df.loc[(df['交易金额占比'] >= df['交易金额占比'].quantile(q1))#交易金额大于0.5
          & (df['交易增长幅度'] >= df['交易增长幅度'].quantile(q2)),:] #交易增长幅度大于0.5
    star = star.sort_values(by,ascending=False)
    # 爆款产品
    cow = df.loc[(df['交易金额占比'] >= df['交易金额占比'].quantile(q1))#交易金额大于0.5
          & (df['交易增长幅度'] < df['交易增长幅度'].quantile(q2)),:] #交易增长幅度小于0.5
    cow = cow.sort_values(by,ascending=False)
    # 问题产品
    que = df.loc[(df['交易金额占比'] < df['交易金额占比'].quantile(q1))#交易金额小于0.5
          & (df['交易增长幅度'] >= df['交易增长幅度'].quantile(q2)),:] #交易增长幅度大于0.5
    que = que.sort_values(by,ascending=False)
    
    return star,cow,que
bai4star,bai4cow,bai4que = extractBOG(bai4)

bai4star

在这里插入图片描述
主要是除蟑和杀虫,但是占比不大,增幅一般。

竞争分析-产品结构-拜耳-奶牛

产品结构-拜耳-奶牛

// An highlighted block
bai4cow

可见占比最高的是除蟑,灭虫也占一部分,占比一般

竞争分析-产品结构-拜耳-问题

// An highlighted block
bai4que

在这里插入图片描述
可见大部分仍然是灭蟑和杀虫 · 交易增长幅度最大的是灭鼠,而之前描述过灭鼠有最高的市场份额,可以作为下一步着 力点 · 总结:拜耳大部分产品集中在除蟑上,杀虫也有一定的规模,但是明星产品略乏力,可以 进一步发展问题产品灭鼠为明星产品

总结:拜耳大部分产品集中在除蟑上,杀虫也有一定的规模,但是明星产品略乏力,可以进一步发展问题产品灭鼠为明星产品。

竞争分析-产品结构-安速-BCG图

// An highlighted block
df4an = pd.read_excel(filename3[0])
df4an['商品'].value_counts().count()
an4 = byproduct(df4an)
an41 = block2(an4)
an41.describe(percentiles=[0.1,0.9,0.99])
plotBOG(an41)

在这里插入图片描述
可见奶牛产品足,明星产品部分有前途,问题产品部分有潜力,瘦狗产品不多。

竞争分析-产品结构-安速-明星

// An highlighted block
anstar,ancow,anque = extractBOG(an4)
#产品结构-安速-奶牛
ancow.head()
#产品结构-安速-问题
anque.head()

在这里插入图片描述
在这里插入图片描述

竞争分析-产品结构-科凌虫控-BCG图

科凌虫控数据

// An highlighted block
df4ke = pd.read_excel(filename3[2])
df4ke['商品'].value_counts().count()
ke4 = byproduct(df4ke)

ke4.head()
ke41 = block2(ke4)
ke41.describe(percentiles=[0.1,0.9,0.99])
plotBOG(ke41)

在这里插入图片描述
可见奶牛产品足,明星产品少,大部分竞争力强,问题产品部分有潜力,瘦狗产品少。

竞争分析-产品结构-科凌虫控-明星

// An highlighted block
#产品结构-科凌虫控-明星
kestar,kecow,keque = extractBOG(ke4)
kestar

在这里插入图片描述
主要是灭鼠,除螨和杀虫

竞争分析-产品结构-科凌虫控-奶牛

// An highlighted block
#产品结构-科凌虫控-奶牛
kecow.head()

在这里插入图片描述
主要是除蟑,有很小部分灭虫和灭鼠

竞争分析-产品结构-科凌虫控-问题

// An highlighted block
#产品结构-科凌虫控-问题
keque.head()

在这里插入图片描述
有较大潜力的是除螨

总结 科凌虫控积极发展多个产品,然而每个产品结构相对独立(奶牛除蟑,明星灭鼠,潜力除螨),没有后续的支持,竞争力不是那么强。

竞争分析-流量结构-业务逻辑 · 目前的流量主要由三大块构成:免费流量,付费流量和自主访问

一般的店铺占比是30%,10-15%,50-60%
免费流量中,搜索流量占60%,即搜索流量只占总流量的30%-40% · 付费流量没有特定的比例,合理的值是一般不超过40%(正常销售时期),如果此类目利 润率高竞争激烈,占比80%也有可能 · 看店铺付费流量比例是否健康,应该看广告费用在全店销售额的占比.一般控制在10% 左右.(同样的广告费用占比,降低CPC(点击成本),付费流量占比会上升) · 付费流量带动免费流量的前提:1.引来的流量是否适合你的店铺和宝贝;2.引流量要达 到一定的数量;3.宝贝适合市场 · 增加免费流量:一般是以小爆款带动,而这个时代小爆款层出不穷,一般建议主推两三 个宝贝,辅推三五个宝贝,合理安排推广预算占比 · 好的流量结构:1.合理的产品结构;2.宝贝标题(搜索流量的入口)的关键词布局;3.适当 的付费广告占比;4.尽可能提升流量入口数量;5.参考同行的流量结构

竞争分析-流量结构-分析问题

先看行业大盘,看是不是全行业如此 查看数据是否异常。如果大家的数据都来自第三方,和同行交流看是否也有相同问题 后台分析是主推宝贝单个下滑还是全店宝贝同步下滑  ○ 单个下滑:查看评价或库存,都没问题继续拆分,查看所有流量入口:    ■ 单个入口下滑:针对这个入口补救,如果这个入口是搜索流量入口,查验是否有强大的竞争对手;    ■ 所有流量入口下滑:拆分这个宝贝每一天的数据(收藏率,加购率,转化率,停留时长等),判断客户特征是否发生变化,即进来了和之前不同的人群,导致效果变差从而影响宝贝权重。  ○ 所有宝贝下滑:关注动态评分,尤其是售后评分,可能的原因有:季节,竞争对手,官方 活动。如果都不是,找异常数据:把看宝贝每一项数据的变化曲线,所有影响店铺权重的因素反推。 聊完分析方法后,下面我们正式用数据来分析一下。

竞争分析-流量结构-拜耳

// An highlighted block
os.chdir('..')
os.chdir('./流量渠道数据')
filename4 = glob.glob('*.xlsx')
filename4
df5bai = pd.read_excel(filename4[1])
# 只取交易指数排名前十的流量渠道
df0 = df5bai
top10 = df0.sort_values('交易指数',ascending=False).reset_index(drop=True).iloc[:10,:]
#计算交易指数占比,交易指数是销售额的反映
top10['交易指数占比'] = top10['交易指数']/top10['交易指数'].sum()
top10.set_index('流量来源',inplace=True)
#把付费的渠道  进行标记
paid = ['付费流量','直通车','淘宝客']
ind = np.any([top10.index == i for i in paid],axis=0) #true 为付费的
def flow(df):
    # 只取交易指数排名前十的流量渠道
    df0 = df.copy()
    top10 = df0.sort_values('交易指数',ascending=False).reset_index(drop=True).iloc[:10,:]
    #计算交易指数占比
    top10['交易指数占比'] = top10['交易指数']/top10['交易指数'].sum()
    top10.set_index('流量来源',inplace=True)
    #把付费的渠道  进行标记
    paid = ['付费流量','直通车','淘宝客']
    ind = np.any([top10.index == i for i in paid],axis=0) #true 为付费的
    explode = ind * 0.1 #相当于往外爆0.1的距离
    
    ax = top10['交易指数占比'].plot.pie(autopct='%.1f%%',
                            figsize=(8,8),colormap='cool',explode = explode)
    
    ax.set_ylabel('')
    plt.show()
    
    #输出占比:总交易指数、付费流量占比、付费流量带来的交易指数
    salesum = top10['交易指数'].sum() #总交易指数
    paidsum = top10['交易指数占比'][ind].sum() #付费流量占比
    paidsale = salesum * paidsum #付费流量带来的交易指数
    print(f'前十流量中:总交易指数:{salesum:.0f};付费流量占比:{paidsum*100:.2f}%;付费流量带来的交易指数:{paidsale:.0f}')
    
    return top10
bai5 = flow(df5bai)

在这里插入图片描述
前十流量中:总交易指数:2334051;付费流量占比:21.85%;付费流量带来的交易指数:509959
前10流量中:总交易指数:2334051;付费流量占比:21.85%;付费流量带来交易指数:509959。

竞争分析-流量结构-安速

// An highlighted block
df5an = pd.read_excel(filename4[0])
# 只取交易指数排名前十的流量渠道
df0 = df5an
top10 = df0.sort_values('交易指数',ascending=False).reset_index(drop=True).iloc[:10,:]
#计算交易指数占比
top10['交易指数占比'] = top10['交易指数']/top10['交易指数'].sum()
top10.set_index('流量来源',inplace=True)
#把付费的渠道  进行标记
paid = ['付费流量','直通车','淘宝客']
ind = np.any([top10.index == i for i in paid],axis=0) #true 为付费的
ind
an5 = flow(df5an)

在这里插入图片描述
前十流量中:总交易指数:748539;付费流量占比:18.58%;付费流量带来的交易指数:139048
前10流量中:总交易指数:748539;付费流量占比:18.58%;付费流量带来交易指数:139048。

可见拜耳和安速的流量配比是差不多的,安速的整体流量小很多,即流量效果拜耳明显优于安速。

竞争分析-流量结构-科凌虫控

// An highlighted block
df5ke = pd.read_excel(filename4[2])
# 只取交易指数排名前十的流量渠道
df0 = df5ke
top10 = df0.sort_values('交易指数',ascending=False).reset_index(drop=True).iloc[:10,:]
#计算交易指数占比
top10['交易指数占比'] = top10['交易指数']/top10['交易指数'].sum()
top10.set_index('流量来源',inplace=True)
top10
#把付费的渠道  进行标记
paid = ['付费流量','直通车','淘宝客']
ind = np.any([top10.index == i for i in paid],axis=0) #true 为付费的
ke5 = flow(df5ke)

在这里插入图片描述

前十流量中:总交易指数:1918111;付费流量占比:25.51%;付费流量带来的交易指数:489263
前10流量中:总交易指数:1918111;付费流量占比:25.51%;付费流量带来交易指数:489263。

和拜耳在流量上差不多,科凌虫控付费占比较高 可见拜耳在流量结构上是有优势的,要保持这个优势

舆情分析-文本挖掘基本流程

使用的数据是评论数据,即文本数据 · 文本数据的分析过程主要有:清洗,可视化,建模.这里针对中文文本

清洗基本流程:1.替换非中英文字符为空格;2.分词(结巴jieba);3.去掉停用词(对描 述和建模无意义的词);4.筛选高频词.此流程需要反复尝试对比效果
可视化:一般都是词云,可能配合关键词排序等
建模:建模前需要将数据转成文档词矩阵(dtm);有监督的话常用的是贝叶斯,其他 偏精度的算法也可以,要注意特征个数;无监督常用的是主题模型LDA,其他诸如 分群,情感分析也可以 · 清洗流程中,尤其是口语化较强的数据,例如评论数据,需要去除重复语句,以及字数少 于某个阈值的评论.

// An highlighted block
os.chdir('..')
os.chdir('./评论舆情数据')
filename = glob.glob('*.xlsx')

filename
df6bai = pd.read_excel(filename[1])

bai6 = list(df6bai['评论'])

bai6[:5] # 提取5条看一看
bai61 = [re.sub(r'[^a-z\u4E00-\u9Fa5]+',' ',i,
                flags=re.I) for i in bai6]#中文字符  \u4E00-\u9Fa5  flags=re.I 不区分大小写
bai61[:5]
jieba.lcut('真心坑人啊 还没到 小时就凝固了 小强依然活跃')
# 先读取停用词

# 原始字符串
stopwords = list(pd.read_csv(r'C:\Users\86199\Desktop\data\百度停用词表.txt',
                             names=['stopwords'])['stopwords'])
bai62 = []
for i in bai61:
    #对每条评论分析
    seg1 = pd.Series(jieba.lcut(i))
    ind1 = pd.Series([len(j) for j in seg1])>1 #长度大于1的保留   
    seg2 = seg1[ind1]
    #去掉停用词 isin
    ind2 = ~seg2.isin(pd.Series(stopwords))
    seg3 = list(seg2[ind2].unique())#去重一下
    if len(seg3)>0:
        bai62.append(seg3)
bai62[0]  #得到的是大列表套小列表
#组合多个列表到一个列表:
bai63 = [y for x in bai62 for y in x]

bai63[:5]

#词频统计
baifreq = pd.Series(bai63).value_counts()

baifreq[:10]  # 看下前10个词
#而构建一个词云所需要的数据 一个巨大字符串 (用空格分隔的词):
bai64 = ' '.join(bai63)
import imageio
from wordcloud import WordCloud
import matplotlib.pyplot as plt

# 读取图像作为词云的形状遮罩
mask = imageio.imread(r'C:\Users\86199\Desktop\data\leaf.jpg')

# 使用正确的字体路径(确保是TrueType格式的字体)
font_path = r'C:\Users\86199\Desktop\data\simhei.ttf'

# 生成词云,这里的文本数据(bai64)需要根据您的实际需求来提供
wc = WordCloud(background_color='white', mask=mask, font_path=font_path).generate(bai64)

# 显示词云图像
plt.figure(figsize=(8, 8))
plt.imshow(wc, interpolation='bilinear')
plt.axis('off')  # 不显示坐标轴
plt.show()

在这里插入图片描述

舆情分析-关键词提取

不管从词云还是关键词来看,评价偏好评,没有明显问题可以在停用词中添加好评,蟑螂可以再看效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/728705.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vue3项目使用Electron打包成exe的方法与打包报错解决

将vue3项目打包成exe文件方法 一、安装 1.安装electron npm install electron --save-devnpm install electron-builder --save-dev 2.在vue项目根目录新建文件index.js // index.js// Modules to control application life and create native browser window const { app…

Python日志管理利器:如何高效管理平台日志

一、为什么需要日志管理&#xff1f; 日志是应用程序的重要组成部分&#xff0c;它记录了应用程序的运行状态、错误信息以及用户交互等关键信息。良好的日志管理可以帮助开发人员及时发现和解决问题&#xff0c;提高应用程序的稳定性和可靠性。 项目在本地开发调试时&#xf…

AGI的多模态融合

在人工智能的宏伟蓝图中&#xff0c;人工通用智能&#xff08;AGI&#xff09;代表着一个集大成者&#xff0c;一个能够理解、学习、适应并执行任何智能任务的系统。随着我们对AGI的探索愈发深入&#xff0c;尤其是在视觉、语言和其他模态的融合上&#xff0c;关于AGI的讨论愈发…

详解DAC数模转换+DAC输出模拟电压的测量比对实验程序

前言&#xff1a;详解DAC数模转换原理DAC输出模拟电压的测量比对实验程序&#xff08;使用 DAC 通道 1 输出模拟电压&#xff0c;然后通过 ADC1 的通道 1 对该输出电压进行读取&#xff0c;并显示在 LCD 模块上面&#xff0c;DAC 的输出电压可以通过按键&#xff08;或 USMART&…

PostgreSQL的学习心得和知识总结(一百四十五)|深入理解PostgreSQL数据库之ShowTransactionState的使用及父子事务有限状态机

目录结构 注&#xff1a;提前言明 本文借鉴了以下博主、书籍或网站的内容&#xff0c;其列表如下&#xff1a; 1、参考书籍&#xff1a;《PostgreSQL数据库内核分析》 2、参考书籍&#xff1a;《数据库事务处理的艺术&#xff1a;事务管理与并发控制》 3、PostgreSQL数据库仓库…

Kubernetes部署Kanboard看板管理平台

【云原生】Kubernetes部署Kanboard项目管理平台 文章目录 【云原生】Kubernetes部署Kanboard项目管理平台介绍资源列表基础环境一、检查k8s环境1.1、检查工作节点状态1.2、检查系统pod状态 二、编辑kanboard.yaml文件2.1、创建项目目录2.2、编辑kanboard.yaml文件 三、部署Kanb…

Hadoop三大组件原理详解:hdfs-yarn-MapReduce(第9天)

系列文章目录 一、HDFS读写原理【重点】 二、YARN提交mr流程【重点】 三、MapReduce计算流程【重点】 文章目录 系列文章目录前言一、HDFS读写原理[面试]1、HDFS数据写入解析2、HDFS数据读取解析 二、YARN提交mr流程[面试]1. YARN提交mr过程解析 三、MapReduce计算流程[面试]1…

探索监管沙箱在金融科技行业中的应用

一、引言 随着金融科技的快速发展&#xff0c;传统金融机构与科技企业之间的竞争也日趋激烈。为了平衡金融科技创新与风险防控&#xff0c;各国监管机构纷纷引入监管沙箱&#xff08;Regulatory Sandbox&#xff09;机制。监管沙箱作为一个受监督的安全测试区&#xff0c;允许金…

MySQL 面试突击指南:核心知识点解析1

MySQL中有哪些存储引擎? InnoDB存储引擎 InnoDB是MySQL的默认事务型引擎,也是最重要、使用最广泛的存储引擎,设计用于处理大量短期事务。 MyISAM存储引擎 在MySQL 5.1及之前版本,MyISAM是默认的存储引擎。它提供了全文索引、压缩、空间函数(GIS)等特性,但不支持事务和…

台积电(TSMC)正在探索采用新型先进芯片封装技术

台积电&#xff08;TSMC&#xff09;正在探索采用新型先进芯片封装技术&#xff0c;使用类似面板的矩形基板&#xff0c;以应对日益增长的先进多芯片组处理器需求。据日经亚洲报道&#xff0c;这项开发仍处于早期阶段&#xff0c;可能需要数年时间才能商业化&#xff0c;但如果…

Python酷库之旅-第三方库openpyxl(01)

目录 一、 openpyxl库的由来 1、背景 2、起源 3、发展 4、特点 4-1、支持.xlsx格式 4-2、读写Excel文件 4-3、操作单元格 4-4、创建和修改工作表 4-5、样式设置 4-6、图表和公式 4-7、支持数字和日期格式 二、openpyxl库的优缺点 1、优点 1-1、支持现代Excel格式…

【C语言 || 数据结构】二叉树

文章目录 前言 二叉树1.树1.1树的定义1.2 树的结构 2.特殊的树&#xff08;二叉树&#xff09;2.1 二叉树的概念2.2 特殊的二叉树2.3 二叉树的储存2.3.1 顺序储存二叉树2.3.2 链表储存二叉树 2.4 二叉树的遍历2.4.1 二叉树的中序遍历2.4.2 二叉树的前序遍历2.4.3 二叉树的后序遍…

【React】使用Token做路由权限控制

在components/AuthRoute/index.js中 import { getToken } from /utils import { Navigate } from react-router-domconst AuthRoute ({ children }) > {const isToken getToken()if (isToken) {return <>{children}</>} else {return <Navigate to"/…

Solr9 如何使用 DIH 读取数据库索引数据

使用 Solr 9 中的数据导入处理程序&#xff08;DIH&#xff09; DIH&#xff08;Data Import Handler&#xff09;提供了一种可配置的方式向 Solr 中导入数据。 从 Solr 9 开始&#xff0c;数据导入处理程序&#xff08;DIH&#xff09;已经不再直接包含在 Solr 中&#xff0c…

【Linux】关于在华为云中开放了端口后仍然无法访问的问题

已在安全组中添加规则: 通过指令: netstat -nltp | head -2 && netstat -nltp | grep 8080 运行结果: 可以看到服务器确实处于监听状态了. 通过指令 telnet 公网ip port 也提示: "正在连接xxx.xx.xx.xxx...无法打开到主机的连接。 在端口 8080: 连接失败"…

[WTL/Win32]_[中级]_[MVP架构在实际项目中的应用]

场景 在开发Windows和macOS的界面软件时&#xff0c;Windows用的是WTL/Win32技术&#xff0c;而macOS用的是Cocoa技术。而两种技术的本地语言一个主打是C,另一个却是Object-c。界面软件的源码随着项目功能增多而增多&#xff0c;这就会给同步Windows和macOS的功能造成很大负担…

数据驱动制造:EMQX ECP 指标监测功能增强生产透明度

迈向未来的工业生产&#xff0c;需要的不仅是自动化&#xff0c;更是智能化。如果工业企业的管理者能够实时监测每一生产环节的设备运行状态&#xff0c;每一数据点位情况&#xff0c;洞察和优化每一步生产流程&#xff0c;他们将能够做出更精准的决策&#xff0c;提高生产效率…

记录SpringBoot启动报错解决

记录SpringBoot启动报错解决 报错现场 Failed to configure a DataSource: url attribute is not specified and no embedded datasource could be configured. Reason: Failed to determine a suitable driver class Action: Consider the following:If you want an embedde…

紧凑型计算微型仿生复眼

欢迎关注&#xff1a;GZH《光场视觉》 图1 研制的计算微型复眼的成像原理 1. 导读 微型曲面复眼由于具有大视场成像、大景深成像、体积较小的优势&#xff0c;在机器视觉、无人机导航、生物灵感机器人等领域引起了广泛关注。然而&#xff0c;传统的微型曲面复眼存在设计/加工…

44、基于深度学习的癌症检测(matlab)

1、基于深度学习的癌症检测原理及流程 基于深度学习的癌症检测是利用深度学习算法对医学影像数据进行分析和诊断&#xff0c;以帮助医生准确地检测癌症病变。其原理和流程主要包括以下几个步骤&#xff1a; 数据采集&#xff1a;首先需要收集包括X光片、CT扫描、MRI等医学影像…