带货视频评论的用户洞察 科大讯飞AI算法赛 Datawhale AI夏令营

赛题

2025 iFLYTEK AI开发者大赛https://challenge.xfyun.cn/topic/info?type=video-comment-insight

一、赛事背景

在电商直播爆发式增长的数字化浪潮下,短视频平台积累了海量带货视频及用户互动数据。这些数据不仅是消费者对商品体验的直接反馈,更蕴含着驱动商业决策的深层价值。在此背景下,基于带货视频评论的用户洞察分析,已成为品牌优化选品策略、评估网红带货效能的关键突破口。

带货视频评论用户洞察的核心逻辑,在于对视频内容与评论数据的联合深度挖掘。通过智能识别视频中推广的核心商品,结合评论区用户的情感表达与观点聚合,企业能够精准捕捉消费者对商品的真实态度与需求痛点。这种分析方式不仅能揭示用户对商品功能、价格、服务的多维评价,还可通过情感倾向聚类,构建消费者偏好画像,为选品策略优化和网红合作评估提供数据支撑。

本挑战赛聚焦"商品识别-情感分析-聚类洞察"的完整链条:参赛者需先基于视频内容建立商品关联关系,进而从非结构化评论中提取情感倾向,最终通过聚类总结形成结构化洞察。这一研究路径将碎片化的用户评论转化为可量化分析的商业智能,既可帮助品牌穿透数据迷雾把握消费心理,又能科学评估网红的内容种草效果与带货转化潜力,实现从内容营销到消费决策的全链路价值提升。在直播电商竞争白热化的当下,此类分析能力正成为企业构建差异化竞争优势的核心武器。

二、赛事任务

参赛者需基于提供的带货视频文本及评论文本数据,完成以下三阶段分析任务:

1)【商品识别】精准识别推广商品;

2)【情感分析】对评论文本进行多维度情感分析,涵盖维度见数据说明;

3)【评论聚类】按商品对归属指定维度的评论进行聚类,并提炼类簇总结词。

三、评审规则

1.平台说明

参赛选手可基于星火大模型Spark 4.0 Ultra、星火文本向量化模型、其他开源大模型,或采用传统机器学习与深度学习方法完成任务,亦可通过微调开源模型进行洞察分析。

关于星火大模型Spark 4.0 Ultra和文本向量化模型的资源,组委会将为报名参赛选手统一发放API资源福利,选手用参赛账号登录讯飞开放平台个人控制台:控制台-讯飞开放平台 ,点击应用,查询API能力和接口文档。

微调资源不统一发放,参赛期间选手如希望使用讯飞星辰MaaS平台进行微调,可前往讯飞星辰MaaS平台-官网 ,完成实名认证后领取微调代金券资源并开启答题。请注意统一用参赛账号登录星辰MaaS平台;如在比赛前已参与活动则无法重复领取。星辰代金券消耗完毕后,如需继续使用,选手自行选择按需付费。

2.数据说明

本次挑战赛为参赛选手提供包含85条脱敏后的带货视频数据及6477条评论文本数据,数据包括少量有人工标注结果的训练集(仅包含商品识别和情感分析的标注结果)以及未标注的测试集。所有数据均经过脱敏处理,确保信息安全,其格式说明如下:

1)带货视频内容文本信息的数据格式

序号变量名称变量格式解释
1video_idstring视频id
2video_descstring视频描述
3video_tagsstring视频标签
4product_namestring推广商品名称

注:product_name需根据提供的视频信息进行提取,并从匹配到商品列表[Xfaiyx Smart Translator, Xfaiyx Smart Recorder]中的一项。

2)评论区文本信息的数据格式

序号变量名称变量格式解释
1video_idstring视频id
2comment_idstring评论id
3comment_textstring评论文本
4sentiment_categoryint关于商品的情感倾向分类
5user_scenarioint是否与用户场景有关,0表示否,1表示是
6user_questionint是否与用户疑问有关,0表示否,1表示是
7user_suggestionint是否与用户建议有关,0表示否,1表示是
8positive_cluster_themestring按正面倾向聚类的类簇主题词
9negative_cluster_themestring按负面倾向聚类的类簇主题词
10scenario_cluster_themestring按用户场景聚类的类簇主题词
11question_cluster_themestring按用户疑问聚类的类簇主题词
12suggestion_cluster_themestring按用户建议聚类的类簇主题词

