【人工智能项目】Bert实现文本领域分类

基于BERT的超长文本分类模型 基于BERT的超长文本分类模型0.Abstract1.任务介绍数据集评估方法测试集 0.Abstract 本文实现了一个基于BERT+LSTM实现超长文本分类的模型, 评估方法使用准确率和F1 Score. 项目代码github地址: 1.任务介绍 用BERT做文本分类是一个比较常见的项目. 但是众所周知BERT对于文本输入长度有限制. 对于超长文本的处理, 最简单暴力无脑高效的办法是直接截断, ... 阅读详情

【人工智能项目】Bert实现文本领域分类

在这里插入图片描述
客官里面请,本次用bert实现文本领域的分类任务。本次在google colab进行实验的。那么,走起!!!

在这里插入图片描述

机器环境

!nvidia-smi

在这里插入图片描述

导包

#! -*- coding:utf-8 -*-
import re, os, json, codecs, gc
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import os
import time
import datetime

from sklearn.model_selection import train_test_split
from sklearn.preprocessing import LabelEncoder
from sklearn.utils import class_weight as cw

from keras import Sequential

from keras.models import Model

from keras.layers import LSTM,Activation,Dense,Dropout,Input,Embedding,BatchNormalization,Add,concatenate,Flatten
from keras.layers import Conv1D,Conv2D,Convolution1D,MaxPool1D,SeparableConv1D,SpatialDropout1D,GlobalAvgPool1D,GlobalMaxPool1D,GlobalMaxPooling1D
from keras.layers.pooling import _GlobalPooling1D
from keras.layers import MaxPooling2D,GlobalMaxPooling2D,GlobalAveragePooling2D

from keras.optimizers import RMSprop,Adam

from keras.preprocessing.text import Tokenizer
from keras.preprocessing import sequence

from keras.utils import to_categorical

from keras.callbacks import EarlyStopping
from keras.callbacks import ModelCheckpoint
from keras.callbacks import ReduceLROnPlateau

%matplotlib inline

import warnings
warnings.filterwarnings("ignore")

读取文件

train_dataset_path = "train.txt"
test_dataset_path = "test.txt"
label_dataset_path = "class.txt"

train_df = pd.read_csv(train_dataset_path,encoding="utf-8",sep='\t',names=["text","label"])
test_df = pd.read_csv(test_dataset_path,encoding="utf-8",sep = '\t',names=["text","label"])
label_df = pd.read_csv(label_dataset_path,encoding="utf-8",header=None,sep = '\t')
train_df

在这里插入图片描述

test_df

在这里插入图片描述

label_df

在这里插入图片描述

去除无标签的数据

train_df.dropna(axis=0, how='any', inplace=True)

在这里插入图片描述

清洗文本数据

import re
def filter(text):
    text = re.sub("[A-Za-z0-9\!\=\?\%\[\]\,\(\)\>\<:&lt;\/#\. -----\_]", "", text)
    text = text.replace('图片', '')
    text = text.replace('\xa0', '') # 删除nbsp
    # new
    r1 =  "\\【.*?】+|\\《.*?》+|\\#.*?#+|[.!/_,$&%^*()<>+""'?@|:~{}#]+|[——!\\\,。=?、:“”‘’¥……()《》【】]"
    cleanr = re.compile('<.*?>')
    text = re.sub(cleanr, ' ', text)        #去除html标签
    text = re.sub(r1,'',text)
    text = text.strip()
    return text

def clean_text(data):
    data['text'] = data['text'].apply(lambda x: filter(x))
    return data

train = clean_text(train_df)
test = clean_text(test_df)

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

标签统计

sns.countplot(train_df["label"])
plt.xlabel("Label")
plt.title("News sentiment analysis")

在这里插入图片描述

最终数据集

train_df["ocr"] = train_df["text"]
test_df["ocr"] = test_df["text"]

train_df = train_df[:45000]
train_df.shape

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

安装bert

!pip install keras_bert

在这里插入图片描述
下载bert的预训练好的权重语料。

!wget -c https://storage.googleapis.com/chineseglue/pretrain_models/roeberta_zh_L-24_H-1024_A-16.zip

在这里插入图片描述

