word2vec - KeyError:“单词 X 不在词汇表中”

2023-12-29

使用Word2Vec模块的实现gensim为了为我在纯文本文件中拥有的句子构建单词嵌入。尽管这个词happy在词汇表中定义,得到错误KeyError: "word 'happy' not in vocabulary"。尝试将给出的答案应用到类似的问题 https://stackoverflow.com/questions/41133844/keyerror-word-word-not-in-vocabulary-in-word2vec,但没有成功。因此,发布了我自己的问题。

这是代码:

try:
    data = []
    with open(TXT_PATH, 'r', encoding='utf-8') as txt_file:
        for line in txt_file:
            for part in line.split(' '):
                data.append(part.strip())

    # When I debug, both of the words 'happy' and 'birthday' exist in the variable 'data'
    word2vec = Word2Vec(data, min_count=5, size=10000, window=5, workers=4)

    # Print result
    word_1 = 'happy'
    word_2 = 'birthday'
    print(f'Similarity between {word_1} and {word_2} thru word2vec: {word2vec.similarity(word_1, word_2)}')
except Exception as err:
    print(f'An error happened! Detail: {str(err)}')

当你收到这样的“不在词汇表中”错误时Word2Vec,你可以相信它:'happy'确实不在模型中。

即使您的目视检查显示'happy'在您的文件中,它可能不会出现在模型中的一些原因包括:

  • 至少它不会发生min_count=5 times

  • the data格式不正确Word2Vec,所以它没有看到您期望它看到的单词。

看看如何data由您的代码准备,它看起来像文件中所有单词的巨大列表。Word2Vec相反,需要一个序列,其中每个项目都有该文本的单词列表。所以:不是一个单词列表,而是一个其中每个项目都是单词列表的列表。

如果您已提供...

[
  'happy',
  'birthday',
]

...而不是预期的...

[
  ['happy', 'birthday',],
]

