百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

NLP中文面试学习资料面向算法面试,理论代码俱全GitHub趋势榜

toyiye 2024-04-27 03:47 18 浏览 0 评论

鱼羊 发自 凹非寺

量子位 报道 | 公众号 QbitAI

一年一度的秋招已经悄悄来临,征战在求职路上的你,准备好了吗?

工欲善其事,必先利其器。

这里有一份NLP面试大全,全中文教学,囊括机器学习及NLP算法面试中常考的知识点,还有算法实战代码,实乃算法工程师求职路上,必备良品。

宜入门,亦宜复习。还登上了GitHub趋势榜。

学习目录

这份学习资料分为机器学习、深度学习和NLP三个部分。

机器学习有16节:

深度学习有8节:

NLP有8节:

都是由浅入深,干货十足。

事不宜迟,一起来看看具体该如何食用这份学习大餐吧。

以机器学习的第一节线性回归为例。

在每一节的一开始都有该节的内容目录,详尽列举了这一节中都有哪些知识点,新手可以按部就班地学习,而倘若你只是想在面试开始前再巩固一下知识点,就可以哪里不熟点哪里了。

基础到什么是线性、非线性:

进一步到损失函数如何计算,过拟合、欠拟合如何解决:

再到应用场景:


没有多余的废话,尽是知识要点。拿着这样一份重点笔记有针对性地学习、复习,岂不爽哉?

光看理论记不住?放心,每一节的文末都有配套的课后习题,边学边练,事半功倍。

课后习题不仅包括题目、数据和代码实现,项目作者还结合自身的经验,把整个解题的思路完整呈现了出来,可以参考学习。

比如机器学习入门中的经典题房价预测。

题目是:

从给定的房屋基本信息以及房屋销售信息等,建立一个回归模型预测房屋的销售价格。

测试数据主要包括3000条记录,13个字段,跟训练数据不同的是测试数据并不包括房屋销售价格,学员需要通过由训练数据所建立的模型以及所给的测试数据,得出测试数据相应的房屋销售价格预测。

脑子一团浆糊不知道从何着手?

可以参考一下作者的思路:


1、选择合适的模型,比如这里,选择多元线性回归模型。


2、对缺失的值进行补齐操作,可以使用均值的方式补齐数据,使得准确度更高。

3、数据的取值一般跟属性有关,为了提高预测的准确度,需统一数据维度进行计算,方法有特征缩放和归一法等。

#读取数据
housing = pd.read_csv('kc_train.csv')
target=pd.read_csv('kc_train2.csv') #销售价格
t=pd.read_csv('kc_test.csv') #测试数据
#数据预处理
housing.info() #查看是否有缺失值
#特征缩放
from sklearn.preprocessing import MinMaxScaler
minmax_scaler=MinMaxScaler()
minmax_scaler.fit(housing) #进行内部拟合,内部参数会发生变化
scaler_housing=minmax_scaler.transform(housing)
scaler_housing=pd.DataFrame(scaler_housing,columns=housing.columns)

4、调用模型库进行训练。

#选择基于梯度下降的线性回归模型
from sklearn.linear_model import LinearRegression
LR_reg=LinearRegression()
#进行拟合
LR_reg.fit(scaler_housing,target)
#使用均方误差用于评价模型好坏
from sklearn.metrics import mean_squared_error
preds=LR_reg.predict(scaler_housing) #输入数据进行预测得到结果
mse=mean_squared_error(preds,target) #使用均方误差来评价模型好坏,可以输出mse进行查看评价值
#绘图进行比较
plot.figure(figsize=(10,7)) #画布大小
num=100
x=np.arange(1,num+1) #取100个点进行比较
plot.plot(x,target[:num],label='target') #目标取值
plot.plot(x,preds[:num],label='preds') #预测取值
plot.legend(loc='upper right') #线条显示位置
plot.show()

5、使用测试数据进行目标函数预测输出,观察结果是否符合预期。或者通过画出对比函数进行结果线条对比。

当然,最后都会附上参考答案。

NLP部分也是一样的节奏,比如全局向量词嵌入(GloVe)。

先说明概念:

GloVe的全称叫Global Vectors for Word Representation,它是一个基于全局词频统计(count-based & overall statistics)的词表征(word representation)工具,它可以把一个单词表达成一个由实数组成的向量,这些向量捕捉到了单词之间一些语义特性,比如相似性(similarity)、类比性(analogy)等。我们通过对向量的运算,比如欧几里得距离或者cosine相似度,可以计算出两个单词之间的语义相似性。

再详述实现步骤:

