NLP成长计划(二)

学习记录 - 1 前言:去年水过一次建模比赛,选题是垃圾评论识别。作为一个门外汉,当时提取垃圾评论特征的想法是人工寻找尽可能多的垃圾评论数据,然后提取出现的高频词。然而,提取高频词时又遇到了技(bian)术(cheng)问题,所以最后只好目测取了一些词汇作为垃圾评论的特征词。 于是这次接触到smartbi,先试一下它的文本挖掘功能。 阅读详情

 

Setup

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

在本讲座中,我们将使用 Gensim和NLTK,这两个广泛使用的Python自然语言处理库。

 

 

如果我们想要能够对文本进行分类,我们需要能够根据文章、段落、句子和文本的其他主体所包含的信息以及它们所表示的内容来生成它们的特征。有很多方法可以做到这一点,我们将采用3种方法。

Term-Document

Bag-of-Words

从文本中提取特征的一种最简单的方法是只计算一个单词在正文中出现的次数。在这个模型中,单词的顺序并不重要,只考虑每个文档中每个唯一术语的出现次数。

清除文本数据

删除停顿和标点符号,小写

  • 有时在将文件分解成令牌单位时放弃停用词是有用的。停用词是语料库中经常出现的术语,它们对手头的任务几乎没有任何信息价值。常用的停用词包括单词、单词、单词和单词。
  • 标点符号非常相似;虽然它们可以提供语言环境,但有时标点符号太常见,无法提供任何价值。

这些都是停顿或标点符号!

还好,有一种简单的方法来移除它们:nltk和内置的字符串模块有单独的停顿词和标点符号列表

 

Stemming and Lemmatizing

  • 我们也可以发现很多词有相似的意思,但只有它们的词性形式等不同。有时在索引之前将同一个单词的不同形式归一化给单个根标记是有意义的。有两种方法可以做到这一点:

    • Stemming: 启发式方法,切去不同形式单词的结尾,试图返回即使有各种变体也保持相同的词根语素。

      • 比如:
        • I saw that movie and it was terrible →→ I saw that movi and it wa terribl
        • informative informational inform informing →→ inform inform inform inform
    • Lemmatizing: 返回派生的范式或单词的字典形式,称为 lemma

      • 比如:
        • I saw that movie and it was terrible →→ I see that movie and it be terrible
        • am are is be →→ be be be be 

             

请注意,当我们使用这个模型来特征化文本:

  • 每个特征向量的长度将是语料库中词汇量的大小。
  • 因此,正文的每一个都有很多0。

 

TF-IDF

Term Frequency: Number of occurrences of a word in a document(文档中单词的出现次数)
Inverse Document Frequency: Number of documents that contain a certain word scaled by a weight(包含按权重缩放的某个词的文档数)
Term Frequency - Inverse Document Frequency: (ww这个词在TT这个文档中出现的次数) * loglog(语料库中的文档数/包含按权重缩放的ww这个词的文档数)

让我们看看我们之前审查的电影评论的TF IDF分数。

看起来更像是一个我们可以用来进行文本分类的特征向量!

请注意,在TF IDF模型中:

  • 如果一个词频繁地出现在语料库中(比如那些停用词),这会让这些词的得分很低
  • 更罕见的术语通常会有更高的分数。它们往往更具信息性和描述性
  • 在语料库内的少量文档中经常出现的术语将具有最高的分数

              

 

 

 

Term-Context

NLP对象的绝大多数被认为是原子符号: king, queen, book, etc.

在向量空间项中,这个向量有一个1和许多0。
king=[1,0,0,0,0,0,0,0,0]
queen=[0,1,0,0,0,0,0,0,0]
book=[0,0,1,0,0,0,0,0,0]

这被称为"one-hot"表示法。在模型中表示类别是一种常用的方法。然而,它非常稀疏(正如我们从BOW模型中看到的),每行主要是0。

你可以通过它相邻的词来代表一个词,这样就能获得更多的信息。我们可以使用小的上下文来代替整个文档。

  • 段落
  • 句子
  • 一个窗口大小的连续序列

这样,在上下文单词计数上定义单词(假设在相似上下文中出现的两个词本身是相似的)

但是基于计数的模型有缺点:

  • 向量大小变大,等于词汇量大小
    • 稀疏
    • 带来维度灾难
    • 计算代价很高

 

Word2Vec

Word2Vec是一个无监督神经网络模型,它最大化上下文邻居之间的相似性,同时最小化不可见上下文的相似性。通过滑动窗口对模型在语料库上进行训练,随机生成初始向量并收敛。在训练过程开始时设置目标向量的大小,因此向量是密集的,不需要降维技术。

Continuous Bag of Words

                                                        

训练目标是对于给出上下文词wc1,wc2,...wcjwc1,wc2,...wcj最大化观察到正确的目标词wt的概率。

                                                                  

预测向量被设置为所有上下文字向量的平均值。

