我想使用word2vec将“单词”转换为数字向量,并可能对新单词进行预测。我尝试过手动从单词中提取特征并训练线性回归模型(使用随机梯度下降),但这仅在一定程度上有效。
我的输入数据是:
- 每个单词都与一个数值相关联。您可以将此值视为单词在 1D 空间中的坐标。
- 对于每个单词,我可以提供与任何其他单词的距离(因为我有单词的坐标)。
- 因此,我可以为每个单词提供上下文。如果给定一个距离,我可以提供与目标距离在此距离内的所有其他单词。
- 单词仅由拉丁字母组成(例如 AABCCCDE、BKEDRRS)。
- 单词几乎从不重复,但它们的结构元素在不同的单词中重复很多。
- 单词可以有不同的长度(比如最多 5-50 个字母)。
- 单词具有共同的特征,其中的一些子序列会在不同的单词中多次出现(例如,一些字母的二连音或三连音,它们在一个单词中的位置等)。
问题:
是否有word2vec的实现允许为每个单词提供您自己的距离和上下文?
如果经过训练的模型可以为您在训练后输入的任何单词吐出预测坐标,那将是一个很大的好处。
最好在 Java 中,Python 也可以,但总的来说任何事情都可以。
我也不局限于word2vec,它看起来很合适,但是我对机器学习和数据挖掘的了解非常有限,所以我可能会错过解决问题的更好方法。
PS:我知道deeplearning4j
,但我没有仔细查看代码,以确定我想要做的事情是否易于在其中实现。
数据示例:(典型输入包含数千到数万个单词)
ABCD 0.50
ABCDD 0.51
ABAB 0.30
BCDAB 0.60
DABBC 0.59
SPQTYRQ 0.80