Python自然语言处理实战(7):文本向量化

【NLP笔记】文本向量化 在自然语言处理中,文本向量化(Text Embedding)是很重要的一环,是将文本数据转换成向量表示,包括词、句子、文档级别的文本,深度学习向量表征就是通过算法将数据转换成计算机可处理的数字化形式。 阅读详情

7.1 文本向量化概述

    文本表示是自然语言处理中的基础工作,文本表示的好坏直接影响到整个自然语言处理系统的性能。文本向量化是文本表示的一种重要方式。顾名思义,文本向量化就是将文本表示成一系列能够表达文本语义的向量。无论是中文还是英文,词语都是表达文本处理的最基本单元。当前阶段,对文本向量化大部分的研究都是通过词向量化实现的。与此同时,也有相当一部分研究者将句子作为文本处理的基本单元,于是产生了doc2vec和str2vec技术。

7.2 向量化算法word2vec

    词袋(Bag of Word)模型是最早的以词语为基本处理单元的文本向量化方法。词向量(word2vec)技术就是为了利用嗯神经网络从大量无标注的文本中提取有用信息而产生的。如何使“词表示”包含语义信息是该领域研究者面临的问题。分布假设(distributional hypothesis)的提出为解决上述问题提供了理论基础。该假设的核心思想是:上下文相似的词,其语义也相似。随后有学者整理了利用上下文表示词义的方法,这类方法就是有名的词空间模型(word space model)。随着神经网络模型的发展,接下来将重点三种常见的生成词向量的神经网络模型。

    21世纪初,有研究者试着使用神经网络求解二元语言模型。随后神经网络语言模型(Neural Network Language Model,NNLM)被正式提出。

    NNLM模型的目标是构建一个语言概率模型,而C&W则是以生成词向量为目标的模型,核心机理是:如果n元短语在语料库中出现过,那么模型会给该短语打高分;如果是未出现在语料库中的短语则会得到较低的评分。

    为了更高效地获取词向量,有研究者在NNLM和C&W模型的基础上保留其核心部分,得到了CBOW(Continuous Bag of Words)模型和Skip-gram模型。

    CBOW模型去掉了隐藏层,这回大幅度提升计算速率,使用上下文各词的词向量的平均值替代NNLM模型各个拼接的词向量。使用一段 文本的中间词作为目标词。Skip-gram模型则从目标词w的上下文中选择一个词,将其词向量组成上下文的表示。

     https://arxiv.org/pdf/1301.3781.pdf

7.3 向量化算法doc2vec/str2vec

     同样word2vec技术也用于计算句子或者其他长文本间的相似度,其一般做法是对文本分词后,提取其关键词,用词向量表示这些关键词,接着对关键词向量求平均或者将其拼接,最后利用词向量计算文本间的相似度。这种方法丢失了文本中的语序信息,而文本的语序包含重要信息。为此,有研究者在word2vec的基础上提出了文本向量化(doc2vec),又称str2vec和para2vec。doc2vec技术存在两种模型--Distributed Memory(DM)和Distributed Bag of Words(DBOW),分别对应word2vec技术里的CBOW和Skip-gram模型。

7.4 案例:将网页文本向量化

    采用维基百科里的中文网页作为训练语料库,下载地址:https://dumps.wikimedia.org/zhwiki/latest/zhwiki-latest-pages-articles.xml.bz2

   维基百科提供的语料是xml格式,需要转移为txt,繁体转为简体。使用Jieba分词工具包对语料中的句子进行分词,最后将处理后的语料存入txt文档中。

# -*- coding: utf-8 -*-
from gensim.corpora import WikiCorpus
import jieba
from langconv import *

def my_function():
    space = ' '
    i = 0
    l = []
    zhwiki_name = './data/zhwiki-latest-pages-articles.xml.bz2'
    f = open('./data/reduce_zhiwiki.txt', 'w')
    wiki = WikiCorpus(zhwiki_name, lemmatize=False, dictionary={})
    for text in wiki.get_texts():
        for temp_sentence in text:
            temp_sentence = Converter('zh-hans').convert(temp_sentence)
            seg_list = list(jieba.cut(temp_sentence))
            for temp_term in seg_list:
                l.append(temp_term)
        f.write(space.join(l) + '\n')
        l = []
        i = i + 1

        if (i %200 == 0):
            print('Saved ' + str(i) + ' articles')
    f.close()

if __name__ == '__main__':
    my_function()

向量化训练

 