Skip-gram

                                                     

训练目标是对于给出目标词wt最大化观察到正确的上下文词wc1,wc2,...wcjwc1,wc2,...wcj的概率。

                                                                         

在这种情况下,预测向量是目标词向量。

 

比如

现在让我们试着训练我们自己的单词嵌入,看看我们能用它们做什么。

Word2Vec

  • size: 字嵌入模型的维数
  • window: 在每个方向观察的上下文词汇的数目
  • min_count: 模型中包含的词的最小频率
  • sg (Skip-Gram): '0' 代表 CBOW 模型; '1' i表示 Skip-Gram
  • alpha: 学习率(初始值);防止模型过校正,使收敛更精确。
  • iterations: 通过数据集的次数
  • batch_words: 在每次通过时从数据中取样的单词数

                                                              

单词向量是空间中的方向,可以对单词之间的关系进行编码。

词汇之间的接近可以通过余弦相似性来计算。

           

 

Doc2Vec

 

Doc2Vec, word2vec最强大的扩展

Doc2vec (又名 paragraph2vec 或者 sentence embeddings) 将word2vec算法从词向量扩张到更大的文本, 比如句子、段落或者整个文件

                                               

每个段落都映射到一个唯一的向量,用矩阵D中的列来表示,每个单词也映射到一个唯一的向量,用矩阵W中的列来表示。段落向量和字向量被平均或级联以预测上下文中的下一个单词。

每个附加上下文都不是固定长度(因为它被矢量化并投影到同一空间)。

额外的参数,但更新是稀疏的,因此仍然有效。

 

Distrubted Memory (DM)分散内存

亮点:

  • 为每个DOC分配和随机初始化段落向量
  • 使用上下文词和段落向量预测下一个单词
  • 在DOC上滑动上下文窗口,但保持段落向量固定(因此:分散内存)
  • 通过SGD和反向支柱更新权重

Distrubted Bag of Words (DBOW)

亮点:

  • 只使用段落向量(无词向量)
  • 在段落中取一个单词窗口,随机抽取哪些段落用段落向量预测
  • 更简单,更有效记忆

 

让我们尝试用Gensim建立自己的DOC2VEC模型

Doc2Vec参数

  • size: 嵌入模型的维数
  • window: 在文档中的每个方向上观察的上下文字的数目
  • min_count: 包含在模型中的单词的最小频率
  • dm (distributed memory):“0”表示dBuy模型;“1”表示DM
  • alpha: Learning rate (initial); 学习速率(初始);防止模型过度校正,使收敛更精细
  • iter: 通过语料库的迭代次数

基于AI伪原创API的python伪原创工具开发 功能上分别具有4种ai智能算法,在线伪原创,批量伪原创,自定义文本替换等功能,自定义锁词,在线API功能。可以对接采集工具和个人网站使用。智能改写后的文章具有可读性高,原创度高的特点,对各大搜索引擎都十分友好,配合适当SEO优化都能实现网站高收录。... 阅读详情

相关推荐

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...

codes_first的博客 612

NLP-自然语言处理-文本分类-总结-Tensorflow2.0版

自然语言处理(NLP)文本分类总结(基础概念+机器学习模型+深度学习模型)简要代码实现方法TensorFlow版本

weixin_47082769的博客 5842

经过整理的4万多条伪原创同义词库,适合各种伪原创工具

绝对足够4万多条同义词,自己可以下载了复制进WORD查找标点,号替换为|等一会就会显示替换数值,此文件是本人整理过了之前一直自己用的,现在拿出来分享给大家,8分绝对物有所值,下载不后悔,希望可以帮到大家,祝大家网赚愉快!

【Kaggle微课程】Natural Language Processing - 1. Intro to NLP

文章目录1. 使用 spacy 库进行 NLP2. Tokenizing3. 文本处理4. 模式匹配练习:食谱满意度调查2.1 在评论中找到菜单项2.2 对所有的评论匹配2.3 最不受欢迎的菜2.4 菜谱出现的次数 learn from https://www.kaggle.com/learn/natural-language-processing 1. 使用 spacy 库进行 NLP spacy:https://spacy.io/usage spacy 需要指定语言种类,使用spacy.load()加

Michael是个半路程序员 789

python伪原创.py

利用`AI`工具来伪原创文章, 录入原文可以生成新的文章

SEO伪原创工具(近义词替换)

可以把文章里的词替换成它的近义词。 软件自己带有词库

英文文本处理与NLTK库

英文文本处理:有分词,去停用词,提取词干,词性分析,依赖分析,命名实体识别等步骤。目的是为了文本分类建模和文本相似度建模做到更高的准确率。后面会用到深度学习提高准确率。 1.英文文本处理与NLTK库 文本处理解决分类,解决情感分析,解决翻译等等一系列问题。接下来我们来看一下,在英文文本当中, 基本的处理文本的一些操作。 1.1 英文Tokenization(标记化/分词) 不能直接送到模型当中进...

