我有兩個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