文本的表示方法 -(one-hot representation) – 单词表示方法“one-hot encoding”、句子的表示方法“Boolean、count、Tf-idf” 应用举例

1674-曲同学

发表文章数:87

首页 » LeetCode » 正文

一、文本的表示方法简介

由于文字是人类认知过程中产生的高层认知抽象实体,计算机无法直接识别,我们需要将其转换为 “ 数字向量或矩阵 ” 这种计算机可识别的形式。比如:对单词的意思进行编码以便我们可以计算语义它们之间的相似性(例:比较篮球和足球相似,还是足球和菜谱相似)、文档检索(例:检索与查询(web搜索))、在文本数据上应用机器学习(例:聚类/分类算法对向量进行操作)。

文本的表示方法可以分为 “ 通过向量的方式去表达一个单词 ” 与 “ 通过向量的方式去表达一个句子 ” 。

其中, “ 通过向量的方式去表达一个单词 ” 我们此次介绍 one-hot encoding 的方法,“ 通过向量的方式去表达一个句子 ” 我们此次介绍 Boolean 、 count 、Tf-idf 。

由于 “ 通过向量的方式去表达一个句子 ” 时,使用 count词频统计 的方法存在一个问题,即 “ 并不是该单词出现的次数越多就越重要,也不是出现次数越少就越不重要 ”,Tf-idf 则考虑了单词的重要性,如下:

文本的表示方法 -(one-hot representation) - 单词表示方法“one-hot encoding”、句子的表示方法“Boolean、count、Tf-idf” 应用举例

二、应用举例

2.1、通过向量的方式去表达一个单词

词典为:[我们,又,去,爬山,今天,你们,昨天,跑步]

每个单词的表示 ( 使用one-hot encoding,即 “对应词典” 将“该单词”出现的位置标为1,其它位置全标为0,“向量维度”=“词典维度” ) :

  • 我们:[1,0,0,0,0,0,0,0]
  • 爬山:[0,0,0,1,0,0,0,0]
  • 跑步:[0,0,0,0,0,0,0,1]

2.2、通过向量的方式去表达一个句子(句子已经过分词处理)

词典为:[我们,又,去,爬山,今天,你们,昨天,跑步]

  • 每个句子的表示 ( 使用boolean,即 “对应词典” 将“句子中单词”出现的位置标为1,其它位置全标为0,“向量维度”=“词典维度” ) :
  • 我们 今天 去 爬山:[1,0,1,1,1,0,0,0]
  • 你们 昨天 跑步:[0,0,0,0,0,1,1,1]
  • 你们 又 去 爬山 又 去 跑步:[0,1,1,1,0,1,0,1]
  • 每个句子的表示 ( 使用count,即 “对应词典” 将“句子中单词”出现的位置标为“该单词在句子中出现的次数”,其它位置全标为0,“向量维度”=“词典维度” ) :
  • 我们 今天 去 爬山:[1,0,1,1,1,0,0,0]
  • 你们 昨天 跑步:[0,0,0,0,0,1,1,1]
  • 你们 又 去 爬山 又 去 跑步:[0,2,2,1,0,1,0,1]
  • 每个句子的表示 ( 使用Tf-idf,即 “对应词典” 将“句子中单词”出现的位置标为“Tfidf(w)值”,其它位置全标为0,“向量维度”=“词典维度”。我们假设以下每一个句子为一个单独的文档 ) :
  • 我们 今天 去 爬山:[1log(3),0,1log(3/2),1log(3/2),1log(3),0,0,0]
  • 你们 昨天 跑步:[0,0,0,0,0,1log(3/2),1log(3),1log(3/2)]
  • 你们 又 去 爬山 又 去 跑步:[0,2log(3),2log(3/2),1log(3/2),0,1log(3/2),0,1log(3/2)]
分享到:
赞(0) 打赏

评论 抢沙发

评论前必须登录!

  注册



长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Vieu3.3主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录