注:

a.需进行情感分析的字段包括sentiment_category、user_scenario、user_question和user_suggestion。训练集中部分数据已提供标注,测试集需自行预测。其中字段sentiment_category情感倾向分类的数值含义见下表:

分类值12345
含义正面负面正负都包含中性不相关

b.需进行聚类的字段包括:

  • positive_cluster_theme:基于训练集和测试集中正面倾向(sentiment_category=1 或 sentiment_category=3)的评论进行聚类并提炼主题词,聚类数范围为 5~8。
  • negative_cluster_theme:基于训练集和测试集中负面倾向(sentiment_category=2 或 sentiment_category=3)的评论进行聚类并提炼主题词,聚类数范围为 5~8。
  • scenario_cluster_theme:基于训练集和测试集中用户场景相关评论(user_scenario=1)进行聚类并提炼主题词,聚类数范围为 5~8。
  • question_cluster_theme:基于训练集和测试集中用户疑问相关评论(user_question=1)进行聚类并提炼主题词,聚类数范围为 5~8。
  • suggestion_cluster_theme:基于训练集和测试集中用户建议相关评论(user_suggestion=1)进行聚类并提炼主题词,聚类数范围为 5~8。

注意,聚类样本包含训练集和测试集的全部满足上述条件的评论样本。

3.评估指标

本挑战赛依据参赛者提交的结果文件,采用不同评估方法对各阶段任务进行评分。最终得分由三部分相加,总分300分。具体评估标准如下:

1)商品识别(100分)

结果采用精确匹配评估,每个正确识别的商品得1分,错误识别的商品得0分。该阶段总评分计算公式如下:

2)情感分析(100分)

结果评估采用加权平均F1-score,衡量分类模型的整体性能。该阶段总评分计算公式如下:

其中F1ᵢ为维度i的分析结果的加权F1-score,N为情感类别总数。

3)评论聚类(100分)

结果评估采用轮廓系数(仅计算商品识别和情感分析均正确的评论聚类结果),衡量聚类结果的紧密性和分离度。该阶段总评分计算公式如下:

其中Silhouette coefficientᵢ为维度i的聚类结果的轮廓系数,M为需聚类的维度总数。

4.评测及排行

1)本赛题均提供下载数据,选手在本地进行算法调试,在比赛页面提交结果。

请注意:测试集仅可用于输出最终的推理结果,不可以任何形式参与训练过程。

2)排行按照得分从高到低排序,排行榜将选择团队的历史最优成绩进行排名。

四、作品提交要求

1.文件格式:提交submit.zip压缩包文件,内含submit文件夹,文件内为submit_videos.csv(内含字段video_id, product_name)和submit_comments.csv(内含字段video_id, comment_id, sentiment_category, user_scenario, user_question, user_suggestion, positive_cluster_theme, negative_cluster_theme, scenario_cluster_theme, question_cluster_theme, suggestion_cluster_theme)文件

2.文件大小:无要求

3.提交次数限制:每支队伍每天最多3次

4.文件详细说明:编码为UTF-8,第一行为表头

5.关于大模型的使用说明&限制

1)为了排除人工校验、修正等作弊方式,本次比赛除了提交答案之外,排行榜前3名选手需提供完整的源代码,要求洞察分析结果必须可以准确复现。

2)允许使用微调开源模型的方式进行洞察分析,微调的开源模型不做限制。

baseline

import pandas as pd
video_data = pd.read_csv("origin_videos_data.csv")
comments_data = pd.read_csv("origin_comments_data.csv")

目标:读取视频数据(video_data)和评论数据(comments_data),其中视频数据包含视频描述、标签等信息,评论数据包含评论文本及部分标注结果。
问题:部分视频的product_name为空,需通过模型预测填补。

video_data["text"] = video_data["video_desc"].fillna("") + " " + video_data["video_tags"].fillna("")

目标:将视频描述(video_desc)和标签(video_tags)合并为统一文本特征,用于商品识别模型训练。
优化建议:
可添加停用词过滤或同义词扩展(如“翻译器”与“Translator”映射),提升模型泛化能力。
考虑使用TF-IDF加权而非简单拼接,以捕捉关键词重要性。