文本向量化(Embedding)模型 将文本(单词、句子、段落、文档)通过特定模型映射为稠密向量(Dense Vector),用于表示文本的语义信息。BGE(BAAI General Embedding)系列出自:北京智源研究院(BAAI)版本:bge-small(256维,轻量)bge-base(768维,效果平衡)bge-large(1024维,效果最优)亮点:针对检索任务优化多语言支持(M3版本)文本检索与RAG问答强项适合场景:知识库、问答系统、相似度计算场景推荐模型推荐数据库中文RAG检索。 阅读详情

相关推荐

字符串处理 - DataFrame文本数据的量化 - Python代码

在数据建模的过程中,对于文本数据,比如婚姻情况、性别、居住地等。这给只接受数值型的模型造成了很大的干扰,因此在数据采集到数据建模的过程中,我们需要一个过程,叫量化。 比如这样一个源数据: 收入 身高 长相 体型 是否见面 一般 高 丑 胖 否 高 一般 帅 瘦 是 高 一般 帅 瘦 是 ...

黄饱饱 7336

不同linux禁用nouveau驱动方法

不同Linux系统nouveau驱动禁用方式 Fedora 创建文件/usr/lib/modprobe.d/blacklist-nouveau.conf,添加如下文本: blacklist nouveau options nouveau modeset=0 重新生成initramfs。 $ sudo dracut --force RHEL/CentOS 创建文件/etc/modpr...

weixin_43464294的博客 1884

基于python的自然语言处理NLP详细教程(一)

写在前面 ——本文关于自然语言处理的内容: 1.相关第三包的准备 2.获取语料库及停用词信息 3.分词 4.词频统计 5.去停用词 6.基于TF-IDF理论、词袋模型等的文本向量化处理 7.机器学习、情感分析 8.简单可视化 一、相关第三方包的准备 关于NLP部分的包主要是分词部分的包和可视化部分的包,机器学习部分我主要就用sk-learn了。 分词部分: 将语料库进行分词并去掉停用词,可以使用的...

weixin_43927669的博客 4914

python实战(三)——文本向量化/文本表示

本文详细介绍了文本向量化的含义以及常见文本向量化方法的python实现。

学习与分享人工智能技术 5880

Python与自然语言处理——文本向量化(一)

Python与自然语言处理——文本向量化文本向量化(一)文本向量化概述向量化算法word2vec词袋模型神经网络语言模型(NNLM)C&W模型 文本向量化(一) 文本向量化概述 文本向量化是将文本表示成一系列能够表达文本语义的向量。 主要技术 word2vec doc2vec str2vec 向量化算法word2vec 词袋模型 最早的以词语为基本处理单元的文本向量化方法 方法...

wk19951125的博客 9641

Python 实现自然语言处理(NLP)项目

🏆本文收录于「编程与技术实战」专栏,此专栏涵盖了C/C++编程、人工智能、数据结构、机器学习等技术领域的内容,助你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!

**My Coding Family** 1381

自然语言处理实战项目:从基础到实战

自然语言处理是一个既有挑战又充满机遇的领域。从基础的文本预处理、分词、特征提取到使用复杂的深度学习模型,NLP 技术逐步发展,成为了构建智能系统的重要工具。通过本文的情感分析项目,我们学习了如何使用 Python 和相关库实现 NLP 的基础任务,并通过简单的 Logistic 回归模型进行了情感分类。希望读者通过这一实战项目能对 NLP 领域有更深入的理解,继续探索更多高级应用。

萧鼎的博客 2259

NLP文本向量化:从One-Hot到Embedding的实战指南

文本向量化是自然语言处理(NLP)的基础技术,它将文字转换为计算机可处理的数值向量。核心原理是通过数学表示捕捉词语间的语义关系,常用的方法包括One-Hot编码、Word2Vec和Embedding层。Word2Vec通过上下文预测生成低维稠密向量,能有效表达语义关联;而Embedding层作为深度学习标准组件,支持端到端训练。这些技术在搜索引擎、推荐系统和智能客服等场景广泛应用,其中FastText通过子词分解解决了未登录词问题。实际工程中需要权衡向量维度、训练效率和应用场景,预训练词向量能显著提升小数据

weixin_30644369的博客 366

自然语言处理(NLP)实战项目

自然语言处理(NLP)实战项目是一个结合了理论知识与实践操作的综合性学习过程,旨在通过实际项目来加深学习者对NLP技术的理解和应用能力。以下是一个详细的NLP实战项目指南,涵盖项目选择、技术准备、实施步骤以及未来发展方向。

