将单词转换为语义素数

数据挖掘 nlp word2vec
2022-02-17 05:55:22

有谁知道我可以用来将单词转换为语义素数的任何库,给定一个已批准的素数列表?

换句话说,给定一个句子或一个词,我想找到在语义上最匹配输入的“主要”词的组合。

一个很好的例子是一个函数,它接收 Wikipedia 文章并输出类似于 Simple Wikipedia 的内容——它具有相同的语义内容,但将单词的使用限制为多个主要单词(在这种情况下,是更简单的单词)。

另一个例子:假设我的素数是["person", "move", "tool", "nice", "building"]

然后我想要一些函数、库或 NLP 算法可以转换"hammer"["building", "tool"]."car"["moving", "tool"]"friend"["nice", "person"]

我的第一个直觉是使用 word2vec:遍历素数的每个组合,并找到向量与原始单词最接近的素数组合。但是,我怀疑这不会很好地解决(部分原因是矢量加法似乎不够准确)。有没有更强大的方法来做到这一点?

1个回答

目前,为您正在寻找或尝试构建的内容找到一个健壮的模型非常困难,而且据我所知,没有任何这样的现有算法可以做到这一点。

您可以遵循的一种方法是为您的素数创建一个知识库,其中包含可以与之相关的信息/单词。
要处理大部分关系,您需要一个包含所有可能相关单词的字典。制作如此详尽的字典并非完全可能/可行。但是,如果您有一些特定领域的工作,您可以制作一本可以处理 80% 案例的字典。您可以使用 wordnet/word2vec 查找与基本素数最相似的单词,并可以推断这些单词。

除此之外,您还需要该词可能具有的一组可能的关系。为此,您可以使用 Open IE 之类的模型来提取主题-对象-关系,并且可以将这些关系与您的素数相关联。但是为此,您将需要一个您的域的数据集,您可以从中获取可能的关系。