为了账号安全,请及时绑定邮箱和手机立即绑定

将文本文件中的单词列表转换为单词向量

将文本文件中的单词列表转换为单词向量

牛魔王的故事 2021-12-16 14:50:30
我有一个包含数百万行的文本文件,我想将其转换为词向量,稍后我可以将这些向量与搜索关键字进行比较,并查看哪些文本更接近于搜索关键字。我的困境是我看到的 Word2vec 的所有训练文件都是段落的形式,因此每个单词在该文件中都有一些上下文含义。现在我这里的文件是独立的,每行包含不同的关键字。我的问题是是否可以使用此文本文件创建词嵌入,如果不能,那么在这百万个文本中搜索匹配搜索关键字的最佳方法是什么**我的文件结构:**WalmartHome DepotHome DepotSearsWalmartSams ClubGreenMileWalgreen预期的search Text : 'WAL'我的文件的结果:WALGREENWALMARTWALMART
查看完整描述

2 回答

?
神不在的星期二

TA贡献1963条经验 获得超6个赞

嵌入

让我们退后一步,了解什么是 word2vec。Word2vec(如 Glove、FastText 等)是一种将单词表示为向量的方法。ML 模型不理解单词,它们只理解数字,因此当我们处理单词时,我们希望将它们转换为数字(向量)。One-hot encoding 是一种将单词编码为向量的幼稚方式。但是对于大词汇量,one-hot 编码变得太长了。单热编码词之间也没有语义关系。

DL 带来了词的分布式表示(称为词嵌入)。这些词嵌入的一个重要特性是相关词之间的向量距离与不相关词之间的距离相比很小。IEdistance(apple,orange) < distance(apple,cat)

那么这些嵌入模型是如何训练的呢?嵌入模型是在(非常)庞大的文本语料库上训练的。当您拥有大量文本语料库时,模型将了解到在同一上下文中(多次)使用了苹果是橙色的。它将了解到苹果和橙子是相关的。所以要训练一个好的嵌入模型,你需要大量的文本语料库(不是独立词,因为独立词没有上下文)。

然而,很少有人从头开始训练词嵌入模型,因为好的嵌入模型在开源中可用。但是,如果您的文本是特定领域的(比如医学),那么您可以对公开可用的词嵌入进行迁移学习。

词汇量不足 (OOV) 词

像 word2vec 和 Glove 这样的词嵌入不能返回 OOV 词的嵌入。然而,像 FastText 这样的嵌入(感谢@gojom 指出)通过将 OOV 词分解成 n-gram 字符并通过总结构成词的子词向量来构建向量来处理 OOV 词。

问题

来到你的问题,

案例 1:假设用户输入了一个单词WAL,首先它不是一个有效的英语单词,因此它不会出现在词汇表中,并且很难想到它的含义完整向量。像 FastText 这样的嵌入通过将它们分解成 n-gram 来处理它们。这种方法为拼错的单词或俚语提供了良好的嵌入。

案例 2:假设用户输入一个单词WALL,如果您打算类似地使用向量来查找最接近的单词,它将永远不会接近,Walmart因为它们在语义上是不相关的。它会更接近于像window, paint, door.

结论

如果您搜索的是语义相似的词,那么使用向量嵌入的解决方案会很好。另一方面,如果您的搜索基于词典,那么向量嵌入将无济于事。


查看完整回答
反对 回复 2021-12-16
?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

如果您想walmart从像 一样的片段中查找wal,则更有可能使用以下内容:

  • 通过所有条目的子字符串或前缀搜索;或者

  • 字符 n-gram 的反向索引;或者

  • 针对所有条目或可能候选的子集计算的某种编辑距离

也就是说,从您的示例所需的输出来看,这并不是词向量的真正工作,即使某些算法(如 FastText)能够根据词片段与训练过的词的重叠提供粗略的向量。

如果实际上您想找到类似的商店,理论上词向量可能很有用。但是给出您的示例输入的问题是,这种词向量算法需要上下文中使用的标记示例,来自在类似自然语言的关系中共同出现的标记序列。并且您需要大量具有不同上下文示例的数据,以捕捉相互关系的微妙层次。

虽然您现有的单列短实体名称(商店)无法提供,但如果您有更丰富的数据源,也许您有其他适用的东西。一些想法可能是:

  • 单个客户访问过的商店列表

  • 携带相同产品/UPC 的商店列表

  • 来自更大语料库的文本(例如网络爬行文本,或者维基百科),其中每个商店名称都有足够的上下文用法。(您只需丢弃从此类训练中创建的所有其他单词 - 但您感兴趣的令牌的向量可能仍然在您的领域中使用。)


查看完整回答
反对 回复 2021-12-16
  • 2 回答
  • 0 关注
  • 397 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号