标注数据较少时【长文本分类任务】的半监督学习Python算法

损失函数与正则项(惩罚项),多loss间权重设计 正则项(惩罚项) 正则项(惩罚项)的本质 惩罚因子(penalty term)与损失函数(loss function) penalty term和loss function看起来很相似,但其实二者完全不同。 惩罚因子: penalty term的作用就是把约束优化问题转化为非受限优化问题。 罚函数的基本思想是构造辅助函数,把原来的约束问题转化为求辅助函数极小化的无约束问题。 机器学习为什么需要正则项 我们经常看到,标准损失函数通常由两项组成,数据损失项和惩罚项,并将惩罚项乘以超参数λ,用来平衡这两项。 阅读详情

数据介绍

语料下载地址:https://download.youkuaiyun.com/download/Yellow_python/12862983
新闻10分类样本总数19467,长度分布和类别分布如下:

from data10 import X, Y  # 导入文本10分类
from pandas import Series
from collections import Counter
print(Counter(Y).most_common())  # 标签分类统计
print(Series(X).str.len().describe())  # 文本长度概览
类别数量类别数量
science2093car2066
finance2052sports2017
military2007medicine2000
entertainment1906politics1865
education1749fashion1712
统计指标文本长度
mean753.15
std538.73
min1
25%309
50%645
75%1065
max2094

原理

训练
输入
预测
阈值
训练
预测
预测
少量标注数据
模型1
无标注数据
预测值及其概率
高概率数据
混合标注数据
模型2
结果2
结果1
比较

极简代码

分类模型:逻辑回归;文本编码:TFIDF

import re, numpy as np
from sklearn.metrics import classification_report
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from jieba import cut

np.random.seed(7)
N = 25000
STOP_WORDS = set('''
了 是 在 和 有 他 我 的 也 为 就 这 都 等 着 来 与 要 又 而 一个 之 以 她 去 那 但 把 我们 可 他们 并 自己 或 由 其 给 使 却
这个 它 已经 及 这样 这些 此 们 这种 如果 因为 即 其中 现在 一些 以及 同时 由于 所以 这里 因 曾 呢 但是 该 每 其他 应 吧 虽然
因此 而且 啊 应该 当时 那么 这么 仍 还有 如此 既 或者 然后 有些 那个 关于 于是 不仅 只要 且 另外 而是 还是 此外 这次 如今 就是
并且 从而 其它 尽管 还要 即使 总是 只有 只是 而言 每次 这是 就会 那是'''.strip().split())  # 情感分析时不用


def tokenizer(text):
    for sentence in re.split('[^a-zA-Z\u4e00-\u9fa5]+', text):
        for word in cut(sentence):
            if word not in STOP_WORDS:
                yield word


class Model:
    def __init__(self):
        self.vec = TfidfVectorizer(tokenizer=tokenizer, max_features=N)
        self.clf = LogisticRegression(C=2, solver='liblinear')

    def fit(self, x, y):
        x = self.vec.fit_transform(x)
        self.clf.fit(x, y)
        return self

    def predict(self, x):
        return self.clf.predict(self.vec.transform(x))

    def predict_probability_one(self, text):
        """单个文本分类并返回概率"""
        proba = self.clf.predict_proba(self.vec.transform([text]))[0]
        argmax = np.argmax(proba)
        return self.clf.classes_[argmax], proba[argmax]

    def classification_report(self, x_test, y_test):
        y_pred = self.predict(x_test)  # 预测
        print('accuracy', np.average([y_test == y_pred]))
        print('\033[034m%s\033[0m' % classification_report(y_test, y_pred))  # F1-score


def experiment(x, y, test_size=.9):
    # 样本切分,设定测试集占比
    x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=test_size)
    print('\033[033m', test_size, [i.shape for i in (x_train, x_test, y_train, y_test)], '\033[0m', sep='')
    # 模型1
    m1 = Model().fit(x_train, y_train)
    m1.classification_report(x_test, y_test)
    for threshold in (.9, .8, .7, .6, .5, .4, .3, .2):
        # 高概率预测数据合并到训练集
        x_mix, y_mix = x_train.tolist(), y_train.tolist()
        for i in range(len(x_test)):
            y_pred, proba = m1.predict_probability_one(x_test[i])
            if proba > threshold:
                x_mix.append(x_test[i])
                y_mix.append(y_pred)
        print('\033[035m%.1f\033[0m' % threshold, '合并后训练集数量', len(x_mix), len(y_mix))
        # 模型2
        m2 = Model().fit(x_mix, y_mix)
        m2.classification_report(x_test, y_test)


