NLP成长计划(三)

NLP成长计划(一) Getting Set Up 需要安装的程序: Anaconda 5.0.1 Python 3.6https://www.anaconda.com/download/ -- Python 3.6 可以更好地处理文本数据 -- Anacond 收集了流行的libraries以及packages. XGboost 安装XGBoost: conda install -c conda-forge... 阅读详情

Setup

假设您已经完成了(一)和(二)所需的设置。

 

Train-Validation-Test Split

在开始在新数据集上拟合模型之前,您应该(并且尽量)将初始数据集划分为“训练集train“、“验证集validation”和“测试集test”。训练数据集为我们提供了一个让我们的模型学习的地方。验证数据集为我们提供了一种判断模型相对于其他潜在模型的性能的方法。测试数据集帮我们预估我们的模型推广到未被看见的数据的能力。

在实践中,我们将使用训练数据集来训练你所有的潜在模型。验证数据集将被传递给这些模型中的每一个,以判断这些模型中的每一个的性能,从而允许我们对模型进行比较。然后,一旦找到我们的最佳模型,我们最终通过测试数据集来判断该模型对未观测数据的性能,并且基于测试数据集的性能需要提供在你的学术论文或给老板的报告之中。

通常要保留20-50%的数据用于验证和测试集,并使用剩下的50-80%进行训练。

永远不要把你的数据分成第一个80%个和剩下20%个来验证和测试集。你应该尽可能地随机地分割数据。在训练集的选择中,几乎不包含非随机过程可以歪曲模型参数。数据经常以某种方式排序(按日期或甚至是你试图预测的值)。

有一种在Scikit中实现的方法,将数据集随机分割为我们称为train_test_split。我们可以使用这种方法两次来执行下面的列车验证测试分割。

        

from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split

# make the split reproducible
random_state = 42

# get some data
digits = load_digits()
X, y = digits.data, digits.target

# get our split percentages
validation_size = .25
test_size = .25
validation_test_size = validation_size + test_size
test_size_adjusted = test_size / validation_test_size

# perform the first split which gets us the train data and the validation/test data that
# we must split one more time
X_train, X_validation_test, y_train, y_validation_test =  train_test_split(X, y,\
                                                                           test_size = validation_test_size,\
                                                                           random_state = random_state)

# perform the second split which splits the validation/test data into two distinct datasets
X_validation, X_test, y_validation, y_test = train_test_split(X_validation_test, y_validation_test,\
                                                              test_size = test_size_adjusted,\
                                                              random_state = random_state)

 

 

Pipeline

在数据科学中,pipeline 是一系列与建模相关的任务。我们从一些初始输入开始,将其输入到第一建模任务中。第一建模任务的输出然后被馈送到下一个第二建模任务,等等,直到我们达到最终建模任务和输出。

在这个课程的背景下,我们使用一个管道与两个建模任务。最初的输入是一篇文章,我们想把它归类为假新闻。第一个建模任务是我们的文章,并嵌入它。第一模型的输出,嵌入,被馈送到最终的建模任务,分类器。最后我们的流水线输出,分类将指示初始输入,文章是否是假的。

