【问题标题】:How to evaluate word2vec build on a specific context files如何评估基于特定上下文文件的 word2vec 构建
【发布时间】:2017-10-30 14:44:50
【问题描述】:

使用 gensim word2vec,构建了一个包含一堆诉讼文件的 CBOW 模型,用于在命名实体识别问题中将单词表示为向量,但我想知道如何评估我的单词表示。如果我使用任何其他数据集,如 wordsim353(NLTK) 或谷歌的其他在线数据集,它不起作用,因为我构建了特定于我的域文件数据集的模型。如何评估 word2vec 对词向量的表示。我希望属于相似上下文的词在向量空间中更接近。如何确保构建模型正在执行它?

我首先使用了一种称为奇一出的技术。例如:

model.wv.doesnt_match("breakfast cereal dinner lunch".split()) --> 'cereal'

我使用 word2vec 训练中的单词创建了自己的数据集(用于验证)。开始评估三个词的相似上下文和一个奇数词脱离上下文。但我的模型的准确率只有 30%。

上述方法真的有助于评估我的 w2v 模型吗?或者有没有更好的办法?

我想使用 word_similarity 度量,但我需要一个参考分数(人工评估)来评估我的模型,还是有什么技术可以做到这一点?请提出任何想法或技术。

【问题讨论】:

    标签: machine-learning nltk word2vec gensim feature-engineering


    【解决方案1】:

    这最终取决于您对词向量的预期用途——您的评估应尽可能模仿最终用途。

    “奇一出”方法可能是合理的。通常只使用 2 个通过外部知识/分类已知相关的单词(在对您的最终用途很重要的方面),然后随机选择第三个单词。

    如果您认为您的手工评估集对于您的目的来说是高质量的,但您的词向量表现不佳,可能只是您的训练存在其他问题:数据太少、错误在预处理、选择不当的元参数等方面。

    您必须更详细地查看个别失败案例,才能选择下一步要改进的地方。例如,即使它在您的一个奇数测试中失败,对于包含的每个单词,最相似单词的列表在眼球测试中是否仍然具有表面意义?使用更多数据或更多训练迭代是否会显着提高评估得分?

    在训练和评估/部署过程中的一个常见错误是保留太多稀有词,这是基于(错误的)直觉,即“信息越多越好”。事实上,只出现几次的单词并不能得到非常高质量的向量。 (与更频繁的词相比,它们的末端向量更受随机原始初始化的影响,以及它们很少出现的特性而不是它们最普遍的含义。)此外,它们的存在往往会干扰改进其他附近更频繁的词。然后,如果您在评估中包含较弱向量的“长尾”,它们往往会在排名中任意侵入具有强向量的常用词,从而隐藏您评估问题的“正确”答案。

    另外,请注意,评估分数的绝对值可能并不那么重要,因为您只是在寻找能够将其他优化指向正确方向的东西 实现您真正的最终目标。在精确评估问题上稍微好一点的词向量在其他更模糊的信息检索上下文中可能仍然足够好。

    【讨论】:

      猜你喜欢
      • 2019-03-09
      • 1970-01-01
      • 1970-01-01
      • 2021-01-12
      • 2021-07-23
      • 2023-03-18
      • 1970-01-01
      • 2019-04-27
      • 1970-01-01
      相关资源
      最近更新 更多