from data10 import X, Y  # 文本10分类
experiment(X, Y, test_size=.95)
experiment(X, Y, test_size=.9)
experiment(X, Y, test_size=.8)
experiment(X, Y, test_size=.7)
experiment(X, Y, test_size=.6)
experiment(X, Y, test_size=.5)
experiment(X, Y, test_size=.4)

附两组结果

训练集:测试集测试集占比添加伪标签阈值测试集数量训练集数量混合标注数据量标注增加量模型1准度模型2准度模型2-模型1
1比190.950.91849497397300.8231318270.8231318270
1比190.950.81849497397300.8231318270.8231318270
1比190.950.71849497311982250.8231318270.818806099-0.004325727
1比190.950.618494973311121380.8231318270.773710393-0.049421434
1比190.950.518494973586248890.8231318270.753325403-0.069806424
1比190.950.418494973886778940.8231318270.782956635-0.040175192
1比190.950.31849497312501115280.8231318270.812750081-0.010381745
1比190.950.21849497316789158160.8231318270.8291337730.006001947
1比90.90.9175211946194600.8461275040.8461275040
1比90.90.817521194621762300.8461275040.845956281-0.000171223
1比90.90.7175211946474427980.8461275040.832258433-0.013869071
1比90.90.6175211946774457980.8461275040.824781691-0.021345814
1比90.90.51752119461033983930.8461275040.831801838-0.014325666
1比90.90.417521194612878109320.8461275040.843559158-0.002568347
1比90.90.317521194615582136360.8461275040.8518920150.005764511
1比90.90.217521194618401164550.8461275040.8525769080.006449404
1比40.80.91557438933906130.8620136120.8620778226.42096E-05
1比40.80.8155743893583819450.8620136120.8620136120
1比40.80.7155743893930254090.8620136120.859830487-0.002183126
1比40.80.61557438931194880550.8620136120.8592526-0.002761012
1比40.80.515574389314165102720.8620136120.8627199180.000706305
1比40.80.415574389316156122630.8620136120.8634262230.001412611
1比40.80.315574389317888139950.8620136120.8655451390.003531527
1比40.80.215574389319202153090.8620136120.8628483370.000834725
3比70.70.913627584060171770.8679092980.8679092980
3比70.70.8136275840913132910.8679092980.8679826817.33837E-05
3比70.70.71362758401220163610.8679092980.866441623-0.001467674
3比70.70.61362758401420783670.8679092980.867248844-0.000660454
3比70.70.513627584015884100440.8679092980.8685697510.000660454
3比70.70.413627584017343115030.8679092980.86834960.000440302
3比70.70.313627584018535126950.8679092980.8695971230.001687826
3比70.70.213627584019361135210.8679092980.8680560650.000146767
2比30.60.911681778682504640.8740690010.873726565-0.000342436
2比30.60.81168177861138736010.8740690010.873298519-0.000770482
2比30.60.71168177861388460980.8740690010.8740690010
2比30.60.61168177861552877420.8740690010.873726565-0.000342436
2比30.60.51168177861686990830.8740690010.873726565-0.000342436
2比30.60.411681778618046102600.8740690010.8745826560.000513655
2比30.60.311681778618925111390.8740690010.8751819190.001112918
2比30.60.211681778619415116290.8740690010.8744970460.000428046
1比10.50.997349733104837500.8734333260.8738442570.000410931
1比10.50.8973497331338636530.8734333260.872097802-0.001335525
1比10.50.7973497331525455210.8734333260.872508732-0.000924594
1比10.50.6973497331654068070.8734333260.8735360590.000102733
1比10.50.5973497331755478210.8734333260.873330594-0.000102733
1比10.50.4973497331847187380.8734333260.8745633860.00113006
1比10.50.3973497331913093970.8734333260.8738442570.000410931
1比10.50.2973497331943997060.8734333260.8736387920.000205465
3比20.40.91168077871253947520.879157570.878772313-0.000385257
3比20.40.81168077871491071230.879157570.8794144090.000256838
3比20.40.71168077871634085530.879157570.8795428280.000385257
3比20.40.61168077871730595180.879157570.878900732-0.000256838
3比20.40.511680778718138103510.879157570.877102864-0.002054707
3比20.40.411680778718777109900.879157570.879029151-0.000128419
3比20.40.311680778719217114300.879157570.8792859890.000128419
3比20.40.211680778719450116630.879157570.878772313-0.000385257