当使用Scikit时,您可以使用其内置管道特性来使用Scikit模型构建管道。要看如何使用这个工具,你可以看看这个例子(http://scikit-learn.org/stable/auto_examples/model_selection/grid_search_text_feature_extraction.html#example-model-selection-grid-search-text-feature-extraction-py)。在这个例子中,文本特征提取器由使用随机梯度下降的线性分类器组成。

 

Hypertuning

在任何机器学习算法中,我们必须通过一些参数来初始化模型。对于任何模型,我们使用的超参数集合取决于我们试图训练的数据。为给定数据集找到模型的最优超参数集的过程称为“hypertuning”。hypertuning 的过程包括用不同的超参数集合训练多个模型,并使用一些度量或度量的顶点(即F1评分、精确度、回想等)来确定最优的超参数集合。我们基于模型使用产生用于验证和/或训练数据集的最佳总体度量的最优超参数集合来选择最优的超参数集合。

 

网格搜索通常用于当您不知道(并且通常不太关心)给定估计器或一组估计器的一组最佳参数的含义时。它们本质上是一组for循环,用于测试一系列参数,并为每种情况(因此是网格)构建单个模型。Scikits有一个网格搜索类(http://scikit-learn.org/stable/modules/grid_search.html#grid-search),它将自动对一个或多个估计器参数进行穷举或优化搜索。

还有点令人困惑的是,人们常常将“管道”和“网格搜索”混为一谈,有时用前者表示后者。您可以将网格搜索作为流水线的一部分,使用最终函数来估计模型质量,并将测试模型的输出作为输入。Scikits在这里有一个例子(http://scikit-learn.org/stable/modules/pipeline.html#pipeline)

网格搜索有两种,穷举型和随机型:

         

Exhaustive

穷举的网格搜索只不过是一系列for循环,每个循环遍历可能超参数值的字典。保持所有搜索参数的最佳性能,并返回所选择的超参数。Scikit有一个方法,尽管你可以自己编写类似伪代码的方法:

results = {}
parameter_vals = {'p1':[a_1,a_2...a_K], 'p2':[b_1, b_2, ... b_M], ... , 'pN':[zz_1, zz_2, ..., zz_N]}

parameter_sets = generate_parameter_grid by exhaustive combinations
for set in parameter_sets
    test accuracy of model(set)
results[set] = accuracy   
return argmax(results)

Random

对参数值的随机搜索使用生成函数(通常是选择的分布)来为超参数生成候选值集。这比穷举搜索有一个主要好处:用户只有一个参数来处理

下面是如何执行一个随机的和穷尽的网格搜索的例子:

import numpy as np

from time import time
from operator import itemgetter
from scipy.stats import randint as sp_randint
from sklearn.model_selection import GridSearchCV, RandomizedSearchCV
from sklearn.datasets import load_digits
from sklearn.ensemble import RandomForestClassifier

# load digit dataset
digits = load_digits()
# split data into inputs and output
X, y = digits.data, digits.target

# build a random forest classifier
clf = RandomForestClassifier(n_estimators=20)


# Utility function to report best scores
def report(grid_scores, n_top=3):
    # sort scores based on metric so we can grab the n_top models
    top_scores = sorted(grid_scores, key=itemgetter(1), reverse=True)[:n_top]
    # iterate over the n_top models
    for i in range(n_top):
        print("Model with rank: {0}".format(i + 1))
        print("Mean validation score: {0:.3f} (std: {1:.3f})".format(
              grid_scores['mean_test_score'][i],
              grid_scores['std_test_score'][i]))
        print("Parameters: {0}".format(grid_scores['params'][i]))
        print("")


# specify parameters and distributions to sample from - 
# what methods might we consider that would improve these estimates?
param_dist = {"max_depth": [3, None],
              "max_features": sp_randint(1, 11),
              "min_samples_split": sp_randint(2, 11),
              "min_samples_leaf": sp_randint(1, 11),
              "bootstrap": [True, False],
              "criterion": ["gini", "entropy"]}

# number of models we are going to train
n_iter_search = 20
# create our randomized gridsearch classifier
#      clf, is the model we are performing the search on
#      param_dist, is a dictionary of paramater distributions that we will sample over
#      n_iter_search, number of models we are going to train
#      True, the scores from our training for each model will be returned when we perform the gridsearch
random_search = RandomizedSearchCV(clf, param_distributions=param_dist,
                                   n_iter=n_iter_search, return_train_score=True)
# start a timer so we know how long the random gridsearch took
start = time()
# perform the random gridsearch
random_search.fit(X, y)
print("RandomizedSearchCV took %.2f seconds for %d candidates"
      " parameter settings." % ((time() - start), n_iter_search))
# print the top 3 model outputs from the random gridsearch
report(random_search.cv_results_)

# use a full grid over all parameters. 
# The grid search will generate parameter sets for each and every one of these
param_grid = {"max_depth": [3, None],
              "max_features": [1, 3, 10],
              "min_samples_split": [2,3,10],
              "min_samples_leaf": [1, 3, 10],
              "bootstrap": [True, False],
              "criterion": ["gini", "entropy"]}

# create an exhaustive gridsearch object
#      clf, is the model we are performing the search on
#      param_grid dictionary with the parameter settings the search will try
#      True, the scores from our training for each model will be returned when we perform the gridsearch
grid_search = GridSearchCV(clf, param_grid=param_grid, return_train_score=True)
# start a timer so we know how long the exhaustive gridsearch took
start = time()
# perform the exhaustive gridsearch
grid_search.fit(X, y)

print("GridSearchCV took %.2f seconds for %d candidate parameter settings."
      % (time() - start, len(grid_search.cv_results_)))
# print the top 3 model outputs from the exhaustive gridsearch
report(grid_search.cv_results_)

以及输出:

RandomizedSearchCV took 3.41 seconds for 20 candidates parameter settings.
Model with rank: 1
Mean validation score: 0.923 (std: 0.017)
Parameters: {'bootstrap': False, 'criterion': 'gini', 'max_depth': None, 'max_features': 7, 'min_samples_leaf': 4, 'min_samples_split': 2}

Model with rank: 2
Mean validation score: 0.905 (std: 0.013)
Parameters: {'bootstrap': True, 'criterion': 'gini', 'max_depth': None, 'max_features': 7, 'min_samples_leaf': 4, 'min_samples_split': 10}

Model with rank: 3
Mean validation score: 0.768 (std: 0.024)
Parameters: {'bootstrap': True, 'criterion': 'gini', 'max_depth': 3, 'max_features': 1, 'min_samples_leaf': 2, 'min_samples_split': 2}

GridSearchCV took 44.23 seconds for 22 candidate parameter settings.
Model with rank: 1
Mean validation score: 0.761 (std: 0.026)
Parameters: {'bootstrap': True, 'criterion': 'gini', 'max_depth': 3, 'max_features': 1, 'min_samples_leaf': 1, 'min_samples_split': 2}

Model with rank: 2
Mean validation score: 0.785 (std: 0.020)
Parameters: {'bootstrap': True, 'criterion': 'gini', 'max_depth': 3, 'max_features': 1, 'min_samples_leaf': 1, 'min_samples_split': 3}

Model with rank: 3
Mean validation score: 0.761 (std: 0.030)
Parameters: {'bootstrap': True, 'criterion': 'gini', 'max_depth': 3, 'max_features': 1, 'min_samples_leaf': 1, 'min_samples_split': 10}

 

Priotiritizing Parameters

当进行超调时,记住并非所有的超参数都同等重要。对于大多数模型,超参数子集将对模型的性能产生重大影响,而剩余的超参数对模型的性能几乎没有影响,或者无论数据如何,都应该为超参数使用已建立的值。因此,我们的超调应该着眼于寻找这个重要的超参数子集的最优值。

例如,用神经网络,调整的两个最重要的超参数是优化器的学习速率和权重正则化。这两个参数都控制神经网络学习的速率。如果你对这些参数是“积极”的,那么我们可能会超过最优权重,但是如果我们对这些参数太“宽容”,我们可能会低于最优权重。

 

Other Strategies

除了网格搜索之外,还有其他方法来执行超调。一种选择是贝叶斯优化。贝叶斯优化近似后验分布模型的基础上,你试图训练找到最优集合的超参数。这里是python中的一个实现(https://github.com/fmfn/BayesianOptimization)。

 

Troubleshooting

在数据科学中,存在大量的问题,这些问题可能出现在数据和/或建模方面。幸运的是,对于我们来说,我们在数据科学中面临的许多问题已经被其他人遇到,并且已经建立了解决这些问题的方法。在这里,我们将研究数据科学中出现的两个常见问题,以及如何解决这些问题的一些贸易工具。

 

Imbalanced Classes

当执行分类学习时,会发生不平衡类,我们可以输出的潜在类的子集构成了我们数据的大部分。

为了确保我们的模型能够了解所有的类,我们可以使用一个对阶级失衡有鲁棒性的模型。对类不平衡具有鲁棒性的模型的一个例子是类加权支持向量机。基本上,这个模型对少数类观测数据的错误分类给予了更高的惩罚,使得尽管每个类的观测数据数量不同,该模型仍然对每个类给予同等的重要性。Scikit的SVM版本可以在这里找到(http://scikit-learn.org/stable/auto_examples/svm/plot_separating_hyperplane_unbalanced.html#)。

虽然有时我们可能希望针对不平衡数据使用对不平衡类不鲁棒的模型(即,本课程使用XGBoost来处理不平衡的文章数据集)。在这些情况下,最好重新采样你的数据,这样你的采样数据就纠正了不平衡。这种平衡的采样数据然后被用来训练你的模型,而不受不平衡数据的影响。

                                  

 

 

Information Leakage

当训练数据具有额外的信息,使得我们的模型似乎比“真实世界”中的实际情况产生更好的结果时,就会发生信息泄漏。我们通常的方法是执行一个训练,验证和测试分割到我们的数据。我们只使用测试集来判断我们的最终模型在投产时的性能如何。然而,有时我们没有足够的数据量来拥有一个纯测试集。克服信息泄漏(即数据不足)的一种方法是执行k折叠交叉验证。

 

KFold Cross Validation

理想情况下,在训练模型时,我们希望在缺少足够数据时,仍然可以使用KFold Validation测量模型的性能。通过使用K折交叉验证,我们可以得到更准确的误差值。

基本上,我们把数据分解成k个组。我们采取这些小组之一,并将其设置为测试集。然后,我们对剩余的组进行数据训练,并计算测试组的误差。我们可以重复这个过程K次和平均所有的结果。这使我们对误差有了更准确的认识。

你可以使用此方法在 Scikit 中执行k折叠交叉验证(http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.KFold.html#sklearn.model_selection.KFold)。

                                       

Hyperparameter tuning-2.1.1-initialization初始化 Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization-2.1.1-initialization初始化 立即下载

相关推荐

Python+OpenCV实战:雨天车牌识别准确率提升300%的5个关键技巧

本文针对雨天车牌识别准确率骤降的难题,分享了五个基于Python和OpenCV的实战技巧。通过暗通道先验去雾、雨纹抑制、光照不变量颜色空间转换、多尺度自适应阈值分割以及融合传统特征与轻量级深度学习的混合识别策略,系统性地提升了算法在恶劣天气下的鲁棒性。这些方法能有效解决图像模糊、对比度低、字符断裂粘连等问题,为智能交通等实际应用提供可靠解决方案。

k8l9m0n的博客 717

【时间序列】如何用差分让时间序列变得平稳-Python实践

目录1 概述2 平稳和非平稳时间序列3 让序列数据平稳4 差分转换4.1 线性增长的趋势4.2 季节性趋势5 总结 1 概述 时间序列数据集可能包含趋势和季节性,在建模之前可能需要将其删除。 趋势可能导致随时间变化的平均值,而季节性可能导致随时间变化的方差(variance),这两者都将时间序列定义为不稳定的(non-stationary)。稳定(Stationary)数据集是具有稳定均值和方差...

qq_41103204的博客 2万+

高精度SAR ADC设计实战:从建模到版图的16位1MSPS实现

本文详细介绍了16位1MSPS高精度SAR ADC的设计过程,从建模到版图实现的完整流程。重点探讨了分段电容阵列设计、校准算法实现及版图匹配等关键技术,展示了如何在180nm工艺下实现92.5dB SNDR和109.6dB SFDR的高性能指标。文章特别强调了整数桥接电容设计对提升匹配精度的关键作用,为高精度模数转换器设计提供了实用参考。

weixin_33724046的博客 438

自动模型优化:HyperparameterTuning与ModelPruning

1.背景介绍 在深度学习领域,模型优化是一项至关重要的任务。模型优化可以帮助我们提高模型的性能,减少训练时间和计算资源的消耗。在这篇文章中,我们将讨论两种常见的模型优化方法:Hyperparameter Tuning 和 Model Pruning。 1. 背景介绍 Hyperparameter Tuning 和 Model Pruning 都是针对神经网络模型的优化方法。Hyperpara...

AI天才研究院 1377

基于rms包的限制性立方样条回归(RCS)R代码实现

RCS

2301_79584199的博客 2万+

将Windbg附加到软件进程上排查异常闪退的问题

使用Windbg和Process Explorer排查因为内存泄漏导致的软件异常闪退问题。

dvlinker的技术专栏 1万+

【NLP项目-文本分类】划分测试集,训练集,验证集

本篇文章的主要任务是将自己的数据集使用在Chinese-Text-Classification-PyTorch项目中github地址:数据集:二分类的文本数据,做情感分析,review为评论内容,label分为1,0正负项。

haerxiluo的博客 2574

Deepfake检测模型-PyDeepFakeDet项目复现实验报告-深度学习

该实验是对于https://github.com/wangjk666/PyDeepFakeDet模型的复现。PyDeepFakeDet 是一款集成的、可扩展的 Deepfake 检测工具。目标是提供最先进的 Deepfake 检测模型以及用于在常用 Deepfake 数据集上训练和评估新模型的接口。

一位不是很硕的鉴伪方向硕士 5495

常用超参数优化的方法

常用的网格搜索方法

hbkybkzw的博客 1496

Android 13 内置xapk安装包的方法

安装xapk 内置xapk

安卓兼职framework和app工程师的博客 224

【AI大模型:前沿】44、大模型+机器人:从自动化工具到通用智能体的技术革命与应用全景

大模型与机器人的融合催生了“具身智能体”,突破传统机器人智能化缺失、功能单一等瓶颈。大模型赋予机器人三大能力:常识推理(如热牛奶需去包装)、模糊指令解析(如“整理书桌”拆解步骤)、零样本任务泛化(如搭乐高桥)。技术实现上,通过多模态融合(视觉-语言-动作)、仿真训练(虚拟试错)和实时反馈(动态调整动作)形成闭环。主流框架如Google RT-2(端到端动作生成)、斯坦福Q-Transformer(强化学习优化)和Figure 01(ChatGPT驱动人形机器人)各具优势,可适配工业、家庭等场景。该技术正重塑

2025博客之星Top81。专注AI工程化与架构实战。从分布式思维到模型部署,用工程化视角为你厘清AI落地的真实路径。 2021

GridSearchCV 工具介绍

GridSearchCV 是一个用于超参数调优的工具,它在给定的参数网格中执行交叉验证,以确定最佳的参数组合。通过穷举搜索(exhaustive search)来寻找最佳参数,即尝试所有可能的参数组合,并使用交叉验证来评估每个参数组合的性能。

我有明珠一颗的博客 863

数据权限设计

随着IT新技术不断完善成熟,企业数字化建设得到全面的发展,数据将成为一个创造财富的重要来源,并且越来越多地被视为一项值得重视的企业资产。未来,很多企业之间的竞争,其实也是资源和数据竞争。那么针对数据资产,如何保障它的安全性呢?数据的权限管理无疑是必不可少的。数据权限从数据源来控制不同的用户能够查看、使用和授权不同的数据表数据(其实就是数据表行列的管控),就如同筑起了一道道护城墙,为数据安全提供了保障。

qq_40664711的博客 1万+

NLP领域的知识体系构建及成长之路

由于以后可能会接触到大模型相关的知识,所以现在想迫切的构建一下自己的知识体系,之前也只是对于CV领域比较熟悉,CNN、MLP以及一点点RNN的知识,但是当前最重要的确实是过于疏忽了,希望通过自己的努力,尽快把这些知识补齐,不至于落下太多。当然,这篇博客的出发点不仅仅是做一些知识的积累,也还是希望能够构建一些相关领域的知识体系,以及上手一些代码,实现更快的成长。

jq_98的博客 890

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

自然语言处理入门自学怎么样?零基础自学NLP可行吗

人工智能时代,零基础自学NLP完全可行。自学具有灵活自由、资源丰富等优势,关键在于打好Python编程和数学基础,采用分阶段学习路径:先掌握基础工具,再学习NLP核心概念,最后深入模型与实战。推荐优质在线课程、经典书籍和开源工具辅助学习。虽然面临知识碎片化等挑战,但通过参与社区讨论、坚持学习计划,任何人都能逐步掌握NLP技术,成长为专业人才。关键在于保持学习热情和耐心,善用丰富的在线资源。

OpenCVtuxiang的博客 504

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

NLP成长计划(二)

  Setup 假设您已经完成了(一)所需的设置。 在本讲座中,我们将使用 Gensim和NLTK,这两个广泛使用的Python自然语言处理库。     如果我们想要能够对文本进行分类,我们需要能够根据文章、段落、句子和文本的其他主体所包含的信息以及它们所表示的内容来生成它们的特征。有很多方法可以做到这一点,我们将采用3种方法。 Term-Document Bag-of-Words...

codes_first的博客 574

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

AI 开发工程师成长路径:从 Python 到量子计算的 12 个月计划

第 5 个月先学习深度学习的基础理论,包括神经网络的基本结构(输入层、隐藏层、输出层)、激活函数(Sigmoid、ReLU、Tanh)、反向传播算法等。随后,重点学习线性回归和逻辑回归算法,理解其数学原理(如最小二乘法、极大似然估计),通过 Scikit - learn 库实现算法,在房价预测、鸢尾花分类等数据集上进行实践,评估模型的准确率、精确率、召回率等指标。第 1 个月聚焦 Python 核心语法,包括变量、数据类型(整数、浮点数、字符串、列表、字典等)、条件语句、循环结构、函数定义与调用等。

2503_92849275的博客 5439

视频教程-自然语言处理实战——情感分析-NLP

自然语言处理实战——情感分析 从事软件开发行业二十余年,创业公司做过,上市公...

weixin_33530135的博客 567

十年育林,百度NLP已枝繁叶茂

种一棵树,最好的时间是十年前,其次是现在。 ——Dambisa Moyo 7 月 10 日,自然语言处理顶会 ACL 2020 落下帷幕。本次大会共收到 3429 篇论文投稿,其中 779 篇被接收,接收率为 22.7%,与去年持平,低于近年来大部分年份的接收率。 在这 779 篇论文中,有 185 篇来自中国大陆,占被接收论文总数的 23.7%,仅次于美国。此外,今年的最佳论文二作和最佳 demo 论文一作均为华人学生。 然而,很多人可能不知道,2000 年 ACL 年会在中国香港举办时,只有微软中国研

qq_40247584的博客 3835

2024必读NLP书籍!《自然语言处理:基于预训练模型的方法》附PDF!

1.1 自然语言处理的概念 21.2 自然语言处理的难点21.3 自然语言处理任务体系.41.4 自然语言处理技术发展历史7。

2401_85373898的博客 1919

NLP科研小白如何快速入门导师分配的课题

Tip: 与导师积极沟通非常重要,建议在与导师交流前将自己搜集的文章进行分类汇总,总结每类文章的优缺点,并选代表性文章重点解读,最后可以附上一些自己的想法。参加学术会议、研讨会,拓展人脉,寻找潜在的合作伙伴,共同攻克研究难题。在导师分配的新课题上入门需要一定的努力和准备工作,科研是一个积累的过程,要制定好合理的学习计划养成学习习惯,找到适合自己的学习风格,做好持久战的准备,迎接NLP科研的精彩旅程。> Tip: 阅读论文时,对于公开项目源码的文章可以重点阅读,并**尝试复现代码,提升代码能力**。

sev7777777的博客 369

我的NLP学习之路

我的NLP学习之路 1.目前存在的问题和当前的状态 当前学到的东西比较零散,不成体系,死学死记,难以融会贯通 具体包括:1)代码撰写没有计划和系统性,想到哪写到哪,看别人的代码也是不求甚解。 2)看技术文章也是没有跟自己的知识体系进行融合,单纯混个眼熟。 2.准备的学习计划 成块的攻克:基于一个主题的大量的经典资料的阅读和实践(必须有代码的实操) 从最新的技术分享中追踪牛人的研究方向,紧跟前沿 代码要有整体性,有结构,模块化,规范化。 消化吸收,记录笔记...

ninghongbo123的博客 419

NLP之心有猛虎,口灿莲花,行深般若。

作者:波旬链接:https://www.zhihu.com/question/20313151/answer/21403706来源:知乎著作权归作者所有,转载请联系作者获得授权。 天下武功,皆有一招半式可取。NLP,或神经语言程序学(Neuro-Linguistic Programming),无非心(Neuro)、口(Linguistic)、行( Programming)的周天循环。 持此心有...

weixin_34245169的博客 321

视频教程-自然语言处理——实战分词-NLP

自然语言处理——实战分词 从事软件开发行业二十余年,创业公司做过,上市公司也...

weixin_33518524的博客 503

AI学习哪个好?风变AI成长计划给出答案

在风变AI成长计划的AI绘图训练营部分,风变设计了4周的实践,让学员从基本功篇、专业创作篇、商业应用篇、商业应用进阶篇四个方向逐级学习,确保学员学成后可以进行商业应用,开启赚钱的新篇章;近年来火遍全网的AI技术,一直吸引着大众的关注,从AI绘画,到AI视频制作,再到自然语言处理技术等,AI的应用也越来越广。根据当下市场的实际需要,风变AI成长计划课程整体划分为了三部分:AI绘图训练营、AI智能对话营、AI视频创作营,让学员学成之后可以更好地将AI技术应用到工作中,提升自己的工作效率。

weixin_38975266的博客 775
上一篇: NLP成长计划(二)
下一篇: 数据结构——链表实现两个多项式加减乘除
codes_first
博客等级 码龄10年 255粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值