!unzip roeberta_zh_L-24_H-1024_A-16.zip

在这里插入图片描述

训练

#! -*- coding:utf-8 -*-
import re, os, json, codecs, gc
import numpy as np
import pandas as pd
from random import choice
from sklearn.preprocessing import LabelEncoder
from sklearn.model_selection import KFold
from keras_bert import load_trained_model_from_checkpoint, Tokenizer


from keras.layers import *
from keras.callbacks import *
from keras.models import Model
import keras.backend as K
from keras.optimizers import Adam

maxlen = 512
config_path = './bert_config_large.json'
# checkpoint_path = '/export/home/liuyuzhong/kaggle/bert/chinese_L-12_H-768_A-12/bert_model.ckpt'
checkpoint_path = './roberta_zh_large_model.ckpt'
dict_path = './vocab.txt'

token_dict = {}
with codecs.open(dict_path, 'r', 'utf8') as reader:
    for line in reader:
        token = line.strip()
        token_dict[token] = len(token_dict)

class OurTokenizer(Tokenizer):
    def _tokenize(self, text):
        R = []
        for c in text:
            if c in self._token_dict:
                R.append(c)
            elif self._is_space(c):
                R.append('[unused1]') # space类用未经训练的[unused1]表示
            else:
                R.append('[UNK]') # 剩余的字符是[UNK]
        return R

tokenizer = OurTokenizer(token_dict)

def seq_padding(X, padding=0):
    L = [len(x) for x in X]
    ML = max(L)
    return np.array([
        np.concatenate([x, [padding] * (ML - len(x))]) if len(x) < ML else x for x in X
    ])

class data_generator:
    def __init__(self, data, batch_size=32, shuffle=True):
        self.data = data
        self.batch_size = batch_size
        self.shuffle = shuffle
        self.steps = len(self.data) // self.batch_size
        if len(self.data) % self.batch_size != 0:
            self.steps += 1
    def __len__(self):
        return self.steps
    def __iter__(self):
        while True:
            idxs = list(range(len(self.data)))
            
            if self.shuffle:
                np.random.shuffle(idxs)
            
            X1, X2, Y = [], [], []
            for i in idxs:
                d = self.data[i]
                text = d[0][:maxlen]
                x1, x2 = tokenizer.encode(first=text)
                y = d[1]
                X1.append(x1)
                X2.append(x2)
                Y.append([y])
                if len(X1) == self.batch_size or i == idxs[-1]:
                    X1 = seq_padding(X1)
                    X2 = seq_padding(X2)
                    Y = seq_padding(Y)
                    yield [X1, X2], Y[:, 0, :]
                    [X1, X2, Y] = [], [], []

from keras.metrics import top_k_categorical_accuracy
def acc_top5(y_true, y_pred):
    return top_k_categorical_accuracy(y_true, y_pred, k=5)
                    
def build_bert(nclass):
    bert_model = load_trained_model_from_checkpoint(config_path, checkpoint_path, seq_len=None)

    for l in bert_model.layers:
        l.trainable = True

    x1_in = Input(shape=(None,))
    x2_in = Input(shape=(None,))

    x = bert_model([x1_in, x2_in])
    x = Lambda(lambda x: x[:, 0])(x)
    p = Dense(nclass, activation='softmax')(x)

    model = Model([x1_in, x2_in], p)
    model.compile(loss='categorical_crossentropy', 
                  optimizer=Adam(1e-5),
                  metrics=['accuracy', acc_top5])
    print(model.summary())
    return model
    
from keras.utils import to_categorical

DATA_LIST = []
# 改
for data_row in train_df.iloc[:].itertuples():
    DATA_LIST.append((data_row.ocr, to_categorical(data_row.label, 10)))
DATA_LIST = np.array(DATA_LIST)

DATA_LIST_TEST = []
for data_row in test_df.iloc[:].itertuples():
    DATA_LIST_TEST.append((data_row.ocr, to_categorical(0, 10)))