训练集:测试集测试集占比添加伪标签阈值测试集数量训练集数量混合标注数据量标注增加量模型1准度模型2准度模型2-模型1
1比190.950.91849497397300.8251865470.8251865470
1比190.950.81849497397300.8251865470.8251865470
1比190.950.71849497313193460.8251865470.822050395-0.003136152
1比190.950.618494973316321900.8251865470.79366281-0.031523737
1比190.950.518494973615151780.8251865470.780198983-0.044987564
1比190.950.418494973939484210.8251865470.791391803-0.033794744
1比190.950.31849497312994120210.8251865470.813453012-0.011733535
1比190.950.21849497317059160860.8251865470.8321617820.006975235
1比90.90.9175211946194600.8505793050.8505793050
1比90.90.817521194621101640.8505793050.8512071230.000627818
1比90.90.7175211946444625000.8505793050.842531819-0.008047486
1比90.90.6175211946776358170.8505793050.830717425-0.01986188
1比90.90.51752119461062986830.8505793050.835055077-0.015524228
1比90.90.417521194613375114290.8505793050.840990811-0.009588494
1比90.90.317521194615980140340.8505793050.849380743-0.001198562
1比90.90.217521194618519165730.8505793050.8545174360.003938131
1比40.80.91557438933907140.8641967380.864132529-6.42096E-05
1比40.80.8155743893570918160.8641967380.862912547-0.001284192
1比40.80.7155743893937554820.8641967380.858674714-0.005522024
1比40.80.61557438931208381900.8641967380.858931553-0.005265186
1比40.80.515574389314279103860.8641967380.860729421-0.003467317
1比40.80.415574389316135122420.8641967380.863362014-0.000834725
1比40.80.315574389317879139860.8641967380.8650314630.000834725
1比40.80.215574389319222153290.8641967380.8639399-0.000256838
3比70.70.913627584060041640.8641667280.863799809-0.000366919
3比70.70.8136275840907032300.8641667280.862699053-0.001467674
3比70.70.71362758401220563650.8641667280.862332135-0.001834593
3比70.70.61362758401434285020.8641667280.86262567-0.001541058
3比70.70.513627584015964101240.8641667280.8651207160.000953988
3比70.70.413627584017381115410.8641667280.8652674840.001100756
3比70.70.313627584018549127090.8641667280.8667351580.00256843
3比70.70.213627584019367135270.8641667280.8650473330.000880605
2比30.60.911681778682464600.8725280370.8725280370
2比30.60.81168177861153937530.8725280370.872356819-0.000171218
2比30.60.71168177861399862120.8725280370.8725280370
2比30.60.61168177861562078340.8725280370.8725280370
2比30.60.51168177861692191350.8725280370.8729560830.000428046
2比30.60.411681778618052102660.8725280370.8727848640.000256827
2比30.60.311681778618895111090.8725280370.8742402190.001712182
2比30.60.211681778619403116170.8725280370.8728704730.000342436
1比10.50.997349733103966630.880830080.880110951-0.000719129
1比10.50.8973497331337636430.880830080.879494555-0.001335525
1比10.50.7973497331541356800.880830080.878878159-0.001951921
1比10.50.6973497331662268890.880830080.879700021-0.00113006
1比10.50.5973497331762278890.880830080.8810355460.000205465
1比10.50.4973497331849987660.880830080.880419149-0.000410931
1比10.50.3973497331910193680.880830080.8812410110.000410931
1比10.50.2973497331943296990.880830080.8813437440.000513663
3比20.40.91168077871253047430.8797996660.8799280850.000128419
3比20.40.81168077871498471970.8797996660.879414409-0.000385257
3比20.40.71168077871643486470.8797996660.8801849240.000385257
3比20.40.61168077871736895810.8797996660.8797996660
3比20.40.511680778718168103810.8797996660.878772313-0.001027353
3比20.40.411680778718797110100.8797996660.879671247-0.000128419
3比20.40.311680778719241114540.8797996660.878643894-0.001155772
3比20.40.211680778719446116590.8797996660.87915757-0.000642096

