我有两个G729编码文件,我把它们的pcm版本。我想测量这两个文件之间的相似度。这些文件是二进制文件,所以如何测量二进制文件之间的相似性,我在C中编写了一个代码,它从第一个文件中获取模式并在第二个文件中搜索相似的代码,但是我想要有一个相似性度量。我在文献中搜索了很多,我发现了jaccard和其他人,但仍然无法确定他们哪一个符合我的情况。 提前感谢您的帮助..测量两个二进制文件之间的相似性?
0
A
回答
2
由于您提到的文件是音频文件,最好是根据音频特征定义相似性度量,而不是简单地进行二进制比较。快速搜索提出了一个名为MusicMiner的研究项目,您可能想要了解进一步的想法。
+0
首先感谢你的回复...我试图对纯文本级别进行分析......我的意思是在二进制级别..我想比较编码器的输出......谢谢 – Dobs 2010-10-09 09:40:13
0
我有同样的需要,我想出了一个解决方案,在我的情况下工作,但我不能保证这是普遍的:
我把创建的差异文件库。鉴于fileA和fileB这个库创建了第三个文件fileDiff,它告诉如何从fileA传递到fileB要复制的字节和要添加的字节。 (有关格式的更多信息:http://www.w3.org/TR/NOTE-gdiff-19970901.html)
- 我在Java的工作,所以我用javaxdelta:http://javaxdelta.sourceforge.net/
- 在这里,您可以实现被称为DiffWriter接口:http://javaxdelta.sourceforge.net/javadoc/com/nothome/delta/DiffWriter.html
- 在你知道结局复制了多少字节以及从fileA到fileB添加了多少个字节
用函数获得一个百分比。 我知道这不是100%真实的,例如,如果你有fileB等于fileA的一半,这个函数的相似度是100%。
这是DiffWriter实现:
public class Distance implements DiffWriter {
private long newData = 0;
private long copiedData = 0;
@Override
public void flush() throws IOException {}
@Override
public void close() throws IOException {}
@Override
public void addData(byte arg0) throws IOException {
newData++;
}
@Override
public void addCopy(long arg0, int arg1) throws IOException {
copiedData += arg1;
}
public double getSimilarity() {
double a = (double) newData;
double c = (double) copiedData;
return ((c/(c + a)) * 100.0);
}
}
这是我如何称呼它:
import com.nothome.delta.Delta;
File f1 = new File(...);
File f2 = new File(...);
Distance dw = new Distance();
try {
new Delta().compute(f1, f2, dw);
dw.getSimilarity();
} catch (Exception e) {
e.printStackTrace();
}
相关问题
- 1. 如何测量两个向量之间的相似度?
- 2. 如何测量matlab中两个二维复杂场之间的相似度?
- 3. Android:测量两个活动页面之间的相似度
- 4. 如何测量两个图像之间的相似度?
- 5. 如何测量两个python代码块之间的相似度?
- 6. 表示星图的两个向量之间的相似性
- 7. 两个信号之间的相似性:寻找简单的测量
- 8. Python中两个文本文档之间的相似性
- 9. 两个向量之间的相关性?
- 10. 查找两个文档之间的相似性Lucene
- 11. 找到两个文本字符串之间的相似性..?
- 12. 名称间的相似性测量?
- 13. 计算数百万个文档之间的相似性度量
- 14. 计算两个序列之间相似性的复杂性
- 15. 两个字符串之间的相似
- 16. 彩色图像之间的相似性测量(OpenCV)
- 17. 如何测量三个向量之间的相似度?
- 18. 测量2个向量之间的相似度
- 19. 如何计算两个license.txt文件之间的相似度?
- 20. 公制比较如何相似的两个二维线性线
- 21. 两个“词”之间的语义相似性/相关性的Java API
- 22. 推文与主题检测之间的很好的相似性度量
- 23. Excel:计算两个列表之间的相似性
- 24. 如何计算两个字符串之间的相似性MYSQL
- 25. 使用FQL查找两个Facebook用户之间的相似性
- 26. 估计两个词之间的音素相似性
- 27. 比较两个结果集之间的相似性
- 28. 两个音频序列之间的感知相似性
- 29. 测量文档集之间的相似度
- 30. LDA结果在两个不同数量的主题之间的相似性?
http://en.wikipedia.org/wiki/Acoustic_fingerprint – 2010-10-06 15:46:58
你想究竟如何量化'相似'?你想每个样本有绝对的差异吗?最小二乘回归的R^2值?这两个文件是什么? – JoshD 2010-10-06 15:50:33
我想找到一个比率来定义两个文件相互之间的相似程度......这两个文件是G729编解码器的输出...我们可以从每个文件中取出20个字节的帧并测量这两个文件之间的相似度字符串和最后的平均值......足够吗? – Dobs 2010-10-09 09:43:53