2013-02-12 107 views
0

余弦相似度上的输入是两个向量,代表我想比较的两个不同数据。是否需要矢量的语义?它可以简单地成为每个文件的字节表示。然后计算每个字节的频率?这有意义吗?或者应该有文件的矢量化,其中每个维度不是来自文件的原始数据,而是一些元数据作为每个术语的频率,如果我们说的是文本文件或tf-idf编码模型?把它放在另一个形状中:为了“正确”,余弦相似性是否需要一个复杂的数据预处理步骤,或者我可以将其作为输入整数值来表示数据的每个字节,而不考虑文本或只是一个频率每个字节的长短?余弦相似度的预处理要求是什么?

回答

1

数据的“语义”很关键。例如,假设你正在比较英文文本文件。对于大型文档,各种字母出现的频率大致相同,因此如果向量中的元素表示字母的数量,您将难以区分文档。如果你的向量的元素代表单词的计数,你会得到更好的结果。如果你的向量元素代表“干”字的计数,甚至更好。等

余弦相似性是一个“愚蠢的”统计测量 - 它是由你来给它一些有意义的比较。

+0

如果我想比较记录,并且每个向量由数值数据,布尔值和字符串组成,那么该怎么办?Ie:[数字] [数字] [字符串] [布尔值] – curious 2013-03-19 17:05:06

+0

@Curious - 我不确定你是什么问。你能否提供一个简单的例子,展示你正在考虑的一些向量表示? – kc2001 2013-03-22 12:13:56

+0

假设我有两个记录。 r1 = 234,1023,不,今天是星期天。 r2 = 876,423,是的,明天我要走了。我如何计算这两条记录的余弦?我如何计算它们的向量?我只是通过字符来表示它们的ascii表示并创建一个向量?那么就没有语义和余弦可能会给出不准确的结果 – curious 2013-03-22 13:09:26