Chujun123528的博客 2067

172、探索Python文本分析奥秘:NumPy与自然语言处理实践

本文介绍了如何使用Python的NumPy库和自然语言处理技术进行文本分析与处理。文章从基础知识开始,逐步深入到实际应用场景和案例。首先,我们了解了NumPy的基础知识和自然语言处理的概念。接着,我们探讨了NumPy在文本分析与处理中的应用,包括文本向量化、矩阵运算和文本数据预处理等。最后,我们推荐了一些扩展阅读和实践项目,以帮助读者进一步巩固对NumPy和自然语言处理的理解。

silenceallat的博客 719

NLP从零开始------8文本进阶处理之文本向量化

随着计算机计算能力的大幅度提升,机器学习和深度学习都取得了长足的发展。NLP越来越多的通过应用机器学习和深度学习工具解决问题,例如通过深度学习模型从网络新闻报道中分析出关键词汇与舆论主题并构建关系图谱。在这种背景下,文本向量化成为NLP一个非常重要的工具,因为文本向量化可将文本空间映射到一个向量空间,从而使得文本可计算。文本分类和聚类是NLP得得基础内容。这几节主要介绍文本进阶处理的文本向量化得常用方法、文本相速度的计算方法及常见的文本分类和聚类算法。本节先学习文本向量化。

m0_74922316的博客 2240

python文本向量化的方法汇总

文本向量化是自然语言处理中的关键技术,它使得文本数据能够被机器学习算法处理。本文介绍了Python中常见的文本向量化方法,包括词袋模型、词频-逆文档频率、词嵌入和深度学习模型。每种方法都有其独特的优势和适用场景,我们需要根据具体任务的需求选择合适的方法。随着技术的不断发展,文本向量化方法也在不断演进。未来,我们可以期待更加高效、准确的文本向量化方法的出现,为自然语言处理领域的发展提供更强大的支持。

得塔云的博客 1240

从零开始做题:big_zip

内容为:You_know_the_bed_feels_warmer_Sleeping_here_alone_You_know_I_dream_in_color_And_do_the_things_I_want_You_think_you_got_the_best_of_me_Think_you_had_the_last_laugh_Bet_you_think_that_everything_good_is_gone。查看压缩包内容,发现有五字节长度的文件,用crc碰撞攻击破解明文。

weixin_44626085的博客 1240

文本向量化

Table of Contents 概述 word2vec NNLM C&W CBOW and Skip-gram doc2vec/str2vec 概述 文本表示是自然语言处理中的基础工作,文本表示的好坏直接影响到整个自然语言处理系统的性能。文本向量化就是将文本表示成一系列能够表达文本语义的向量,是文本表示的一种重要方式。目前对文本向量化大部分的研究都是通过词向量化实现的,...

明日世界 1万+

KEIL5编译报错L6200E:__stdout重定义问题分析与解决

本文深入分析KEIL5编译报错L6200E中__stdout重定义问题的根源,指出因未完整定义__stderr导致与标准库stdio_streams.o冲突。提供完整重定义标准流、启用MicroLIB库等解决方案,帮助开发者彻底解决Symbol multiply defined错误,提升嵌入式开发效率。

uran的专栏 953

TMC2209的UART模式详解:如何用串口调试助手配置细分和电流(避坑指南)

本文深入解析TMC2209步进电机驱动器的UART模式,详细讲解如何通过串口调试助手配置细分和电流,包括硬件连接、通信协议、关键寄存器设置及高级功能应用。提供实战避坑指南,帮助开发者优化步进电机控制性能,适用于精密仪器、3D打印等场景。

weixin_29166013的博客 539

4-2 文本向量化

Word2Vec是由Google提出的一种词嵌入方法,通过训练神经网络,将词映射到一个连续的向量空间,使相似的词在向量空间中距离较近。TF-IDF(Term Frequency-Inverse Document Frequency)是一种改进的词袋模型,通过考虑词在文档中的频率和在整个语料库中的反向文档频率,衡量词的重要性。FastText是Facebook提出的一种改进的词嵌入方法,不仅考虑词本身,还考虑词的子词信息(如词根、词缀等),因此在处理罕见词和形态变化丰富的语言时表现更好。

weixin_62115482的博客 3449

centos7 python3.12.1 报错 No module named _ssl,坑我几个小时

网上的教程很多,但几乎是无效的,跟着我这教程,可以完美解决。