结论

多数情况不提升,某些情况下有轻微提升,有空再做更多微调

半监督学习实战——标注数据和伪标签数据混合训练 当标注数据较少,而未标注的数据很多,并且标注成本很高时,可以考虑半监督学习训练。首先,采用伪标签技术把没有标注的的图片打上伪标签,然后用标注数据和伪标签数据混合训练模型。值得注意的是,要保证每个mini-batch中含有真实标签和伪标签,本文带你用代码实现。 阅读详情

相关推荐

一种基于伪标签半监督学习的小样本调制识别算法

一种基于伪标签半监督学习的小样本调制识别算法 人工智能技术与咨询 来源:《西北工业大学学报》,作者史蕴豪等 摘 要:针对有标签样本较少条件下的通信信号调制识别问题,提出了一种基于伪标签半监督学习技术的小样本调制方式分类算法,通过优选人工特征集、设计高性能分类器以及基于输出概率的伪标签数据选择方法,构建高效的伪标签标注系统,然后通过该伪标签标注系统与基于深度学习的信号分类方法配合,实现在少量有标签样本和大量无标签样本条件下的调制方式分类。仿真结果表明,对6种数字信号进行调制识别,在信噪比大于5 d.

m0_62870606的博客 3541

用半监督算法做文本分类

作者:炼己者 欢迎大家访问 我的简书 以及 我的博客 本博客所有内容以学习、研究和分享为主,如需转载,请联系本人,标明作者和出处,并且是非商业用途,谢谢! 摘要:本文主要讲述了用半监督算法做文本分类(二分类),主要借鉴了sklearn的一个例子——用半监督算法做数字识别 。先说结论,这是一个失败的例子,训练到第15000条就不行了,就报错了。如果你的数据量不是很大的话,可以操作一下。这里面有很多...

weixin_34185364的博客 698

Python深度学习实践:半监督学习减少数据标注成本

1. 背景介绍 1.1 深度学习的数据依赖 深度学习模型以其强大的能力在各个领域取得了显著的成果,但其性能很大程度上依赖于大量的标注数据。然而,在许多实际应用场景中,获取大量标注数据的成本高昂且耗时。 1.2 半监督学习的优势 半监

AI天才研究院 956

文本分类半监督学习

目录 2021SC@SDUSC 一、项目综述 二、项目分工 三、项目理解 四、安装及环境调试 2021SC@SDUSC 一、项目综述 项目背景 本项目为山东大学软件学院2019级“软件工程应用与实践”课程项目 小组成员 吴泽昊、熊静飞、张致晏、刘敬炜 课程目标: 下载相关文本分类半监督学习的代码,配置合适的python环境 小组成员分工合作分析项目代码,写出代码分析报告并在csdn发布 记录自己所分析的模型的难点,加以解释 总结每次代码分析的重点和收获 项目计划 半监督学..

m0_52073096的博客 425

Gemini 半监督学习:有限标注数据的 AI 训练技巧

在人工智能的世界里,训练模型往往需要大量的数据。然而,给数据做标注是一件既耗时又费力的事情,有时候我们只能拿到有限的标注数据。这时候,半监督学习就派上用场啦。我们的目的就是要研究在 Gemini 这个强大的工具下,如何利用有限的标注数据和大量的未标注数据来训练出优秀的 AI 模型。我们会涵盖半监督学习的各个方面,从基本概念到实际应用,让大家有一个全面的了解。接下来,我们会先介绍半监督学习的核心概念,让大家明白它到底是什么。然后深入分析其算法原理和操作步骤,用数学模型和公式来详细解释。

AI智能探索者的博客 761

大数据领域数据科学的半监督学习策略

