text expressing

文章目录

    • 前言
    • 文本表示
      • 1文本特征概念介绍
      • 2 文本特征选择方法
      • 3 文本表示方法 text expressing
        • 3.1 One Hot(独热)编码
        • 3.2 TF-IDF 模型
        • 3.3 Word2Vec
    • 参考链接:

前言

文本是一种非结构化的数据信息,是不可以直接被计算的。

文本表示的作用就是将这些非结构化的信息转化为计算机可以理解的结构化的信息 ,这样就可以针对文本信息做计算,来完成后面的任务。

在这里插入图片描述

文本表示

1文本特征概念介绍

在向量空间模型中,文本可以选择字、词组、短语、甚至“概念”等多种元素表示。

这些元素用来表征文本的性质,区别文本的属性,因此这些元素可以被称为文本的特征。

在文本数据集上一般含有数万甚至数十万个不同的词组,如此庞大的词组构成的向量规模惊人,计算机运算非常困难。进行特征选择,对文本分类具有重要的意义。

特征选择就是要选择那些最能表征文本含义的词组元素。特征选择不仅可以降低问题的规模,还有助于分类性能的改善。

2 文本特征选择方法

选取不同的特征对文本分类系统的性能有不同程度的影响。

已提出的文本分类特征选择方法比较多,常用的方法有:

文档频率(Document Frequency,DF)、

信息增益(Information Gain,IG)、

校验(CHI)和互信息(Mutual Information,MI)等方法。

3 文本表示方法 text expressing

常见的文本表征的模型有:

1)传统的: one-hot(问题:维度高)、tf-idf(词频统计)

2)基于词向量的: Word2vec、doc2vec、glove、festext(基于特定任务、结构简单)

3)基于语言模型: ELMO、GPT、BERT (基于文本特征的,需要大量数据集)

3.1 One Hot(独热)编码

one-hot在特征提取上属于词袋模型

(1)概念介绍

One-Hot表示是把语料库中的所有文本进行分词,把所有单词(词汇)收集起来,并对单词进行编号,构建一个词汇表(vocabulary),词汇表是一个字典结构,key是单词,value是单词的索引。

如果词汇表有n个单词构成,那么单词的索引从0开始,到n-1结束。

词汇向量有n列,但是只有一列的值为1,把值为1的列的索引带入到词汇表(vocabulary)中,就可以查找到该词向量表示的词汇,也就是说,对于某个单词 term,如果它出现在词汇序列中的位置为 k,那么它的向量表示就是“第 k 位为1,其他位置都为0 ”,这就是One-Hot(独热)名称的由来。

举个例子来说:假设现有分词后的语料库如下

我 爱 学习 学习 爱 我
学习 很 重要
我 努力 学习

把上述语料中的词汇整理出来并进行排序(排序原则另说,可以有很多),假设我们的词汇表排序结果如下:

{“我”:3,“爱”:2,“学习”:4,“很”:1,“重要”:1,“努力”:1}

(2)单词的词向量:

得出如下词向量表示:

“我”:[1,0,0,0,0,0]
“爱”:[0,1,0,0,0,0]

(3)文档向量:
文档向量的表示方法是直接把各词的词向量表示加和,即文档向量中,列的值表示词在文档中出现的次数。
那么原来的三句话的向量表示如下:

[2,2,2,0,0,0]
[0,0,1,1,1,0]
[1,0,1,0,0,1]

One-Hot方法很简单,

优点:

解决了分类器处理离散数据困难的问题
一定程度上起到了扩展特征的作用
缺点:

没有考虑单词之间的相对位置(文本中词的顺序信息也是很重要的);
任意两个词之间都是孤立的(在大多数情况下,词与词是相互影响的);
如果文档中有很多词,词向量会有很多列,但是只有一个列的值是1(它得到的特征是离散稀疏的);

3.2 TF-IDF 模型

这种模型主要是用词汇的统计特征来作为特征集,TF-IDF 由两部分组成:TF(Term frequency,词频),**IDF(Inverse document frequency,逆文档频率)两部分组成,利用 TF 和 IDF 两个参数来表示词语在文本中的重要程度。

TF 称为词频, 用于计算该词描述文档内容的能力; IDF 称为逆文档频率, 用于计算该词区分文档的能力。