Sirow的博客 2813

cxxunit_0.1.tgz

cxxunit_0.1.tgz cxxunit_0.1.tgzcxxunit_0.1.tgz

迎接2025,立个flag

2025计划书

MXZJSJ1112的博客 348

四足机器人——机械结构

目录 一、四足机器人腿型: 1、并联腿 2、串联腿 3、 腿的布局(关节配置) 二、四足机器人足端设计: 三、四足机器人膝关节驱动: 1、皮带轮驱动: 2、四连杆或者推杆驱动 四、四足机器人机械整体结构设计细节 一、四足机器人腿型: 1、并联腿 优点:受力角度来说,并联腿比串联腿好,并联腿较为灵活。 2、串联腿 优点:运动范围大 3、 腿的布局(关节配置) 为了使机器人具有较好的稳定性,一般会采用比较低的重心。这就导致了机器人腿的髋关节位置需要位于机器人身体的两侧..

m0_58585940的博客 3万+

Android 面试题 Handler篇

1.Handler的实现原理。

ViewHandKownHealth的博客 955

NLP成长计划(三)

Setup 假设您已经完成了(一)和(二)所需的设置。   Train-Validation-Test Split 在开始在新数据集上拟合模型之前,您应该(并且尽量)将初始数据集划分为“训练集train“、“验证集validation”和“测试集test”。训练数据集为我们提供了一个让我们的模型学习的地方。验证数据集为我们提供了一种判断模型相对于其他潜在模型的性能的方法。测试数据集帮我们预...

codes_first的博客 660

QMI8658姿态传感器实战:从校准到自检的完整避坑指南

本文详细解析了QMI8658姿态传感器的校准与自检流程,提供了从硬件环境搭建到高级功能开发的完整避坑指南。通过真实案例揭示电源设计、接口优化、温度补偿等关键细节,帮助开发者提升传感器精度和可靠性,适用于工业级应用场景。

weixin_29184075的博客 456

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

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

jq_98的博客 890

ComfyUI 的 LoRA 训练:素材打标签与调优全攻略

标签是 LoRA 训练的"地基"——地基打不牢,后续调参再精细也难出好效果。记住:标签要"少而精",聚焦独特点,用触发词控效果。下一篇我们将讲解参数设置,让你的优质标签发挥最大价值~

2301_78150483的博客 3099

高通camx hal进程dump日志分析四:Node DumpDebugInfo原理分析

摘要: 本文讲解了高通Camx架构中DumpDebugInfo的原理,重点分析了Node组件的DumpDebugInfo()方法。该方法会输出Node自身调试信息,并调用DumpFenceErrors()接口输出Fence错误信息。具体包括:检查请求队列状态、输出未完成请求的元数据/完成状态/未处理Fence数量等关键信息,以及Fence错误原因(如延迟、未触发、结果失败等)。通过代码注释详细解析了各字段含义,为后续分析Dump异常日志提供理论基础。

787

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

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

OpenCVtuxiang的博客 504

SAP 批次管理

批次管理: 业务场景: 批次常用于:采购、生产、SD等: 1、先进先出,先入库的先出库(如何实现),基于入库时间来自动确定出库策略。 2、追塑:基于批次进行产品质量追溯 例如订单MTO ---> PP ----> MM(批次关联)。SO—>PP工单 --> 预留 --> 发料(基于批次A\B\C)-->产成品入库-->批次入库D--> ...

willieyuan的博客 1万+

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

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

2503_92849275的博客 5439

【考试大纲】中级多媒体应用设计师考试大纲

中级多媒体应用设计师考试大纲

邓邓子的博客 382

【车载以太网】【AVB/TSN】IEEE802.1Qav队列及转发协议

目录 一、概述 二、优先级排队算法 三、基于信用的流量整形算法 一、概述 IEEE 802.1Qav 队列及转发协议(Qav)针对不同数据流选择不同的传输选择算法来保障对时间敏感的 AV 数据流的实时传输。为了避免传统的异步以太网数据流量与 AVB 流量之间对网络资源的竞争,AVB 交换机内使用优先级排队算法和基于信用的流量整形算法实现数据流的调度。 二、优先级排队算法 优先级排队算法主要用于传统以太网数据流(BE, Best Effort)的调度传输,BE 流通过基于优先级...

专注汽车软件开发、AutoSAR、车载以太网、SOA、EE架构。 4688

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

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

weixin_33530135的博客 567

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

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

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

qq_40247584的博客 3835

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

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

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

2401_85373898的博客 1919

老版QQ原生表情gif动态

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

我的NLP学习之路

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

ninghongbo123的博客 419

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

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

sev7777777的博客 369
上一篇: NLP成长计划(一)
下一篇: NLP成长计划(三)
codes_first
博客等级 码龄10年 255粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值