首页 > 解决方案 > 生成相对于各个实体的嵌入关系/边缘值的上下文样本?

问题描述

我正在尝试构建自己的语料库/文本数据集来训练特定领域的NER. 我的实体主要是基于数字的,部分依赖于上下文进行分类。没有适合我的情况的特定数据集。因此,我正在生成自己的文本和上下文。

我想到的想法是根据嵌入与我要分类的实体相似的单词生成上下文。确保上下文不断变化以保持模型的通用性并且不会过度拟合特定的单词。

一个类似的例子(不是我的具体情况)是:尝试在文本中标记 IP 地址。我的想法是找到与单词的文本嵌入相关的所有单词IPor computer。例如,类似的嵌入将software具有0.8边缘值。

我的问题是:

标签: machine-learningword2vecembeddingnamed-entity-recognition

解决方案


你的问题很难回答,因为它太抽象了。目前尚不清楚实际域是什么;没有你的“伪文本”的例子;您尝试过并且发现缺乏的事情没有中期结果,可据此提出改进建议。

因为在那个规格不足的水平上没有合适的答案,你可能不得不尝试一些事情,然后查看令人鼓舞和不满意的结果组合(可能在此处分享),以发现相似度水平的可能有用阈值或伪文本生成计数。

例如,来自这些模型的相似度值,即使它们总是在-1.0范围1.0内,也不能很好地映射到“X% 相似度”的人类概念。如果您更改模型元参数,令牌可能仍然具有非常相似的“前 10 个”邻居,但余弦相似度值却大不相同。(至少在您决定冻结模型元参数和训练数据的某些方面之前,排名顺序可能比原始余弦相似度数字更重要/更稳定。)因此,任何人都无法推荐阈值0.8,或甚至可以确保任何这样的阈值都是有意义的,无需更多的领域/模型/最终目标特定的实验。(此时,也许可以在绝对余弦相似度或所有相似度的最高百分位数或某些邻居列表中发现一些特定于项目的阈值。)

同样,对于生成合成文本样本,也没有固定的答案。您需要真正的多样性来反映底层域的微妙之处。如果 1000 个样本的重复次数几乎相同,那么 1000 个样本并不比 100 个更好——你可以将 100 个样本每个重复 10 次,或者增加模型的训练“时期”,以获得相同的效果——但模型中的数据没有真正的变化不会学到更多。因此,您需要反复试验您的数据、模型和最终用途目标。

一些人已经将类似 word2vec 的算法应用于巨型图,方法是从通过图的各种长度的随机游走创建他们的“文本”。如何创建这样的游走——即一个特定的“节点”/唯一令牌“应该”在训练数据中出现数十次、数百次还是数千次——可能会受到该节点/令牌在下游应用程序中的重要性的影响,它的内缘和外缘有多少真正的多样性,等等。所以,这又是一个实验和反复试验的问题。


推荐阅读