from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.linear_model import SGDClassifier
from sklearn.pipeline import make_pipelineproduct_name_predictor = make_pipeline(TfidfVectorizer(tokenizer=jieba.lcut, max_features=50), SGDClassifier()
)
product_name_predictor.fit(video_data[~video_data["product_name"].isnull()]["text"],video_data[~video_data["product_name"].isnull()]["product_name"],
)
video_data["product_name"] = product_name_predictor.predict(video_data["text"])

目标:基于视频文本信息(描述+标签)预测推广商品名称(Xfaiyx Smart Translator或Xfaiyx Smart Recorder)。
关键点:
文本向量化:使用jieba分词和TF-IDF提取文本特征(最大特征数50)。
分类模型:采用线性SVM(SGDClassifier)进行二分类。
问题与优化:
数据不足:标注样本较少(仅85条视频数据),可能导致模型过拟合。
优化建议:
增加数据增强(如替换近义词、调整语序)。
集成星火大模型(Spark 4.0 Ultra)进行文本特征提取或直接调用商品识别API。

for col in ['sentiment_category', 'user_scenario', 'user_question', 'user_suggestion']:predictor = make_pipeline(TfidfVectorizer(tokenizer=jieba.lcut), SGDClassifier())predictor.fit(comments_data[~comments_data[col].isnull()]["comment_text"],comments_data[~comments_data[col].isnull()][col],)comments_data[col] = predictor.predict(comments_data["comment_text"])

目标:对评论进行多维度分类,包括:
情感倾向(sentiment_category):1(负面)、2(中性)、3(正面)、5.0(强烈正面)。
用户场景相关性(user_scenario):0(否)、1(是)。
用户疑问(user_question):0(否)、1(是)。
用户建议(user_suggestion):0(否)、1(是)。
关键点:
使用TF-IDF向量化评论文本,训练独立的SGD分类器。
问题与优化:
类别不平衡:部分标注可能偏向某些类别(如正面评论较多),需调整类别权重(class_weight='balanced')。
模型选择:可尝试更复杂的模型(如随机森林、神经网络)或集成星火大模型的文本分类能力。

kmeans_predictor = make_pipeline(TfidfVectorizer(tokenizer=jieba.lcut), KMeans(n_clusters=2)
)
kmeans_predictor.fit(comments_data[comments_data["sentiment_category"].isin([1, 3])]["comment_text"])

目标:对情感倾向为1(负面)或3(正面)的评论进行聚类,提取主题词。
主题词提取逻辑:
计算聚类中心的TF-IDF权重,选取前10个高频词作为主题词。
问题与优化:
簇数选择:固定n_clusters=2可能不适用于所有视频,建议动态调整簇数(如基于轮廓系数)。
主题相关性:部分主题词可能与商品无关(如“谢谢”),需过滤停用词或结合领域知识优化。

video_data[["video_id", "product_name"]].to_csv("submit/submit_videos.csv", index=None)
comments_data[['video_id', 'comment_id', 'sentiment_category', 'user_scenario', 'user_question', 'user_suggestion', 'positive_cluster_theme', 'negative_cluster_theme', 'scenario_cluster_theme', 'question_cluster_theme', 'suggestion_cluster_theme'
]].to_csv("submit/submit_comments.csv", index=None)

目标:输出视频商品预测结果和评论分析结果。
验证建议:
检查输出文件是否包含所有必填字段(如positive_cluster_theme)。
确保未标注数据(测试集)的预测结果已正确填充。

!mkdir submit
!zip -r submit.zip submit/

压缩submit/目录中的两个CSV文件(submit_videos.csv和submit_comments.csv)。

后续修改思路