1、构建共现矩阵。

2、词向量和共现矩阵的近似关系。

3、构造损失函数。

4、训练GloVe模型。

还分析了一番GloVe与LSA(Latent Semantic Analysis,潜在语义分析)、Word2Vec(词嵌入)的比较。

LSA(Latent Semantic Analysis)是一种比较早的count-based的词向量表征工具,它也是基于co-occurance matrix的,只不过采用了基于奇异值分解(SVD)的矩阵分解技术对大矩阵进行降维,而我们知道SVD的复杂度是很高的,所以它的计算代价比较大。还有一点是它对所有单词的统计权重都是一致的。而这些缺点在GloVe中被一一克服了。

而word2vec最大的缺点则是没有充分利用所有的语料,所以GloVe其实是把两者的优点结合了起来。从这篇论文给出的实验结果来看,GloVe的性能是远超LSA和word2vec的,但网上也有人说GloVe和word2vec实际表现其实差不多。

最后,还是附上代码实现。


One More Thing

面向面试,重点明确,这份资源实在火。连外国友人都来求英文版了。



虽然有部分章节还在施工中,还是很值得Mark一下啊~

传送门:

https://github.com/NLP-LOVE/ML-NLP

— 完 —

诚挚招聘

量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。

量子位 QbitAI · 头条号签约作者

?'?' ? 追踪AI技术和产品新动态


相关推荐

为何越来越多的编程语言使用JSON(为什么编程)

JSON是JavascriptObjectNotation的缩写,意思是Javascript对象表示法,是一种易于人类阅读和对编程友好的文本数据传递方法,是JavaScript语言规范定义的一个子...

何时在数据库中使用 JSON(数据库用json格式存储)

在本文中,您将了解何时应考虑将JSON数据类型添加到表中以及何时应避免使用它们。每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?...

MySQL 从零开始:05 数据类型(mysql数据类型有哪些,并举例)

前面的讲解中已经接触到了表的创建,表的创建是对字段的声明,比如:上述语句声明了字段的名称、类型、所占空间、默认值和是否可以为空等信息。其中的int、varchar、char和decimal都...

JSON对象花样进阶(json格式对象)

一、引言在现代Web开发中,JSON(JavaScriptObjectNotation)已经成为数据交换的标准格式。无论是从前端向后端发送数据,还是从后端接收数据,JSON都是不可或缺的一部分。...

深入理解 JSON 和 Form-data(json和formdata提交区别)

在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:...

JSON 语法(json 语法 priority)

JSON语法是JavaScript语法的子集。JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JS...

JSON语法详解(json的语法规则)

JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组注意:json的key是字符串,且必须是双引号,不能是单引号...

MySQL JSON数据类型操作(mysql的json)

概述mysql自5.7.8版本开始,就支持了json结构的数据存储和查询,这表明了mysql也在不断的学习和增加nosql数据库的有点。但mysql毕竟是关系型数据库,在处理json这种非结构化的数据...

JSON的数据模式(json数据格式示例)

像XML模式一样,JSON数据格式也有Schema,这是一个基于JSON格式的规范。JSON模式也以JSON格式编写。它用于验证JSON数据。JSON模式示例以下代码显示了基本的JSON模式。{"...

前端学习——JSON格式详解(后端json格式)

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLa...

什么是 JSON:详解 JSON 及其优势(什么叫json)

现在程序员还有谁不知道JSON吗?无论对于前端还是后端,JSON都是一种常见的数据格式。那么JSON到底是什么呢?JSON的定义...

PostgreSQL JSON 类型:处理结构化数据

PostgreSQL提供JSON类型,以存储结构化数据。JSON是一种开放的数据格式,可用于存储各种类型的值。什么是JSON类型?JSON类型表示JSON(JavaScriptO...

JavaScript:JSON、三种包装类(javascript 包)

JOSN:我们希望可以将一个对象在不同的语言中进行传递,以达到通信的目的,最佳方式就是将一个对象转换为字符串的形式JSON(JavaScriptObjectNotation)-JS的对象表示法...

Python数据分析 只要1分钟 教你玩转JSON 全程干货

Json简介:Json,全名JavaScriptObjectNotation,JSON(JavaScriptObjectNotation(记号、标记))是一种轻量级的数据交换格式。它基于J...

比较一下JSON与XML两种数据格式?(json和xml哪个好)

JSON(JavaScriptObjectNotation)和XML(eXtensibleMarkupLanguage)是在日常开发中比较常用的两种数据格式,它们主要的作用就是用来进行数据的传...

取消回复欢迎 发表评论:

请填写验证码