DATA_LIST_TEST = np.array(DATA_LIST_TEST)
def run_cv(nfold, data, data_label, data_test):
    kf = KFold(n_splits=nfold, shuffle=True, random_state=520).split(data)
    # 改
    train_model_pred = np.zeros((len(data), 10))
    test_model_pred = np.zeros((len(data_test), 10))

    for i, (train_fold, test_fold) in enumerate(kf):
        X_train, X_valid, = data[train_fold, :], data[test_fold, :]
        # 改
        model = build_bert(10)
        early_stopping = EarlyStopping(monitor='val_acc', patience=3)
        plateau = ReduceLROnPlateau(monitor="val_acc", verbose=1, mode='max', factor=0.5, patience=2)
        checkpoint = ModelCheckpoint('./bert_dump/' + str(i) + '.hdf5', monitor='val_acc', 
                                         verbose=2, save_best_only=True, mode='max',save_weights_only=True)
        
        train_D = data_generator(X_train, shuffle=True)
        valid_D = data_generator(X_valid, shuffle=True)
        test_D = data_generator(data_test, shuffle=False)
        
        history = model.fit_generator(
            train_D.__iter__(),
            steps_per_epoch=len(train_D),
            epochs=3,
            validation_data=valid_D.__iter__(),
            validation_steps=len(valid_D),
            callbacks=[early_stopping, plateau, checkpoint],
        )
        model.save_weights("model2.h5")
        # model.load_weights('./bert_dump/' + str(i) + '.hdf5')
        model.save('model.h5')   # HDF5文件,pip install h5py
        # return model
        train_model_pred[test_fold, :] =  model.predict_generator(valid_D.__iter__(), steps=len(valid_D),verbose=1)
        test_model_pred += model.predict_generator(test_D.__iter__(), steps=len(test_D),verbose=1)
        
        del model; gc.collect()
        K.clear_session()
        
        # break
        
    return train_model_pred, test_model_pred,history
train_model_pred, test_model_pred,history = run_cv(2, DATA_LIST, None, DATA_LIST_TEST)

在这里插入图片描述

# 绘制训练过程中的 loss 和 acc 变化曲线
import matplotlib.pyplot as plt
%matplotlib inline

def history_plot(history_fit):
    plt.figure(figsize=(12,6))
    
    # summarize history for accuracy
    plt.subplot(121)
    plt.plot(history_fit.history["accuracy"])
    plt.plot(history_fit.history["val_accuracy"])
    plt.title("model accuracy")
    plt.ylabel("accuracy")
    plt.xlabel("epoch")
    plt.legend(["train", "valid"], loc="upper left")
    
    # summarize history for loss
    plt.subplot(122)
    plt.plot(history_fit.history["loss"])
    plt.plot(history_fit.history["val_loss"])
    plt.title("model loss")
    plt.ylabel("loss")
    plt.xlabel("epoch")
    plt.legend(["train", "test"], loc="upper left")
    
    plt.show()
history_plot(history)

在这里插入图片描述

预测

test_pred = [np.argmax(x) for x in test_model_pred]
test_df['labels'] = test_pred
test_df['labels']

在这里插入图片描述

test_df

在这里插入图片描述

from sklearn.metrics import classification_report
print(classification_report(test_df["label"], test_df["labels"]))

在这里插入图片描述

小结

本次那就到此结束了!!!我们下回不见不散!!!
在这里插入图片描述

基于BERT做中文文本分类(情感分析) Bert: BERT是一种预训练语言表示的方法,这意味着我们在大型文本语料库(例如Wikipedia)上训练通用的“语言理解”模型,然后将该模型用于我们关心的下游NLP任务,BERT优于之前的方法,因为它是第一个用于预训练NLP的无监督,深度双向系统。 相关论文: 《Attention Is All You Need》 《BERT:Pre-training of Deep Bidirect... 阅读详情

相关推荐

基于Transformers库的BERT模型:一个文本情感分类的实例解析

简介 本文来讲述BERT应用的一个例子,采用预训练好的BERT模型来进行演示。BERT的库来源于Transformers,这是一个由PyTorch编写的库,其集成了多个NLP领域SOTA的模型,比如bert、gpt-2、transformer xl等,并且可以自由选择已经预训练好的模型参数,我们可以基于这些参数进行进一步的训练调试。 Part 1: 利用BERT基于特征的方式进行建模 1、任务与数...

蓝天白云梦的csdn博客 2万+