TF*IDF 的指导思想建立在这样一条基本假设之上,在一个文本中出现很多次的单词, 在另一个同类文本中出现次数也会很多, 反之亦然

假设要统计一篇文档中的前10个关键词.首先想到的是统计一下文档中每个词出现的频率(TF),词频越高,这个词就越重要。但是统计完你可能会发现你得到的关键词基本都是“的”、“是”、“为”这样没有实际意义的词(停用词),这个问题怎么解决呢?你可能会想到为每个词都加一个权重,像这种”停用词“就加一个很小的权重(甚至是置为0),这个权重就是IDF。公式如下:
在这里插入图片描述

TF应该很容易理解就是计算词频,IDF衡量词的常见程度。为了计算IDF我们需要事先准备一个语料库用来模拟语言的使用环境,如果一个词越是常见,那么式子中分母就越大,逆文档频率就越小越接近于0。这里的分母+1是为了避免分母为0的情况出现。TF-IDF的计算公式如下:

根据公式很容易看出,TF-IDF的值与该词在文章中出现的频率成正比,与该词在整个语料库中出现的频率成反比,因此可以很好的实现提取文章中关键词的目的。

其实,TF-IDF方法是将One-hot中为1的列改成了权值TF-IDF。

3.3 Word2Vec

传统的(基于计数的)文本数据特征工程策略包括了一大类的模型,这些模型通常称为词袋模型:包括词频、TF-IDF(词频逆文档频率)、N-grams等等。

虽然它们是从文本中提取特征的有效方法,但是由于模型本身就是一袋非结构化的单词,我们丢失了额外的信息,比如每个文本文档中围绕邻近单词的语义、结构、序列和上下文。

1、概念
Word2vec 使用的词向量不是我们上述提到的One-hot Representation那种词向量,而是 Distributed representation 的词向量表示方式。

其基本思想是 通过训练将每个词映射成 K 维实数向量(K 一般为模型中的超参数),通过词之间的距离(比如 cosine 相似度、欧氏距离等)来判断它们之间的语义相似度。
word2vector有两种形式——CBOW 和 Skip-gram。
在这里插入图片描述

两种训练加速方法:

负采样
层次softmax。

2、Continuous Bag of Words(CBOW) 连续词袋模型

CBOW模型体系结构试图基于上下文单词(周围单词)预测当前目标单词(中心单词)。

考虑一个简单的句子,“the quick brown fox jumps over the lazy dog”,这可以是(context_window, target_word)对,如果我们考虑一个大小为2的上下文窗口,我们有([quick, fox], brown)、([the, brown], quick)、([the, dog], lazy)等例子。因此,该模型试图基于context_window单词预测target_word。
在这里插入图片描述

我们将在没有任何辅助信息的情况下,从语料库本身来做。可以将CBOW结构建模为一个深度学习分类模型,这样我们就可以将上下文单词作为输入X,并尝试预测目标单词Y。

工作原理实现将集中于以下几个部分:

构建语料库词汇表
建立一个CBOW(上下文,目标)生成器
构建CBOW模型架构
训练模型
获取Word Embeddings

3、Skip-gram 跳字模型

Skip-gram模型体系结构实现与CBOW模型相反的功能。它预测给定目标单词(中心单词)的源上下文单词(周围单词)。

考虑到我们前面简单的句子,“the quick brown fox jumps over the lazy dog”。如果我们使用CBOW模型,就会得到一对(context_window, target_word),其中如果我们考虑一个大小为2的上下文窗口,就会得到([quick, fox], brown), ([the, brown], quick), ([the, dog], lazy),等等。

现在考虑到Skip-gram模型的目标是根据目标单词预测上下文,该模型通常将上下文和目标颠倒过来,并尝试根据目标单词预测每个上下文单词。因此,任务变成了给定目标单词’quick’,预测上下文[the, brown],以此类推。因此,该模型是基于target_word预测context_window单词。

在这里插入图片描述

正如我们在CBOW模型中所讨论的,我们现在需要将这个Skip-gram架构建模为一个深度学习分类模型,这样我们就可以将目标单词作为输入并预测上下文单词。这变得有点复杂,因为我们在上下文中有多个单词。比如句子:“the quick brown fox jumps over the lazy dog”
我们将每个(target, context_words)对分解为多个(target, context)对,这样每个上下文只包含一个单词,从而进一步简化了这个过程。因此,我们前面的数据集被转换成成对的,比如(brown,quick),(brown,fox), (quick, the), (quick, brown)等等。但是,如何监督或训练模型,使其知道什么是上下文相关的,什么不是?

