我正在尝试将对象之间的关系用于有监督的学习任务。例如,给定一个像"Cats eat fish“这样的文本,我想使用Cats-eat-fish关系作为学习任务的特征(即识别单词的含义)。因此,我想用数字表示这种关系,以便我可以使用它作为学习模型的一个特征。关于我如何实现这一点的任何建议。我正在考虑将其散列为一个整数,但这可能会带来挑战,比如两个语义上相同的关系可能具有两个非常不同的散列值。理想情况下,我希望2个相似的关系(例如,生活和居住)散列到相同的值。我想我还需要弄清楚是否可以在散列之前规范化关系。
其他可能不使用数字特征的方法也会很有用。我也想知道是否有基于图的方法来解决这个问题。
发布于 2013-07-10 17:19:56
我建议为所有可能的关系类型创建(非常大的数字)二进制特征,然后可能在得到的(非常稀疏的)特征空间上运行某种形式的降维。
另一种减少稀疏性的方法是用实体类型替换空单词,例如动物吃动物,甚至是动画吃动画,然后在这个空间中使用二进制特征。您希望避免映射到单个维度上的数值,因为如果这样做,您将在特征之间强加虚假的序号关系。
发布于 2013-07-10 20:26:56
如何通过特征来表示动词,这些特征将表示动词前面的典型单词(通常是主语)和动词后面的典型单词(通常是宾语)。假设你可以取500个最常用的单词(或者更好的最有区别的单词),那么每个动词将被表示为一个1000维向量。向量中的每个特征可以是二进制的(是否存在频率高于特定阈值的单词),也可以是纯计数,或者最好是对数。然后,您可以运行PCA将向量减少到某个较小的维度。
上面的方法是概率的,可能是好的,也可能是坏的,这取决于你想要什么。如果你想通过大量的手动输入来精确地完成这项工作,那么可以看看情景语义。
https://stackoverflow.com/questions/17562554
复制相似问题