- day 34 打卡
weixin_39908253
AI学习笔记python机器学习
day21常见的降维算法#先运行之前预处理好的代码importpandasaspdimportnumpyasnpimportmatplotlib.pyplotaspltimportseabornassnsimportwarningswarnings.filterwarnings('ignore')#设置中文字体plt.rcParams['font.sans-serif']=['SimHei']pl
- python学习DAY22打卡
星仔编程
python学习打卡学习
作业:自行学习参考如何使用kaggle平台,写下使用注意点,并对下述比赛提交代码kaggle泰坦尼克号人员生还预测importwarningswarnings.filterwarnings("ignore")#忽略警告信息#数据处理清洗包importpandasaspdimportnumpyasnpimportrandomasrnd#可视化包importseabornassnsimportmatp
- Python打卡day6 描述性统计
荣582
python学习打卡python开发语言机器学习
@疏锦行针对其他特征绘制单特征图和特征和标签的关系图,并且试图观察出一些有意思的结论单特征可视化importmatplotlib.pyplotaspltimportseabornassnsimportpandasaspd#读取数据,这里假设数据文件名为data.csv,你需要根据实际情况修改文件名data=pd.read_csv('data.csv')#连续变量可视化示例plt.figure(fi
- day 28打卡
weixin_39908253
AI学习笔记python
day18选用昨天的kmeans得到的效果进行聚类,进而推断每个簇的实际含义#先运行之前处理好的代码importpandasaspdimportnumpyasnpimportmatplotlib.pyplotaspltimportseabornassnsimportwarningswarnings.filterwarnings('ignore')plt.rcParams['font.sans-se
- numpy教程
Jeffrey_Pacino
编程学习numpy数据分析
使用jupyternotebook分析数据之前导入的包importnumpyasnp#linearalgebraimportpandasaspd#dataprocessing,CSVfileI/O(e.g.pd.read_csv)%matplotlibinlineimportmatplotlib.pyplotasplt#Matlab-styleplottingimportseabornassns
- 学习笔记(33):matplotlib绘制简单图表-绘制混淆矩阵热图
宁儿数据安全
#机器学习学习笔记matplotlib
学习笔记(33):matplotlib绘制简单图表-绘制混淆矩阵热图一、绘制混淆矩阵热图代码解析1.1、导入必要的库importmatplotlib.pyplotaspltfromsklearn.metricsimportconfusion_matriximportseabornassnsmatplotlib.pyplot:Python中最常用的绘图库,用于创建各种图表confusion_matr
- 使用 Bank Churn 数据集进行二元分类
一、前言分类任务:预测客户是继续使用其帐户还是关闭帐户(例如,流失)项目地址:https://www.kaggle.com/competitions/playground-series-s4e1二、具体步骤(一)数据导入与预览importpandasaspdimportnumpyasnpimportmatplotlib.pylabaspltimportseabornassnsfromsklearn
- Python训练营-Day18
importpandasaspdimportpandasaspdimportnumpyasnpimportmatplotlib.pyplotaspltimportseabornassnsimportwarningswarnings.filterwarnings("ignore")plt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axes
- Python训练营-Day20
importpandasaspdimportpandasaspdimportnumpyasnpimportmatplotlib.pyplotaspltimportseabornassnsimportwarningswarnings.filterwarnings("ignore")plt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axes
- matplotlib 绘制热力图
扶子
pythonmatplotlib绘图代码matplotlibpython经验分享热力图
1、功能介绍:使用了matplotlib和seaborn两个python库来创建并显示一个热力图。热力图是一种通过颜色变化来表示二维表格数据集中值分布的图形,适合用于展示矩阵数据或数据分析结果中的模式和趋势。2、代码部分:importmatplotlib.pyplotaspltimportseabornassnsimportnumpyasnp#设置中文字体plt.rcParams['font.sa
- 对 Boston Housing Dataset(波士顿房价数据集)数据分析
程序小K
数据分析数据分析数据挖掘
1.数据加载与初步检查importpandasaspdimportmatplotlib.pyplotaspltimportseabornassns#加载数据boston_df=pd.read_csv("boston_housing_data.csv")#查看前5行display(boston_df.head())#检查数据基本信息(列名、数据类型、非空值数量)print(boston_df.inf
- 【软考高级系统架构论文】论NoSQL数据库技术及其应用
_Richard_
软考高级系统架构论文2025年软考系统架构师系统架构nosql数据库
论文真题随着互联网web2.0网站的兴起,传统关系数据库在应对web2.0网站,特别是超大规模和高并发的web2.0纯动态SNS网站上已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL(NotonlySQL)的产生就是为了解决大规模数据集合及多种数据类型带来的挑战,尤其是大数据应用难题。目前NoSQL数据库并没有一个统一的架构,根据其所
- Python训练打卡Day15
编程有点难
Python学习笔记python开发语言
复习日回顾一下之前14天的内容:importpandasaspdimportseabornassnsimportmatplotlib.pyplotaspltdata=pd.read_csv('ObesityDataSet.csv')data.head()#分离连续变量与离散变量discrete_features=['Gender','family_history_with_overweight',
- DAY 17 常见聚类算法
yizhimie37
python训练营打卡笔记机器学习
@浙大疏锦行https://blog.csdn.net/weixin_45655710day17笔记全流程(可点开下载)#导入必要的库importpandasaspdimportnumpyasnpimportmatplotlib.pyplotaspltimportseabornassnsimportwarnings#忽略警告信息,使输出更整洁warnings.filterwarnings("ign
- Light顶刊成果:室温高灵敏度光子集成电路与SPAD阵列的直接耦合技术
m0_75133639
光电机器学习人工智能光子学物理学自动化技术电气工程生物医学工程
研究背景传统量子光子学实验依赖低温超导纳米线单光子探测器(SNSPD)与光纤耦合,存在系统复杂性高、扩展性受限等问题。本研究提出一种基于飞秒激光写入(FLW)的可重构光子集成电路(PIC)与硅单光子雪崩二极管(SPAD)阵列直接耦合方案,旨在实现室温下的高效光子探测与动态调控。方法与技术亮点1.飞秒激光写入技术:在玻璃基板中制备低损耗波导(传播损耗0.11dB/cm,模式尺寸3.1×3.4μm²)
- Python训练营-Day9
冬天给予的预感
python开发语言
知识点见示例代码字典的简单介绍标签编连续特征的处理:归一化和标准化importpandasaspdimportseabornassnsimportmatplotlib.pyplotaspltimportpandasaspddf=pd.read_csv('data.csv')df.info()df.head()mappings={"Yearsincurrentjob":{"10+years":10,
- 谈谈AWS 的 SNS SQS Lambda分别是什么
weixin_45047825
aws云计算javascript
AWS(AmazonWebServices)提供了一系列的云计算服务,其中SNS(SimpleNotificationService)、SQS(SimpleQueueService)和Lambda是其中的三项核心服务SNS(SimpleNotificationService)定义:SNS是一项用于构建分布式系统中发布/订阅模式的服务。它允许发布者(发布消息的服务或应用程序)将消息发送到一个主题,而
- aws python sdk send sns_golang使用aws lambda发送消息到sqs
weixin_40005330
awspythonsdksendsns
lambda是amazon提供的无需管理服务器,可持续扩展,并且按量计费的函数即服务工具即Faas,目前支持.NET,Go,Java,Nodejs,Python,Ruby语言sqs(amazonsimplequeueservice)是amazon提供的一种完全托管的消息队列服务,类似于rabbitmq,kafka等目前需要通过lambda(消息生产者)->sqs(消息队列)->lambda(消息消
- 一类简单而特殊数列的通项公式求法
前言由ana_nan与SnS_nSn的关系求数列{an}\{a_n\}{an}的通项公式,在求通项公式题型中占有比较大的份额,是一个重要的求解思路和方法。是要求重点掌握的类型。但有一类简单而特殊的数列的通项公式的求解本来也是使用这个思路求解,但是有些学生不能将其顺利归类,反而容易朝错位相减法的方向跑偏;方法依据由ana_nan与SnS_nSn的关系求数列{an}\{a_n\}{an}的通项公式【要
- 绕过抖音OAuth2.0的302劫持:自建代理服务实现SSO登录
2501_91872187
数据库
一、抖音OAuth2.0的302劫持现象分析1.1典型授权流程的异常表现httpGET/oauth/authorize?response_type=code&client_id=YOUR_CLIENT&redirect_uri=CALLBACK_URLHTTP/1.1302FoundLocation:https://aweme.snssdk.com/...(非开发者指定的redirect_uri)
- 搭建 Serverless 架构
debug 小菜鸟
aws学习云计算
✅一、理解Serverless架构核心概念核心理念:无需管理服务器:只需编写业务逻辑,部署后由云平台托管运行环境。事件驱动(Event-driven)按需计费(按调用次数/资源消耗)高可扩展性与自动伸缩常见组件:类型AWS服务说明计算Lambda核心函数服务网关/APIAPIGateway将HTTP请求转发给Lambda消息/队列SQS/SNS/EventBridge异步触发/事件总线存储S3/D
- DAY 19 特征筛选算法
acstdm
python打卡60天机器学习jupyterpython
数据预处理+划分数据集#先运行之前预处理好的代码importpandasaspd#用于数据处理和分析,可处理表格数据。importnumpyasnp#用于数值计算,提供了高效的数组操作。importmatplotlib.pyplotasplt#用于绘制各种类型的图表importseabornassns#基于matplotlib的高级绘图库,能绘制更美观的统计图形。importwarningswar
- 【python深度学习】Day43 复习日
抽风的雨610
【打卡】Python训练营python深度学习人工智能
主题:cnn训练+grad-cam做可视化数据集信息:1000多张猫和狗的图片。构建一个模型,该模型可以尽可能准确地在图像中的猫和狗之间进行分类。图像大小范围从大约100x100像素到2000x1000像素。导入需要的库importnumpyasnpimportpandasaspdimportmatplotlib.pyplotaspltimportseabornassnsimporttorchim
- Python打卡训练营day39——2025.05.29
莱茵菜苗
python机器学习开发语言
importlightgbmaslgbfromsklearn.metricsimportroc_auc_score,confusion_matrix,classification_reportimportmatplotlib.pyplotaspltimportseabornassns#创建LightGBM数据集train_data=lgb.Dataset(X_train,label=y_train
- sns.load_dataset(“iris“)无法导入,无需下载seaborn到本地的解决方案
九龙湖野生炼丹民工
python机器学习sklearn
最近发现很多机器学习入门教程选择从seaborn中加载鸢尾花(iris)数据集,然而直接运行因为连接问题或本地无对应数据库会带来很多问题,常规的解决方法为从github下载seaborn-data保存到本地,但是操作仍然比较繁琐,且小白可能对于git下载和本地的数据存放形式也不熟悉,这里提供一种替换方法,改为从机器学习库scikitlearn中导入iris数据集,并转换为教程中的dataframe
- Python60日基础学习打卡D11
哈基米同志
Python60日基础学习打卡学习
数据预处理(同前日)importpandasaspdimportpandasaspd#用于数据处理和分析,可处理表格数据。importnumpyasnp#用于数值计算,提供了高效的数组操作。importmatplotlib.pyplotasplt#用于绘制各种类型的图表importseabornassns#基于matplotlib的高级绘图库,能绘制更美观的统计图形。#设置中文字体(解决中文显示问
- python打卡DAY6
Bugabooo
pythonpandas数据分析
importseabornassnsimportmatplotlib.pyplotaspltimportpandasaspddata=pd.read_csv(r'data.csv')sns.boxplot(x=data['AnnualIncome'])plt.figure(figsize=(6,4))plt.tight_layoutplt.title('annualincomephoto')plt
- Python训练营打卡DAY36
我想睡觉261
python开发语言机器学习深度学习
DAY36复习日仔细回顾一下神经网络到目前的内容,没跟上进度的补一下进度。作业:对之前的信贷项目,利用神经网络训练下,尝试用到目前的知识点让代码更加规范和美观。探索性作业(随意完成):尝试进入nn.Module中,查看他的方法#数据预处理importpandasaspdimportseabornassnsimportmatplotlib.pyplotaspltplt.rcParams['font.
- 行列式的线性性质(仅限于单一行的加法拆分)
hitsz_syl
线性代数
当然可以,以下是经过排版优化后的内容,保持了原始内容不变,仅调整了格式以提升可读性:行列式的线性性质(加法拆分)这个性质说的是:如果行列式的某一行(或某一列)的所有元素都可以表示为两个数的和,那么这个行列式可以拆分成两个行列式的和。数学表述如何理解这个性质?1.从行列式的定义出发行列式的定义是基于排列的求和:det(A)=∑σ∈Snsgn(σ)∏k=1nak,σ(k)\det(A)=\sum_{
- 使用Python在PyCharm中进行交通工程数据分析的完整流程,包括数据清洗、挖掘、关联、可视化和应用整合等各个阶段
pk_xz123456
Python专栏pythonpycharm数据分析
交通工程领域数据分析流程下面我将详细介绍使用Python在PyCharm中进行交通工程数据分析的完整流程,包括数据清洗、挖掘、关联、可视化和应用整合等各个阶段。1.数据准备与清洗1.1导入必要库importpandasaspdimportnumpyasnpimportmatplotlib.pyplotaspltimportseabornassnsfromsklearn.preprocessingi
- 插入表主键冲突做更新
a-john
有以下场景:
用户下了一个订单,订单内的内容较多,且来自多表,首次下单的时候,内容可能会不全(部分内容不是必须,出现有些表根本就没有没有该订单的值)。在以后更改订单时,有些内容会更改,有些内容会新增。
问题:
如果在sql语句中执行update操作,在没有数据的表中会出错。如果在逻辑代码中先做查询,查询结果有做更新,没有做插入,这样会将代码复杂化。
解决:
mysql中提供了一个sql语
- Android xml资源文件中@、@android:type、@*、?、@+含义和区别
Cb123456
@+@?@*
一.@代表引用资源
1.引用自定义资源。格式:@[package:]type/name
android:text="@string/hello"
2.引用系统资源。格式:@android:type/name
android:textColor="@android:color/opaque_red"
- 数据结构的基本介绍
天子之骄
数据结构散列表树、图线性结构价格标签
数据结构的基本介绍
数据结构就是数据的组织形式,用一种提前设计好的框架去存取数据,以便更方便,高效的对数据进行增删查改。正确选择合适的数据结构,对软件程序的高效执行的影响作用不亚于算法的设计。此外,在计算机系统中数据结构的作用也是非同小可。例如常常在编程语言中听到的栈,堆等,就是经典的数据结构。
经典的数据结构大致如下:
一:线性数据结构
(1):列表
a
- 通过二维码开放平台的API快速生成二维码
一炮送你回车库
api
现在很多网站都有通过扫二维码用手机连接的功能,联图网(http://www.liantu.com/pingtai/)的二维码开放平台开放了一个生成二维码图片的Api,挺方便使用的。闲着无聊,写了个前台快速生成二维码的方法。
html代码如下:(二维码将生成在这div下)
? 1
&nbs
- ImageIO读取一张图片改变大小
3213213333332132
javaIOimageBufferedImage
package com.demo;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
/**
* @Description 读取一张图片改变大小
* @author FuJianyon
- myeclipse集成svn(一针见血)
7454103
eclipseSVNMyEclipse
&n
- 装箱与拆箱----autoboxing和unboxing
darkranger
J2SE
4.2 自动装箱和拆箱
基本数据(Primitive)类型的自动装箱(autoboxing)、拆箱(unboxing)是自J2SE 5.0开始提供的功能。虽然为您打包基本数据类型提供了方便,但提供方便的同时表示隐藏了细节,建议在能够区分基本数据类型与对象的差别时再使用。
4.2.1 autoboxing和unboxing
在Java中,所有要处理的东西几乎都是对象(Object)
- ajax传统的方式制作ajax
aijuans
Ajax
//这是前台的代码
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+
- 只用jre的eclipse是怎么编译java源文件的?
avords
javaeclipsejdktomcat
eclipse只需要jre就可以运行开发java程序了,也能自动 编译java源代码,但是jre不是java的运行环境么,难道jre中也带有编译工具? 还是eclipse自己实现的?谁能给解释一下呢问题补充:假设系统中没有安装jdk or jre,只在eclipse的目录中有一个jre,那么eclipse会采用该jre,问题是eclipse照样可以编译java源文件,为什么呢?
&nb
- 前端模块化
bee1314
模块化
背景: 前端JavaScript模块化,其实已经不是什么新鲜事了。但是很多的项目还没有真正的使用起来,还处于刀耕火种的野蛮生长阶段。 JavaScript一直缺乏有效的包管理机制,造成了大量的全局变量,大量的方法冲突。我们多么渴望有天能像Java(import),Python (import),Ruby(require)那样写代码。在没有包管理机制的年代,我们是怎么避免所
- 处理百万级以上的数据处理
bijian1013
oraclesql数据库大数据查询
一.处理百万级以上的数据提高查询速度的方法: 1.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。
2.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 o
- mac 卸载 java 1.7 或更高版本
征客丶
javaOS
卸载 java 1.7 或更高
sudo rm -rf /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin
成功执行此命令后,还可以执行 java 与 javac 命令
sudo rm -rf /Library/PreferencePanes/JavaControlPanel.prefPane
成功执行此命令后,还可以执行 java
- 【Spark六十一】Spark Streaming结合Flume、Kafka进行日志分析
bit1129
Stream
第一步,Flume和Kakfa对接,Flume抓取日志,写到Kafka中
第二部,Spark Streaming读取Kafka中的数据,进行实时分析
本文首先使用Kakfa自带的消息处理(脚本)来获取消息,走通Flume和Kafka的对接 1. Flume配置
1. 下载Flume和Kafka集成的插件,下载地址:https://github.com/beyondj2ee/f
- Erlang vs TNSDL
bookjovi
erlang
TNSDL是Nokia内部用于开发电信交换软件的私有语言,是在SDL语言的基础上加以修改而成,TNSDL需翻译成C语言得以编译执行,TNSDL语言中实现了异步并行的特点,当然要完整实现异步并行还需要运行时动态库的支持,异步并行类似于Erlang的process(轻量级进程),TNSDL中则称之为hand,Erlang是基于vm(beam)开发,
- 非常希望有一个预防疲劳的java软件, 预防过劳死和眼睛疲劳,大家一起努力搞一个
ljy325
企业应用
非常希望有一个预防疲劳的java软件,我看新闻和网站,国防科技大学的科学家累死了,太疲劳,老是加班,不休息,经常吃药,吃药根本就没用,根本原因是疲劳过度。我以前做java,那会公司垃圾,老想赶快学习到东西跳槽离开,搞得超负荷,不明理。深圳做软件开发经常累死人,总有不明理的人,有个软件提醒限制很好,可以挽救很多人的生命。
相关新闻:
(1)IT行业成五大疾病重灾区:过劳死平均37.9岁
- 读《研磨设计模式》-代码笔记-原型模式
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
/**
* Effective Java 建议使用copy constructor or copy factory来代替clone()方法:
* 1.public Product copy(Product p){}
* 2.publi
- 配置管理---svn工具之权限配置
chenyu19891124
SVN
今天花了大半天的功夫,终于弄懂svn权限配置。下面是今天收获的战绩。
安装完svn后就是在svn中建立版本库,比如我本地的是版本库路径是C:\Repositories\pepos。pepos是我的版本库。在pepos的目录结构
pepos
component
webapps
在conf里面的auth里赋予的权限配置为
[groups]
- 浅谈程序员的数学修养
comsci
设计模式编程算法面试招聘
浅谈程序员的数学修养
- 批量执行 bulk collect与forall用法
daizj
oraclesqlbulk collectforall
BULK COLLECT 子句会批量检索结果,即一次性将结果集绑定到一个集合变量中,并从SQL引擎发送到PL/SQL引擎。通常可以在SELECT INTO、
FETCH INTO以及RETURNING INTO子句中使用BULK COLLECT。本文将逐一描述BULK COLLECT在这几种情形下的用法。
有关FORALL语句的用法请参考:批量SQL之 F
- Linux下使用rsync最快速删除海量文件的方法
dongwei_6688
OS
1、先安装rsync:yum install rsync
2、建立一个空的文件夹:mkdir /tmp/test
3、用rsync删除目标目录:rsync --delete-before -a -H -v --progress --stats /tmp/test/ log/这样我们要删除的log目录就会被清空了,删除的速度会非常快。rsync实际上用的是替换原理,处理数十万个文件也是秒删。
- Yii CModel中rules验证规格
dcj3sjt126com
rulesyiivalidate
Yii cValidator主要用法分析:
yii验证rulesit 分类: Yii yii的rules验证 cValidator主要属性 attributes ,builtInValidators,enableClientValidation,message,on,safe,skipOnError
 
- 基于vagrant的redis主从实验
dcj3sjt126com
vagrant
平台: Mac
工具: Vagrant
系统: Centos6.5
实验目的: Redis主从
实现思路
制作一个基于sentos6.5, 已经安装好reids的box, 添加一个脚本配置从机, 然后作为后面主机从机的基础box
制作sentos6.5+redis的box
mkdir vagrant_redis
cd vagrant_
- Memcached(二)、Centos安装Memcached服务器
frank1234
centosmemcached
一、安装gcc
rpm和yum安装memcached服务器连接没有找到,所以我使用的是make的方式安装,由于make依赖于gcc,所以要先安装gcc
开始安装,命令如下,[color=red][b]顺序一定不能出错[/b][/color]:
建议可以先切换到root用户,不然可能会遇到权限问题:su root 输入密码......
rpm -ivh kernel-head
- Remove Duplicates from Sorted List
hcx2013
remove
Given a sorted linked list, delete all duplicates such that each element appear only once.
For example,Given 1->1->2, return 1->2.Given 1->1->2->3->3, return&
- Spring4新特性——JSR310日期时间API的支持
jinnianshilongnian
spring4
Spring4新特性——泛型限定式依赖注入
Spring4新特性——核心容器的其他改进
Spring4新特性——Web开发的增强
Spring4新特性——集成Bean Validation 1.1(JSR-349)到SpringMVC
Spring4新特性——Groovy Bean定义DSL
Spring4新特性——更好的Java泛型操作API
Spring4新
- 浅谈enum与单例设计模式
247687009
java单例
在JDK1.5之前的单例实现方式有两种(懒汉式和饿汉式并无设计上的区别故看做一种),两者同是私有构
造器,导出静态成员变量,以便调用者访问。
第一种
package singleton;
public class Singleton {
//导出全局成员
public final static Singleton INSTANCE = new S
- 使用switch条件语句需要注意的几点
openwrt
cbreakswitch
1. 当满足条件的case中没有break,程序将依次执行其后的每种条件(包括default)直到遇到break跳出
int main()
{
int n = 1;
switch(n) {
case 1:
printf("--1--\n");
default:
printf("defa
- 配置Spring Mybatis JUnit测试环境的应用上下文
schnell18
springmybatisJUnit
Spring-test模块中的应用上下文和web及spring boot的有很大差异。主要试下来差异有:
单元测试的app context不支持从外部properties文件注入属性
@Value注解不能解析带通配符的路径字符串
解决第一个问题可以配置一个PropertyPlaceholderConfigurer的bean。
第二个问题的具体实例是:
 
- Java 定时任务总结一
tuoni
javaspringtimerquartztimertask
Java定时任务总结 一.从技术上分类大概分为以下三种方式: 1.Java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务; 说明: java.util.Timer定时器,实际上是个线程,定时执行TimerTask类 &
- 一种防止用户生成内容站点出现商业广告以及非法有害等垃圾信息的方法
yangshangchuan
rank相似度计算文本相似度词袋模型余弦相似度
本文描述了一种在ITEYE博客频道上面出现的新型的商业广告形式及其应对方法,对于其他的用户生成内容站点类型也具有同样的适用性。
最近在ITEYE博客频道上面出现了一种新型的商业广告形式,方法如下:
1、注册多个账号(一般10个以上)。
2、从多个账号中选择一个账号,发表1-2篇博文