Bert文本分类(基于keras-bert实现训练,保存,加载,预测单个文本)

Bert 预训练模型准备 中文预训练模型下载 当Bert遇上Keras:这可能是Bert最简单的打开姿势 keras-bert Bert 模型文本分类 1、数据准备 在GitHub中有酒店评论的数据 训练集: 测试集: 2、代码实现 ''' 提示:受GPU性能的影响,只能运行基础版的bert预训练模型,若出现OOM 适当调整batch_size,maxlen...

人生百态361 9993

教程:使用Bert预训练模型文本分类

Bert介绍 Bert模型是Google在2018年10月发布的语言表示模型,Bert在NLP领域横扫了11项任务的最优结果,可以说是现今最近NLP中最重要的突破。Bert模型的全称是Bidirectional Encoder Representations from Transformers,是通过训练Masked Language Model和预测下一句任务得到的模型。关于Bert具体训练的细...

weixin_43837634的博客 1万+

BERT在自然语言处理中的应用:文章质量判别模型实现

自然语言处理是人工智能领域中的重要分支,主要关注的是计算机如何处理自然语言文本,使其更接近人类语言理解的水平。文章质量判别是自然语言处理中的一个重要问题,其目标是判定一篇文本的质量,帮助读者快速了解文本的内容和质量,也有利于编辑和作者提高文章的质量。本文将介绍如何使用BERT实现文章质量判别模型,并提供相应的代码实现。

WeLearnNLP 2178

一起读论文 | 文本分类任务的BERT微调方法论

导读:今天为大家解读一篇复旦大学邱锡鹏老师课题组的研究论文《How to Fine-Tune BERT for Text Classification?》。这篇论文的主要目的在于在文本分类任务上探索不同的BERT微调方法并提供一种通用的BERT微调解决方法。这篇论文从三种路线进行了探索:(1) BERT自身的微调策略,包括长文本处理、学习率、不同层的选择等方法;(2) 目标任务内、领域内及跨领域的进一步预训练BERT;

语言智能技术笔记簿 3165

自然语言处理在AI人工智能领域的应用创新实践案例

本文旨在全面剖析自然语言处理技术在人工智能领域的创新应用实践。我们将覆盖从基础理论到前沿技术,再到实际行业应用的完整知识链条,为读者提供一个系统性的NLP技术全景图。文章首先介绍NLP的基本概念和发展历程,然后深入核心技术原理,接着通过实际案例展示应用创新,最后探讨未来发展趋势。自然语言处理(NLP): 计算机科学和人工智能领域的一个分支,专注于计算机与人类语言之间的交互: 一种基于自注意力机制的神经网络架构,已成为现代NLP的基础BERT: 谷歌开发的基于Transformer的双向编码器表示模型。

AI大模型应用之禅 358

【自然语言处理NLP】Bert预训练模型、Bert上搭建CNN、LSTM模型的输入、输出详解

通过使用不同宽度的卷积核,模型能够同时捕捉不同范围的语义信息,从而提高模型对输入文本的理解能力。是一个与输入张量形状相同的二进制张量(0和1组成),用于指示哪些位置是有效的(1表示有效)和哪些位置是填充的(0表示填充)。令牌的表示可以用作整个序列的汇总或句子级别的表示,通常用于下游任务的分类或句子级别的特征提取。这些属性提供了BERT模型在不同层级和注意力机制上的输出信息,可以根据任务的需求选择合适的属性来使用。,表示模型在每个位置上关注另一个输入序列(如句子级别的任务中的两个句子)的程度。

weixin_44624036的博客 9888

特定领域推理任务中预训练模型迁移的新方法

在当今的人工智能领域,预训练模型如BERT、GPT等在大规模无监督数据上进行训练,学习到了丰富的语言和特征表示。但在实际应用中,很多特定领域(如医疗、金融、法律等)的推理任务对模型的专业性和针对性有更高要求。本文章的目的是介绍将预训练模型迁移到特定领域推理任务的新方法,范围涵盖核心概念、算法原理、数学模型、项目实战、实际应用场景等方面,旨在帮助研究者和开发者更好地掌握和应用这些新方法。本文将按照以下结构展开:首先介绍核心概念与联系,明确预训练模型迁移的基本原理和架构;

AI Python 编程之道的博客 683

[LLM] 自然语言处理 --- Bert开发实战 (Transformers)

本文主要介绍如果使用huggingface的transformers 2.0 进行NLP的模型训练 除了transformers,其它兼容tf2.0的bert项目还有: 我的博客里有介绍使用方法 [深度学习] 自然语言处理--- 基于Keras Bert使用(上) keras-bert(Star:1.4k) 支持tf2,但它只支持bert一种预训练模型 bert4keras (Sta...

摩登都市天空---专栏 1万+

【人工智能之深度学习】12. BERT微调实战:医疗文本分类的领域自适应技巧与工业级实现

摘要:医疗文本分类是自然语言处理在医疗健康领域的核心应用,可辅助疾病诊断、病历结构化和医疗质量监控。然而,医疗文本的专业术语密集、实体关系复杂及数据长尾分布等特性,导致通用BERT模型性能受限。本文系统阐述医疗文本分类的领域自适应技术,从理论原理到工业级实现展开全流程讲解。首先分析医疗文本的独特属性及技术挑战;随后详解领域继续预训练、适配器微调、对抗训练等核心技术的数学原理;构建包含数据预处理、模型优化、隐私保护的完整实战架构;通过疾病分类、情感分析、事件检测三大案例验证技术有效性。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1008

CLion for Mac(m1)配置GCC编译器

条件:电脑已经下载过XCode 一. 下载HomeBrew homebrew是一款macos,linux下的包管理工具,我们需要使用他来下载GCC 下载方法: 1.打开终端(terminal) 2.输入 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" ps.有可能会遇到的问题 我当初下载挂了VPN,优快云上还有很多解决问题的方法,可以将错误信

supermario19的博客 7847

人工智能【第28篇】AI项目实战:从零构建智能文本分类系统

本文详细介绍了构建新闻文本分类系统的完整流程。项目基于BERT预训练模型,使用PyTorch框架实现,涵盖数据预处理、模型训练、评估和FastAPI服务部署等环节。系统能够将新闻自动分类为科技、体育、财经、娱乐和健康5个类别,准确率达95.2%。文章提供了清晰的代码实现和项目架构设计,包括Docker容器化部署方案,可作为NLP项目开发的实用参考。

欢迎关注,一起进步! 206

三、Crowd与JIRA、Confluence用户集成并SSO单点登录

补充说明: 通过此方法集成后,用户、组以及用户和组的关系都在Crowd系统中存储,但各个系统的权限仍由各系统控制,也可在JIRA和Confluence中添加和删除用户。 在做步骤4和步骤5的时候,要特别小心,确保当前系统的超级权限用户(一般为admin,具体看当前系统的全局权限配置)和组以及它们的关系已经在Crowd中同样存在了,才可切换并禁用当前系统的内部用户目录,否则可能造成权限丢失等严重问题(因为禁用了内部用户目录,而Crowd中又不存在这个超级权限用户和组或它们的关系,所以权限就丢失了) 维护示例

weixin_38621072的博客 2989

BERT模型实战之多文本分类(附源码)

写在前面 BERT模型也出来很久了,之前看了论文学习过它的大致模型(可以参考前些日子写的笔记NLP大杀器BERT模型解读),但是一直有杂七杂八的事拖着没有具体去实现过真实效果如何。今天就趁机来动手写一写实战,顺便复现一下之前的内容。这篇文章的内容还是以比较简单文本分类任务入手,数据集选取的是新浪新闻cnews,包括了[‘体育’, ‘财经’, ‘房产’, ‘家居’, ‘教育’, ‘科技’, ‘时尚’...

Kaiyuan_sjtu的博客 6万+

Jetson Nano官方镜像下载&烧录

在NVIDIA Jetson Nano开发者套件上安装NVIDIA官方Ubuntu镜像

weixin_44222088的博客 8855

K230开发板实战:5步搞定YOLOv8模型部署(附常见报错解决方案)

本文提供了一份详细的K230开发板部署YOLOv8模型的实战教程。内容涵盖从环境准备、模型转换到代码编写的完整流程,并重点解析了使用AICube工具链时常见的“生成部署文件异常”等报错解决方案,旨在帮助开发者高效完成嵌入式AI模型部署。

weixin_29053073的博客 787

BERT文本分类实战

本文介绍了基于Bert对文本分类任务进行了Fine-tune,详细介绍了如何使用bert对文本进行训练,完成了文本分类任务,从训练到预测的全教程。欢迎转载,转载请注明出处。

IT_xiao_bai的博客 1万+

汽车电子开发必看:AUTOSAR MCAL层SPI驱动配置全解析(基于EB tresos)

本文深入解析了AUTOSAR MCAL层SPI驱动的核心配置,基于EB tresos工具详细阐述了通道、外部设备、作业与序列等关键概念。重点剖析了多设备共享总线时的资源管理与实时性调优策略,特别是SpiJobPriority参数的决定性影响,并提供了常见配置陷阱的实战排查指南,旨在帮助汽车电子工程师高效完成SPI驱动配置。

weixin_29188043的博客 293

NLP之BERT中文文本分类超详细教程

bert模型是Google在2018年10月发布的语言表示模型,Bert在NLP领域横扫了11项任务的最优结果,可以说是现今最近NLP中最重要的突破。Bert模型的全称是Bidirectional Encoder Representations from Transformers,是通过训练Masked Language Model和预测下一句任务得到的模型。关于Bert具体训练的细节和更多的原...

小小码农 5万+

秋招突击——笔试整理——8/25——拼多多笔试整理

继续加油! 转变思维,有简单到复杂,由直观到抽象,这种贪心模拟的题目一直是这样的!

Blackoutdragon的博客 2403

1.2 博图TIA的轨迹(Trace)功能介绍

在TIA中“轨迹” ( Traces ) 能来记录设备变量并对记录进行评估,对有些故障排查很有帮助,本文进行介绍

qq_34047402的博客 1651

【论文解析】如何将Bert更好地用于文本分类(How to Fine-Tune BERT for Text Classification?)

论文How to Fine-Tune BERT for Text Classification?基于Bert模型,在6份英文语料和1份中文预料上(包括情感分析、问题分类和主题分类),进行了翔实的文本分类效果对比实验结果,虽然fine-tune的最终效果取决于具体的task,但文中采用的思路和策略仍值得学习和尝试。 Bert作为强有力的预训练模型,用作下游任务的常见手段包括:(1)作为特征提取器;(...

guofei_fly的博客 3693

Arduino、ESP32驱动TEMT6000传感器(光照传感器篇)

TEMT6000是一个三极管类型的光敏传感器,其光照强度和基极的电流成正比。用起来也相当简单,可以简单的连接该传感器的基极到模拟电压输入,通过简单的检测电压值就可以判断当前的光照强度。

不脱发的程序猿 4234

Bert-classification-pytorch: 基于PyTorch的Bert文本分类框架

Bert-classification-pytorch: 基于PyTorch的Bert文本分类框架 去发现同类优质开源项目:https://gitcode.com/ 该项目()是一个高效且易于使用的文本分类工具,它利用了Transformer架构中的明星模型——Bert。由Google开发的Bert(Bidirectional Encoder Representations from Transf...

gitblog_00097的博客 1100

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

微调BERT模型实现文本分类

模型微调只是针对某种下游任务,针对性的强化模型的能力,但是微调之后的模型在泛化能力上有所下降。

大模型研究中心 4299

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

自然语言处理系列五十二》文本分类算法》BERT模型算法原理及文本分类

【配套新书教材】《自然语言处理原理与实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】新书特色:本书从自然语言处理基础开始,逐步深入各种NLP热点前沿技术,使用了Java和Python两门语言精心编排了大量代码实例,契合公司实际工作场景技能,侧重实战。

weixin_52610848的博客 2613
上一篇: 【人工智能项目】ImageNet数据集介绍以及数字图像处理技术
下一篇: 【人工智能项目】LBP+SVM人脸表情识别
mind_programmonkey
mind_programmonkey 领域专家: 算法与数据结构技术领域 领域专家: 算法与数据结构技术领域
博客等级 码龄9年 4435粉丝 1111原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

mind_programmonkey

你的鼓励是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值