本文聚焦大数据场景下数据科学任务(如分类、回归、聚类),重点解决“标注数据稀缺但未标注数据海量”的矛盾。我们将覆盖半监督学习的核心概念、经典算法、实战案例,以及在医疗、电商、NLP等领域的应用。本文从“小学生学画画”的故事切入,解释半监督学习的核心思想;接着用“三个假设”拆解其底层逻辑;然后介绍4类经典算法(自训练、协同训练、标签传播、生成模型);最后通过Python实战演示如何用少量标注数据训练高准确率模型,并总结未来趋势。半监督学习。

AI Agent Harness Engineering 709

用半监督算法做文本分类(自训练)

标签: 半监督学习,文本分类 作者:炼己者 --- 欢迎大家访问我的简书以及我的博客,大家如果感觉格式看着不舒服,也可以去看我的简书,里面也会有发布 本博客所有内容以学习、研究和分享为主,如需转载,请联系本人,标明作者和出处,并且是非商业用途,谢谢! 半监督学习文本分类系列 用半监督算法做文本分类(sklearn) sklearn半监督学习(sklearn) 摘要 之前调用sklearn库里...

weixin_33728268的博客 1486

NaiveBayes算法的半监督学习

NaiveBayes算法的半监督学习 作者:禅与计算机程序设计艺术 1. 背景介绍 机器学习是人工智能的核心技术之一,在近年来发展迅速,广泛应用于各个领域。其中,监督学习是机器学习的主流方法之一,通过有标签的训练数据学习预测模型,在很多实际应用中取得了巨大成功。但在某些情

AI天才研究院 544

文本分类半监督学习问题介绍及分工

2021SC@SDUSC 项目名称:文本分类半监督学习问题 问题描述: 输入少量具有类别标记Yl={y1l,y2l,…,yml}的文本集合Xl={x1l,x2l,…,xml},以及大量无标记文本Xu={x1u,x2u,…,xnu}。训练半监督文本分类模型。预测输出对于无标记文本集合Xtest的类别标记Ytest。 评价指标:预测结果的准确率。 任务:使用如下解决半监督文本分类问题的已开源模型,在给定 IMDB、 AG-news、DBpedia...

m0_53444618的博客 515

大数据挖掘中的自动化数据标注

在大数据时代,数据已成为最重要的生产要素之一。然而,原始数据往往缺乏有效的标注,这严重制约了监督学习算法的应用效果。传统的人工数据标注方式不仅成本高昂、效率低下,而且难以应对海量数据的标注需求。本文旨在系统介绍自动化数据标注的技术体系,帮助读者理解其核心原理、掌握实现方法,并能在实际项目中应用这些技术。本文首先介绍自动化数据标注的背景和基本概念,然后深入分析三种主流技术路线及其实现原理。接着通过具体案例展示实际应用,最后讨论未来发展方向和推荐学习资源。文章包含大量代码示例和数学推导,力求理论与实践相结合。

AI开发架构师 913

半监督学习:数据标注的高效之道

本文深入探讨了半监督学习的基本概念和应用。在现实世界中,数据往往缺乏标签,手动标注不仅耗时且容易出错。半监督学习通过利用少量标记数据和大量未标记数据来训练模型,既节省了时间,又提高了准确度。文章还介绍了自我学习和对偶学习等半监督学习技术,并通过代码示例展示了如何在Python中实现这些技术。

weixin_42181686的博客 599

自训练:一种应对标注数据稀缺的半监督学习技术及其Python实现

自训练(Self-training)是一种简单而流行的半监督学习技术,常用于当标注数据稀缺但未标注数据丰富时。自训练的核心思想是利用少量标注数据训练一个初步的模型,然后使用这个模型预测未标注数据的标签。预测中最有信心的部分(通常是预测概率最高的)将被视为正确,加入训练集中,用于进一步训练模型。这个过程可以迭代多次,直到达到特定的性能标准或直到不再有显著的改进。

chen的博客 1654

约束优化问题的新的增强拉格朗日目标惩罚函数

本文研究了约束优化问题的一种新的扩充拉格朗日罚函数。 证明了增广的拉格朗日目标惩罚函数对约束优化问题的双重性质。 在某些条件下,扩展的拉格朗日目标惩罚函数的鞍点满足一阶Karush-Kuhn-Tucker(KKT)条件。 特别是,当KKT条件满足凸编程时,其鞍点存在。 基于增强的拉格朗日客观罚函数,开发了一种求解不等式约束优化问题的全局解的算法,并在一定条件下证明了其全局收敛性。