...那些单字字符串将被视为字符列表,所以Word2Vec会认为你想学习一堆单字符单词的词向量。您可以通过查看词汇量是否看起来很小来检查这是否影响了您的模型(len(model.wv))或者如果学习单词的样本只是单字符单词('model.wv.index2entity[:10]`)。

如果您以正确的格式提供一个单词,至少min_count有时,作为训练数据的一部分,它最终会在模型中得到一个向量。

(分别地:size=10000是超出通常 100-400 范围的选择方式。我从未见过一个项目使用如此高维的词向量,并且只有在拥有大量词汇和训练集的情况下,这才在理论上是合理的。词汇量/数据较小的超大向量可能会产生无用的过度拟合结果。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

word2vec - KeyError:“单词 X 不在词汇表中” 的相关文章

随机推荐

  • 我可以在不使用麦克风的情况下录制

    我有一个
  • 使用 C++ 和 Visual Studio 2008 设置 OpenGL

    嘿 我想知道是否有关于如何设置这个的好的教程 我已经在 gamedev net 上看过 NeHe 教程 但其中一些似乎已经过时了 有什么线索吗 thanks NeHe http nehe gamedev net可能有点旧 但绝对不会过时 与
  • 在 Django 管理中禁用选择列表,仅用于编辑

    我想在编辑对象时禁用某些字段 我已经设法对文本字段执行此操作 但对于下拉列表 选择列表 来说这是不可能的 我正在表单的构造函数中执行此操作 class OrderModelForm forms ModelForm def init self
  • 带圆角和背景颜色的 NSButton

    我想要一个简单的按钮 带有圆角的按钮 并为其添加背景 我尝试过两件事 1 使用圆形按钮图像 这工作得很好 直到我需要缩放按钮 这导致圆形部分看起来很难看 2 扩展按钮并为其添加颜色 但是当我单击按钮时遇到麻烦 我希望 推动 状态与 常规 状
  • 此 VB6 操作的等效 C# 语句会产生问题

    我在 VB 中有这样的代码行 Dim Sqrt As Double Sqrt Radius 2 CenterX X 2 上面语句中的参数传递的值如下 X 7 3725025845036161 Double CenterX 0 0 Doubl
  • `useTheme` 必须在 `NativeBaseConfigProvider` 中使用

    在我的项目中 我遇到了上述错误 谁能告诉我如何解决这个错误 我遇到的错误是 Error useTheme必须在以下时间内使用NativeBaseConfigProvider 该错误位于 in Container in ProductCont
  • android中的PeerConnection实例总是为空?

    我必须在 android 应用程序中实现 WebRTC 因为我正在使用libjingle库 版本 11139 在此我总是得到pc PeerConnection class instance 始终为空 我已经检查过的值 factory Pee
  • 如何从 C# 中的字符串中删除 \r\n?

    我正在尝试找出一种简单的方法从字符串中删除 r n 例子 文本 这个 is a string r n这个 is a string r n I tried text Replace r n and text Replace r n strin
  • Postgres表列名限制?

    我在 psql 中这样做了 CREATE TABLE IF NOT EXISTS apiss skey TEXT time INTEGER user TEXT ip TEXT I get ERROR syntax error at or n
  • 无法找到 Spring NamespaceHandler 错误

    我已经遇到这个错误近一周了 我正准备屈服 我已经使用 Maven2 来制作大 jar 文件 当我使用以下命令运行 jar 文件时 java jar someJar jar 我收到此错误 ERROR 27 55 13 10 55 Launch
  • 如何将 numpy 数组从某一行开始写入 .txt 文件?

    我需要将 3 个 numpy 数组写入 txt 文件 文件头看起来像这样 Filexy time operation1 operation2 numpy 数组如下所示 time np array 0 60 120 180 operation
  • 拦截 SimpleCursorAdapter 操作

    我正在编写一个应用程序 它使用 SimpleCursorAdapter 来显示 SQLite 数据库中的项目列表 该应用程序是一个列表应用程序 它允许用户创建项目列表 数据库中有一个字段用于跟踪用户是否希望列表项的文本被划掉 基本上 我想拦
  • 对 Visual Studio 2012 VSIX 扩展进行数字签名

    我正在尝试签署一份Visual Studio 2012 extension被封装为VSIX file 我已按照以下说明进行操作http www jeff wilcox name 2010 03 vsixcodesigning http ww
  • 将 Google Play 服务添加到 Eclipse 项目

    我已经红了好几个了posts https stackoverflow com questions 14230808 google map android api v2 crashed和文章 但它对我不起作用 我无法在我的项目中添加 使用 G
  • 如何编辑现有的 VS 代码片段

    有没有办法删除或编辑 Visual Studio CODE 中的一些默认代码片段 例如 当我输入 req TAB 我需要require not requestAnimationFrame 扩展片段可以在下面的每个片段目录中找到 如果扩展中有
  • 如何使用 angularjs 检测浏览器?

    我是 AngularJS 的新手 如何在 angularjs 中检测 userAgent 可以在控制器中使用它吗 尝试了类似下面的东西 但没有运气 var browserVersion int msie d exec lowercase n
  • 在 Actionscript 3 项目中显示 HTML

    Folks 我出于 SEO 目的从 Drupal 后端提取所有 Flash 纯 AS3 项目 而不是 Flash CS3 内容 这非常有效 只是 TextField 对象中内置的 HTML 渲染还有很多不足之处 谁能推荐一些允许我显示 HT
  • 以编程方式更改 Eclipse 中的背景颜色

    我有一个关于 eclipse 插件开发的问题 有什么办法吗 通过它我可以以编程方式更改 Eclipse 中的背景颜色 我可以通过调用更改文本前景色 ITextViewer 中的 setTextColor 颜色 偏移量 长度 controlR
  • 按 Ctrl+C 后,如何让 Python 在程序停止之前完成作业?

    我有 4 个这样的工作的无限循环 list1 while 1 try job1 a B job2 c a accd job3 d len c job4 list1 append d except KeyboardInterrupt save
  • word2vec - KeyError:“单词 X 不在词汇表中”

    使用Word2Vec模块的实现gensim为了为我在纯文本文件中拥有的句子构建单词嵌入 尽管这个词happy在词汇表中定义 得到错误KeyError word happy not in vocabulary 尝试将给出的答案应用到类似的问题