为此,我们对Skip-gram模型输入(X, Y),其中X是我们的输入,Y是我们的标签。我们使用[(target, context), 1]对作为输入正样本,其中target是我们感兴趣的单词,context是发生在目标单词附近的上下文单词,正样本标签1表示这是上下文相关的一对。我们还输入[(target, random), 0]对作为输入负样本,其中target仍然是我们感兴趣的单词,但是random只是从我们的词汇表中随机选择的一个单词,它与我们的目标单词没有上下文关系。因此,负样本标签0表示这是上下文无关的一对。我们这样做是为了让模型能够了解哪些词对与上下文相关,哪些不相关,并为语义相似的词生成类似的嵌入。

实现Skip-gram模型工作将集中于五个部分:

构建语料库词汇表
构建skip-gram[(target, context), relevancy]生成器
构建skip-gram模型结构
训练模型
得到词嵌入

参考链接:

1、https://blog.csdn.net/qq_38293297/article/details/104850025

2、https://zhuanlan.zhihu.com/p/422220941

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/626653.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

powershell的help

打开win10 的powershell窗口,输入help命令,可以得到如下说明: 有了help系统,可以方便地了解关于powershell的详细说明。

文献阅读(速读):Automating Deep Neural Network Model Selection for Edge Inference

目录 论文简介动机:为什么作者想要解决这个问题?贡献:作者在这篇论文中完成了什么工作(创新点)?规划:他们如何完成工作?自己的看法(作者如何得到的创新思路) 论文简介 作者 Bingqian Lu、Jianyi Yang、Lydi…

cesium设置近地天空盒 天空会倾斜

上篇文章讲解了如何设置近地天空盒,效果出来了还是发现天空是斜的 https://blog.csdn.net/m0_63701303/article/details/135618244 效果: 这里需要修改Cesium.skyBox的代码,代码如下直接全部复制组件内调用即可 skybox_nearground.js&…

分布式光伏运维平台在提高光伏电站发电效率解决方案

摘要:伴随着能源危机和环境恶化问题的日益加重,科技工作者进一步加大对新能源的开发和利用。太阳能光伏发电作为新型清洁能源的主力军,在实际生产生活中得到了广泛的应用。然而,光伏发电效率偏低,成为制约光伏发电发展…

机器学习算法实战案例:LSTM实现单变量滚动风电预测

文章目录 1 数据处理1.1 数据集简介1.2 数据集处理 2 模型训练与预测2.1 模型训练2.2 模型滚动预测2.3 结果可视化 答疑&技术交流机器学习算法实战案例系列 1 数据处理 1.1 数据集简介 实验数据集采用数据集5:风电机组运行数据集,包括风速、风向、…

webpack打包可视化分析工具:webpack-bundle-analyzer