Amio_的博客 1万+

【头歌实践教学-NLP】第七章:文本向量化

【代码】【头歌实践教学-NLP】第七章:文本向量化

懒的博客 1265

AgentScope 实战训练营-7 种多智能体协作模式详解

本教程基于阿里巴巴开源的AgentScope Java框架,系统讲解多智能体系统的开发方法。涵盖7种核心协作模式:Pipeline流水线、Routing路由、Handoffs智能体交接、Supervisor监督器、Subagent子智能体、Skills技能系统及Workflow工作流。详细阐述ReActAgent、AgentScopeAgent、StateGraph等核心概念,提供完整的配置示例与代码实现,帮助开发者快速掌握基于Spring AI Alibaba的多智能体应用开发。

program哲学 162

196、NPU的编译器开发:教程与示例代码编写

NPU编译器开发实战指南 摘要:本文分享了NPU编译器开发中的核心挑战与实战经验,通过具体代码示例展示了关键实现技术: 指令生成:必须考虑硬件特性(如地址对齐)和芯片配置抽象化 图优化:重点处理常见冗余结构(Reshape合并、BN融合),并注意数值稳定性 算子拆分:采用分块计算策略适配有限SRAM,需特别注意边界条件处理 内存分配:基于张量使用频率的贪心算法优化SRAM使用效率 文中包含多个真实踩坑案例: DMA地址未对齐导致硬件错误 BN融合时的除零风险 tile边界处理不当引起的精度下降 这些经验为开

m0_50546716的博客 71

【NLP第六期文本向量化全解析:从离散到分布式表示的进阶之路】

本文围绕文本向量化核心知识展开,深度解读离散表示(One - Hot、BOW、TF - IDF )与分布式表示(Word Embedding、Word2vec及其CBOW、Skip - Gram模型 )的原理。结合实例与Python代码演示,剖析不同方法的实现逻辑、优缺点及适用场景,清晰呈现文本向量化如何将自然语言转化为机器可理解的向量形式,为自然语言处理(NLP)应用筑牢基础,助力读者掌握文本语义编码的关键技术。

qq_45832651的博客 1334

DirectX function “GetDeviceRemovedReason“ failed with DXGI_ERROR_DEVICE_HUNG (“The GPU will not resp

游戏报错"DXGI_ERROR_DEVICE_HUNG"的解决方案 在使用RTX 40系显卡运行FIFA 23等游戏时,可能出现DirectX报错导致游戏崩溃。这主要由于最新显卡驱动与DirectX 12的兼容性问题。解决方法包括: 降级显卡驱动版本 修改游戏配置文件,将DIRECTX_SELECT设为1 在显卡控制面板中关闭垂直同步、抗锯齿、DLSS 3等功能 调整电源模式为性能优先 这些操作可以有效解决因驱动兼容性导致的游戏崩溃问题。

猿小白的博客 3886

AI自然语言处理NLP原理与Python实战:文本聚类的方法

1.背景介绍 自然语言处理(Natural Language Processing,NLP)是人工智能(AI)领域的一个重要分支,旨在让计算机理解、生成和处理人类语言。在现实生活中,我们可以看到NLP技术在语音识别、机器翻译、情感分析、文本摘要等方面得到广泛应用。 文本聚类(Text Clustering)是NLP领域中的一个重要技术,它可以根据文本内容自动将文本划分为不同的类别。这种技术在文...

AI天才研究院 711

基于机器学习的电视剧类型点击量数据分析研究

1. 背景介绍 1.1 流媒体平台的兴起与电视剧市场的繁荣 近年来,随着互联网技术的飞速发展,流媒体平台如Netflix、Disney+、腾讯视频等迅速崛起,成为人们观看影视内容的主要渠道。电视剧作为流媒体平台上的重要内容类型,其点击量数据蕴含着丰富的用户偏好和市场趋势信息。

AI天才研究院 1049

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

100个Python自然语言处理小技巧,让你速通NLP

在自然语言处理(NLP)领域,Python备受开发者青睐。本文整理了100条用于各类NLP任务的Python单行代码。这些代码虽简洁高效,但在实际开发中,代码可读性与对其意图的理解同样重要,这利于代码维护和团队协作。

m0_75067629的博客 805

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

上一篇: Python自然语言处理实战(5):关键词提取算法
下一篇: Python自然语言处理实战(8):情感分析技术
CopperDong
博客等级 码龄14年 1205粉丝 466原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值