如何在一个句子中消除同一个词的两种含义?

人工智能 自然语言处理 自然语言理解 word2vec 语义网络
2021-11-09 21:39:06

男孩举起球棒击球。

在上面的句子中,名词“蝙蝠”是指木棍。它并不意味着蝙蝠,飞行的哺乳动物,它也是一个名词。使用 NLP 库来查找定义的名词版本仍然是模棱两可的。

如何编写一种算法来获得确切的定义,给定一个单词,以及它所使用的句子?

我在想你可以使用 word2vec,然后使用 autoextend https://arxiv.org/pdf/1507.01127.pdf来区分 2 个不同的词位,例如 bat(动物)和 bat(木棍)。

那么字典定义和句子中任何单词之间最接近的余弦距离可能表示正确的定义。

这听起来正确吗?

1个回答

为此,我建议使用BERT它本质上是一个词嵌入模型,用于在本地上下文中确定每个词的适当嵌入。这意味着它将在包含“hit the ball”的句子与包含“flies and eats bugs”的句子中为“bat”分配不同的嵌入。最重要的是,谷歌发布了许多预训练版本的 BERT,无需额外训练即可直接使用(当然取决于你的任务)。如果您只想要嵌入,BERT 即服务非常棒。Python转换器库使将 BERT 合并到您的特定任务模型中变得非常简单。