在对webpack项目进行优化的时候,可以使用webpack-bundle-analyzer这个可视化插件来快速分析我们包的结构,能快速定位需要优化的地方,对开发者非常友好 下载安装 下载依赖包 npm i webpack-bundle-analyzer 使用 const BundleAnalyzerPlugin require(webpack-bundle-analy…

qt.qpa.plugin: Could not find the Qt platform plugin “windows“ in ““

系统环境:Win10家庭中文版 Qt : 5.12.9 链接了一些64位的第三方库,程序编译完运行后出现 qt.qpa.plugin: Could not find the Qt platform plugin "windows" in "" 弹窗如下: 网上搜了一些都是关于pyQt的&#xff0c…

【实战记录】 vagrant+virtualbox+docker 轻松用虚拟机集成组件

用途 最近要学一大堆组件,不想直接安装本机上,然后gpt说:你可以用vagrant起个虚拟机(然后docker拉取各种组件的镜像);或者k8s 实战的整体思路 首先安装virtualbox和vagrant。然后cmd依次键入三条命令 安…

旧衣回收小程序搭建:降低企业成本,提高回收效率!

在人们环保意识提升下,旧衣回收行业受到了大众的关注,同时旧衣回收具有门槛低、利润大的优势。在我国,回收行业不仅帮助普通人就业获利,还对环保做出了较大贡献。因此,旧衣回收行业成为了当下的热门商业模式&#xff0…

时尚女童冲锋衣外套

上身时尚又好看的外套 日常穿着或者出行游玩 应对早晚温差,兼具时尚和功能 保暖也可以很轻盈 率性闲适的洒脱范 版型百搭好穿 下摆有橡筋收紧更加保暖了 简直就是一件实用与时尚并存的时尚单品

Swift爬虫程序采集招聘信息代码示例

今天我将用Swift写一个爬虫程序,主要是爬取招聘信息网站得。我们知道Selenops是一个简单的Swift Web爬虫工具,可以用于爬取网页内容。您可以使用Selenops的三种方式之一来进行爬虫操作:Swift游乐场、Swift脚本或马拉松脚本SwiftUI是一种用于构…

100个实战项目——在树莓派4B+Ubuntu20.04桌面版配置下运行智能小车(一)

主机SSH远程链接从机 查看python版本 python 我的是python3.8 所以我需要安装pip3 sudo apt install python3-pip 接着安装程序需要的引脚库 sudo pip3 install RPi.GPIO 注意必须要有sudo,因为我是远程遥控的树莓派,没有权限运行程序&#xff0…

如何进行时间管理 待办事项软件帮你成为时间管理大师

在这个快节奏的现代社会,时间显得格外宝贵。每个人都在与时间赛跑,试图在有限的时间里完成更多的事情。我曾经也深陷于这样的困境,每天都被无数的杂事裹挟着,仿佛永远都抓不住时间的尾巴。 那时,我常常感到焦虑和疲惫…

操作系统详解(5.2)——信号(Signal)的题目进阶

系列文章: 操作系统详解(1)——操作系统的作用 操作系统详解(2)——异常处理(Exception) 操作系统详解(3)——进程、并发和并行 操作系统详解(4)——进程控制(fork, waitpid, sleep, execve) 操作系统详解(5)——信号(Signal) 操作系统详解(5.1)——信号(Signal)的相…

MySQL进阶45讲【1】基础架构:一条SQL查询语句是如何执行的?

1 前言 我们经常说,看一个事儿千万不要直接陷入细节里,应该先鸟瞰其全貌,这样能够帮助你从高维度理解问题。同样,对于MySQL的学习也是这样。平时我们使用数据库,看到的通常都是一个整体。比如,有个最简单的…

锐意进取,蓬勃发展|爱基百客2023全景图

岁序更迭,2023年已悄然离去。对我们来说,这是充满挑战与机遇的一年。爱基百客作为一家专注于测序服务的公司,我们在这一年里经历了许多挑战,也取得了令人鼓舞的成绩。前面我们盘点了表观产品和单细胞产品,今天再邀您回…

AI工具推荐:开源TTS(文本生成语音)模型集合

XTTS TTS是一个语音生成模型,可以通过一个简短的6秒音频片段将声音克隆到不同的语言。它不需要大量的训练数据,也不需要耗费大量时间。TTS支持17种语言,可以进行声音克隆、情感和风格转移、跨语言声音克隆以及多语言语音生成等功能。XTTS-v2…

徐州数字孪生元宇宙赋能工业智能制造,助力传统制造业数字化转型

徐州数字孪生元宇宙赋能工业智能制造,助力传统制造业数字化转型。在徐州市制造业企业数字化转型的过程中,数字孪生技术的应用已经取得了显著成效。一方面,企业的生产效率得到了显著提高,产品质量也得到了有效保障。另一方面&#…

LLM:Scaling Laws for Neural Language Models (中)

核心结论 1:LLM模型的性能主要与计算量C,模型参数量N和数据大小D三者相关,而与模型的具体结构 (层数/深度/宽度) 基本无关。三者满足: C ≈ 6ND 2. 为了提升模型性能,模型参数量N和数据大小D需要同步放大,但模型和数…

基于SpringBoot+Redis的前后端分离外卖项目-苍穹外卖微信小程序端(十二)

购物车相关 1.添加购物车1.1 需求分析和设计1.1.1 产品原型1.1.2 接口设计1.1.3 表设计 1.2 代码开发1.2.1 DTO设计1.2.2 Controller层1.2.3 Service层接口1.2.4 Service层实现类1.2.5 Mapper层 2. 查看购物车2.1 需求分析和设计2.1.1 产品原型2.1.2 接口设计 2.2 代码开发2.2.…