我有一个包含化合物名称及其成分的数据集。像下面
硫酸=>[H,S,O](氢、硫、氧)草酸=>[H,C,O]草酸钠=>[Na,C,O]硫酸钾=>[K,S,O ] ...
现在我需要训练一个模型,它可以告诉我硫酸钠为 [Na,S,O]。请注意,硫酸钠表示训练数据集中没有的东西。我曾尝试寻找可能的想法,但没有任何想法。然后我认为它可能是层次聚类
Sodium-Oxalate
| |
Oxalate Sodium
| | |
C O Na
但是在层次聚类中,基/叶是不同的。但在这里它们是共享的。它就像一个图表。那么什么机器学习算法可以提供帮助呢?还有其他聚类吗?NLP/单词聚类(如果是的话)?
我能想到的另一种方法是Word2Vec,我为每个单词(C、H、Sodium)生成嵌入,所有这些都会有嵌入。并且基于更接近我所要求的词的内容,我将给出输出。但这需要大量的数据。我只有大约 1k 种常见化合物。并且该方法不会以较少的数据推广到任何此类问题。