【机器学习】机器学习的基本分类-半监督学习(Semi-supervised Learning)

半监督学习是一种介于监督学习和无监督学习之间的机器学习方法。它利用少量的标注数据(有监督数据)和大量的未标注数据(无监督数据)来进行模型训练,从而在标注数据不足的情况下,提升模型的性能。半监督学习通过利用未标注数据的潜在信息,在标注数据有限的场景下显著提高了模型的性能。根据具体任务和数据特点,可以选择不同的半监督方法来优化模型效果。

IT古董 2455

【020】基于51单片机智能路灯系统Proteus仿真与实物设计

【020】基于51单片机智能路灯系统Proteus仿真与实物设计

小邓子分享官的博客 1881

FAST-LIO2实战:从零搭建香港大学火星实验室SLAM框架(附官方数据集测试指南)

本文提供了一份详细的FAST-LIO2实战指南,帮助读者从零开始搭建香港大学火星实验室开源的这一高效激光惯性里程计框架。内容涵盖系统环境配置、依赖安装、源码编译、官方数据集测试以及参数调优,旨在让开发者快速上手并应用于机器人SLAM项目。

ppp33的博客 689

标签传播算法(Label Propagation)及Python实现

标签传播算法(Label Propagation)及Python实现zouxy09@qq.comhttp://blog.youkuaiyun.com/zouxy09 一、半监督学习       半监督学习(Semi-supervisedlearning)发挥作用的场合是:你的数据有一些有label,一些没有。而且一般是绝大部分都没有,只有少许几个有label。半监督学习算法会充分的利用unlabeled数据来

zouxy09的专栏 12万+

AUTOSAR RTE配置实战:从ECU分区到Task映射的完整指南

本文提供了一份AUTOSAR RTE配置的完整实战指南。从创建ECU分区、定义OS任务,到实现Runnable Entity与Task的精确映射,详细解析了每一步的操作要点与常见陷阱。文章结合配置工具界面,旨在帮助开发者高效完成RTE配置,确保系统实时性与数据一致性,是掌握AUTOSAR核心开发流程的实用参考。

weixin_29228203的博客 486

半监督学习算法在面对大量未标记数据时的性能

然后,使用该初始模型对未标签数据进行预测,将预测结果中置信度较高的样本作为新的有标签数据加入到训练集中。半监督学习算法的核心思想是利用未标签数据的分布信息来辅助有标签数据的学习,从而提供更准确的模型预测。通过以上代码示例,我们可以使用自学习算法进行半监督学习,并根据预测的置信度选择新的有标签数据,从而提高模型的性能。选择置信度较高的样本作为新的有标签数据:根据置信度阈值选择预测概率较高的样本作为新的有标签数据。对未标签数据进行预测:使用训练好的模型对未标签数据进行预测。完成训练:使用训练好的模型进行预测。

coszhuang的博客 497

图像质量评估:使用 SSIM 计算图像相似性

在图像处理领域,衡量两幅图像之间相似性的一种常见方法是使用结构相似性指数(SSIM)。SSIM 是一种全参考的图像质量评估指标,它不仅考虑了图像的亮度、对比度,还考虑了结构信息。在本文中,我们将介绍一个使用 Python 和 OpenCV 实现的 SSIM 计算脚本,并使用该脚本评估两幅图像的相似性。

hasque2019的博客 1154

EXI编解码避坑指南:ISO15118-2协议中3条异常命令的差异分析

本文深度剖析了ISO15118-2协议测试中EXI编解码的典型问题,聚焦于ChargeParameterDiscoveryRes、CertificateInstallationReq和MeteringReceiptReq三条命令在不同工具间产生109字节差异的现象。通过对比EXICodec.jar、OpenEXI和Efficient XML的输出,揭示了差异根源于EXI报头处理机制与模式文件完整性,并提供了从现象确认、根因分析到解决方案的标准化排查流程,助力协议测试工程师确保编解码一致性与通信可靠性。

algae的博客 411
上一篇: 给自己立一个人生目标(不定更)
下一篇: 【原创首发】训练集停止训练后,验证集加入训练(在深度学习算法中)
小基基o_O
博客等级 码龄9年 4414粉丝 467原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

小基基o_O

您的鼓励是我创作的巨大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值