一、商品识别优化:规则+模型混合策略

  1. 规则匹配(rule_based_product

    • 技术细节
      • 构建商品关键词词典(如"翻译"对应"translator"),通过统计关键词出现次数进行匹配。
      • 采用大小写不敏感的count方法,确保多语言兼容性(如德语Übersetzer、意大利语traduttore)。
    • 修改原因
      • 解决数据不足问题:原始模型仅依赖85条标注数据,容易过拟合。规则匹配利用商品名称与关键词的强关联性,直接覆盖明确样本。
      • 提升泛化能力:通过多语言关键词覆盖不同地区的视频描述(如含德语、意大利语的视频)。
  2. 混合策略(规则优先,模型兜底)

    • 技术细节
      • 规则无法判断的模糊样本(如关键词计数相等)交由模型处理。
      • 模型训练仅使用标注数据(train_mask),避免污染测试集。
    • 修改原因
      • 降低模型复杂度:规则过滤后,模型仅需处理少量模糊样本,减少训练难度。
      • 提升准确性:规则覆盖明确场景,模型补充复杂场景,形成互补。

二、情感分析优化:模型定制与异常处理

  1. 模型选择优化

    • 技术细节
      • 多分类任务(sentiment_category
        • 使用RandomForestClassifier(100棵树),结合ngram_range=(1,2)捕捉上下文关联(如“语音翻译”)。
        • class_weight="balanced"解决类别不平衡问题。
      • 二分类任务(用户场景/疑问/建议)
        • 使用SGDClassifier(loss="log_loss"),等效于逻辑回归,适合轻量级任务。
        • 添加stop_words="english"过滤无意义英文停用词(如"I""the")。
    • 修改原因
      • 提升模型性能:随机森林适合多分类任务的复杂模式,而逻辑回归适合二分类任务的高效训练。
      • 避免过拟合:通过ngramstop_words控制特征维度,平衡模型复杂度。
  2. 标签类型与异常处理

    • 技术细节
      • 将标签转换为int类型(astype(int)),避免浮点数误差。
      • sentiment_category的预测结果进行范围校验(apply(lambda x: x if 1<=x<=5 else 5))。
    • 修改原因
      • 确保输出格式合规:提交文件要求整数类型,避免因类型错误导致评分失败。
      • 修正异常预测:模型可能因噪声数据输出非法值(如06),通过校验确保结果在[1,5]范围内。

三、评论聚类优化:动态聚类数与关键词提取

  1. 动态选择聚类数(find_optimal_k

    • 技术细节
      • 基于**轮廓系数(Silhouette Score)**评估聚类质量,自动选择[5,8]区间内的最佳k值。
      • 使用TF-IDF向量化文本,结合KMeans计算聚类标签。
    • 修改原因
      • 适应不同数据分布:固定n_clusters=2可能导致过度简化(如用户疑问评论需更多簇)。
      • 提升聚类有效性:轮廓系数量化聚类紧密度,避免人工选择不合理的簇数。
  2. 关键词提取优化(get_cluster_keywords

    • 技术细节
      • 计算每个词的平均TF-IDF值,而非简单取前N个高频词。
      • 通过X.mean(axis=0)获取全局重要性,过滤低权重词汇(如停用词)。
    • 修改原因
      • 增强主题相关性:平均TF-IDF反映词对聚类的整体贡献,而非局部高频(如标点符号)。
      • 减少噪声干扰:避免因个别文档中高频但无意义的词(如"it")主导主题。
  3. 数据类型兼容性处理

    • 技术细节
      • 在赋值前将目标列(如positive_cluster_theme)转换为str类型。
    • 修改原因
      • 避免KeyErrorFutureWarning:原始列可能包含NaNfloat类型,导致字符串列表赋值失败。

四、其他优化:文本清洗与噪声处理

  1. 强化文本清洗(clean_text/clean_comment

    • 技术细节
      • 去除HTML标签(如<br>)、特殊符号(非字母数字和中文)。
      • 移除单字符(如"I")和多余空格,保留有效词汇。
    • 修改原因
      • 提升特征质量:噪声字符(如"ü.")会干扰TF-IDF和模型训练。
      • 增强跨语言兼容性:保留中文字符,支持多语言评论分析。
  2. 代码执行顺序调整

    • 技术细节
      • 在商品识别前显式创建video_data["text"]列,并应用清洗函数。
    • 修改原因
      • 避免KeyError:原始代码可能因执行顺序错误导致"text"列未定义。

分数

上涨了约40分,暂时排名前5%

参考文章

2025 iFLYTEK AI开发者大赛https://challenge.xfyun.cn/topic/info?type=video-comment-insight&option=ssgy&ch=dwsfsp25-1Datawhale-AI活动https://www.datawhale.cn/activity/324/learn/191/4330ModelScope 魔搭社区ModelScope——汇聚各领域先进的机器学习模型,提供模型探索体验、推理、训练、部署和应用的一站式服务。在这里,共建模型开源社区,发现、学习、定制和分享心仪的模型。https://www.modelscope.cn/my/mynotebook/preset

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JAVA生成PDF(itextpdf)

java生成PDF有多种方式&#xff0c;比如itextpdf、 Apache PDFBox、Flying Saucer (XHTMLRenderer)、 OpenPDF等。今天要介绍的是itextpdf&#xff0c;及在开发过程中处理的问题。1. 引入POM<!--PDF导出POM--><dependency><groupId>com.itextpdf</groupId…

[爬虫知识] 深入理解多进程/多线程/协程的异步逻辑

相关爬虫实战案例&#xff1a;[爬虫实战] 多进程/多线程/协程-异步爬取豆瓣Top250 相关爬虫专栏&#xff1a;JS逆向爬虫实战 爬虫知识点合集 爬虫实战案例 逆向知识点合集 前言&#xff1a; 面对海量的目标数据&#xff0c;传统单线程、同步的爬取方式往往效率低下&#x…

Oracle RAC 11.2.0.4 更新SYSASM和SYS密码

前言 从技术角度看&#xff0c;SYSASM是Oracle 10g R2引入的ASM管理员角色&#xff0c;而SYS是数据库实例的超级用户&#xff0c;SYS账户无法管理ASM磁盘组。SYSASM权限是集群级别的&#xff0c;比如在添加磁盘组时&#xff0c;这个操作会影响所有节点&#xff1b;而SYS用户的权…

Vue》》总结

官网 vue路由的query参数、mixin 混入 vue cli 脚手架之配置代理 VUE SAP、 MPA&#xff0c;&#xff0c;组件开发、VDOM、双向数据绑定 Vue Props 、Mixin 、路由守卫 vue router query参数 Vue props以及其他通信方式, vue响应式 原理 追加响应式数据&#xff0c;数组响应式 …

Nginx 中的负载均衡策略

Nginx 是一个高性能的 HTTP 和反向代理服务器&#xff0c;广泛用于负载均衡场景。它支持多种负载均衡策略&#xff0c;可以帮助你优化资源利用、提高响应速度和增加系统的可用性。以下是 Nginx 中几种常见的负载均衡策略及其配置方法&#xff1a; 1. 轮询&#xff08;Round Rob…

用 Python 将分组文本转为 Excel:以四级词汇为例的实战解析

一、背景引入&#xff1a;从“人工整理”到“自动化处理”的转变 在英语学习过程中&#xff0c;我们经常会接触各种分组整理的词汇表&#xff0c;比如“Group1”对应一组单词及释义&#xff0c;随后是“Group2”、“Group3”等等。如果你下载了一个 .txt 格式的四级词汇表&…

Ffmpeg滤镜

打开设备 添加滤镜 循环录制文件 #include "libavdevice/avdevice.h" #include "libavformat/avformat.h" #include "libavcodec/avcodec.h" #include "libavfilter/avfilter.h" #include "libavfilter/buffersink.h" #incl…

HarmonyOS AI辅助编程工具(CodeGenie)UI生成

UI Generator基于BitFun Platform AI能力平台&#xff0c;用于快速生成可编译、可运行的HarmonyOS UI工程&#xff0c;支持基于已有UI布局文件&#xff08;XML&#xff09;&#xff0c;快速生成对应的HarmonyOS UI代码&#xff0c;其中包含HarmonyOS基础工程、页面布局、组件及…

【第三节】ubuntu server配置远程连接

首先在ubuntu server中查看ip&#xff0c;打开虚拟机&#xff0c;输入ip addr show ,这个命令很好记&#xff0c;几乎就是英文自然语言 下面我们准备远程连接工具&#xff0c;我选择的开源的ET&#xff0c;全称是electerm,圈起来的是必须输入的内容&#xff0c;输入完成后点击保…

CCS-MSPM0G3507-7-模块篇-MPU6050的基本使用

前言本篇我们接收对MPU6050的基本使用&#xff0c;获取ID&#xff0c;通过IIC协议获取寄存器的值&#xff0c;至于高级滤波算法&#xff0c;比如卡尔曼滤波&#xff0c;或者上面的&#xff0c;后面再更新基本配置最好选择PA0和PA1&#xff0c;5V开漏然后给上代码MPU6050.c#incl…

spring-ai agent概念

目录agent 概念理解记忆能力工具计划agent 概念理解 agent 智能体&#xff0c;突出智能 大模型的感觉 告诉你怎么做&#xff08;也不一定正确&#xff09;不会帮你做 Agent的感觉 直接准确的帮你做完&#xff08;比如&#xff0c;告诉 AI Agent 帮忙下单一份外卖&#xff0c…

NO.4数据结构数组和矩阵|一维数组|二维数组|对称矩阵|三角矩阵|三对角矩阵|稀疏矩阵

数组的储存 【定义】 数组&#xff1a; 由 n&#xff08;≥1&#xff09; 个相同类型的数据元素构成的有限序列&#xff0c; 是线性表的推广。 一旦被定义&#xff0c; 维数和长度就不可再改变&#xff0c; 一般对其只有元素的存取和修改操作。 一维数组 Arr[a0,…,an−1] Arr[…

如何把Arduino IDE中ESP32程序bin文件通过乐鑫flsah_download_tool工具软件下载到ESP32中

目录前言获取Arduino IDE中ESP32程序bin文件flsah_download_tool工具软件下载程序bin文件到ESP32中总结前言 Arduino IDE丰富的驱动库给ESP32的开发带来了很多便利&#xff0c;当我们下载程序的时候&#xff0c;直选选择好ESP32开发板型号和端口号即可下载程序到开发板中&…

2025XYD Summer Camp 7.11 模考

T1TTT 组询问&#xff0c;每组询问给定 n,mn,mn,m&#xff0c;求 (nm)−1⋅∑i1n∑j1mlcm⁡(i,j) (nm)^{-1}\cdot\sum_{i1}^n\sum_{j1}^m\operatorname{lcm}(i,j) (nm)−1⋅i1∑n​j1∑m​lcm(i,j) 对 109710^971097 取模。 T≤20000T\le 20000T≤20000&#xff0c;n,m≤107n,m…

uniapp 微信小程序点击开始倒计时

一、示例 当点击按钮时就开始倒计时代码 <template><view class"sq_box"><button class"button" click"topay">按钮</button><u-modal v-model"modalShow" :show-cancel-button"true" :content&…

【网络】Linux 内核优化实战 - net.netfilter.nf_conntrack_tcp_timeout_established

目录一、核心概念1. **TCP 连接状态跟踪**2. **参数作用**二、默认值与典型场景1. **默认值**2. **典型场景**三、如何调整该参数1. **查看当前值**2. **临时修改&#xff08;重启后失效&#xff09;**3. **永久修改**四、相关参数与配合优化1. **其他 TCP 状态超时参数**2. **…

鸿蒙app 开发中的Record<string,string>的用法和含义

Record<string, string> 在鸿蒙 App 开发中的用法在 TypeScript 中&#xff0c;Record<string, string> 是一个映射类型&#xff08;Mapped Type&#xff09;&#xff0c;用于描述一个对象的结构。在鸿蒙 App 开发中&#xff0c;它常用于定义接口、组件属性或函数参…

Webpack、Vite配置技巧与CI/CD流程搭建全解析

Webpack、Vite配置技巧与CI/CD流程搭建全解析 在现代前端开发中&#xff0c;构建工具配置和自动化部署流程是提升开发效率和项目质量的关键环节。本文将深入探讨Webpack和Vite这两大构建工具的核心配置技巧&#xff0c;并详细介绍CI/CD流程的搭建方法。 一、Webpack核心配置技巧…

输入npm install后发生了什么

一、准备阶段&#xff1a;配置与环境检查读取配置优先级npm install 首先加载多层级的配置&#xff08;优先级从高到低&#xff09;4&#xff1a;项目级 .npmrc用户级 .npmrc&#xff08;如 ~/.npmrc&#xff09;全局 npmrcnpm 内置默认配置可通过 npm config ls -l 查看所有配…