Machine learning 如何使用单词嵌入/word2vec。。不同地用一本实际的物理词典

Machine learning 如何使用单词嵌入/word2vec。。不同地用一本实际的物理词典,machine-learning,nlp,deep-learning,embedding,word2vec,Machine Learning,Nlp,Deep Learning,Embedding,Word2vec,如果我的标题不正确/可能更好,请告诉我 我一直在试图找到一篇现有的论文/文章来描述我遇到的问题:我试图为单词创建向量,使它们等于它们各部分的总和。 例如:Cardinal(鸟)将等于:red,bird的向量,仅此而已。 为了训练这样的模型,输入可能类似于字典,其中每个单词都由其属性定义。 比如: 红衣主教:小鸟,红色 蓝知更鸟:蓝色,鸟 鸟:温血的,翅膀,喙,两只眼睛,爪子 翅膀:骨头,羽毛 在这个例子中,每个词向量等于它各个部分的词向量之和,依此类推 据我所知,在最初的单词2VEC中,语义距离

如果我的标题不正确/可能更好,请告诉我

我一直在试图找到一篇现有的论文/文章来描述我遇到的问题:我试图为单词创建向量,使它们等于它们各部分的总和。 例如:Cardinal(鸟)将等于:red,bird的向量,仅此而已。 为了训练这样的模型,输入可能类似于字典,其中每个单词都由其属性定义。 比如:

红衣主教:小鸟,红色

蓝知更鸟:蓝色,鸟

鸟:温血的,翅膀,喙,两只眼睛,爪子

翅膀:骨头,羽毛

在这个例子中,每个词向量等于它各个部分的词向量之和,依此类推

据我所知,在最初的单词2VEC中,语义距离被保留,因此Vec(马德里)-Vec(西班牙)+Vec(巴黎)=近似Vec(巴黎)

谢谢


另外,如果可能的话,以后应该可以添加新单词。

如果你要建立一个包含你想要的组件的字典,你根本不需要word2vec。您已经定义了要指定的维度:只需使用它们,例如在Python中:

kb = {"wings": {"bone", "feather"}, 
      "bird":  {"wings", "warm-blooded", ...}, ...}
由于这些值是集合,因此可以执行集合交集:

kb["bird"] | kb["reptile"]
您需要找到一些方法递归地分解元素,以便进行比较、简化等。这些是您必须根据在此类操作期间预期发生的情况做出的决策

这种手动词典开发是一种非常老式的方法。像沙克和阿贝尔森这样的人在20世纪70年代曾经做过类似的事情。问题是,随着这些词典变得越来越复杂,它们变得难以维护,其近似值也越来越不准确。欢迎你作为一种锻炼来尝试——它可以是一种乐趣---但要保持低期望

您还将发现在这些分解中丢失的意义的各个方面。word2vec的一个显著特性是它对单词的格式塔很敏感——单词可能有由部分组成的意义,但在这个组成部分中有一部分使整体大于部分之和。在分解中,格式塔丢失了


与其试图建立一个词典,你最好还是从一个大型语料库中探索W2V到底给了你什么,并看看如何利用这些信息来发挥优势。W2V从文本中呈现的确切内容的语言学尚未完全理解,但在尝试对嵌入做一些特定的操作时,您可能会学到一些关于语言的新知识

谢谢你的回答:所以我之所以尝试这种风格的方法是因为我使用的数据——这是非常具体的生物信息,我认为我实际上无法获得有效的语料库。我最初考虑只使用维基百科和一些生物数据库(NCBI),但有一点需要注意的是定义是严格的——如果a由B、C、D组成,a的向量必须始终等于B、C、D的和,不多不少(给定最近的邻居,并假设没有重复)。我不确定W2V是否有能力产生这样的结果。这的最终目标是什么?申请表是什么?您的评估指标是什么?最终目标是生成什么?一些向量世界,在那里可以对(生物过程的)属性集进行加和减,以找到与该属性集最接近的对象。应用是对生物数据的深入学习。评估指标:给定“项目”的输入序列;Property1,Property2…PropertyN',输出应该是向量空间,这样数学就都可以了。很有可能这根本不是W2V问题,或者我只是看错了。这是一个很大的假设——生物特性服从向量空间模型的特性。如果您知道要分析的属性是什么,只需制作一个大表即可。我认为,通过NLP衍生分析,你不会得到你想要的那么精确的结果,你需要大量的数据。没有人真正理解W2V分析的各个维度“意味着什么”。维基百科上的生物学文章可能是训练数据的一个良好开端,只是厌倦了维基百科分类形成一个图表,而不是一个好的本体。