問個,有什麼方法可以比較兩個 json 的相似度ㄇ
或應該說,object 的相似度怎麼定義
如果要給 code,Python 優先(?)
給個背景,我要比較的是 chromium 上 request 的 initiator
大概會長這樣
{"type":"parser","url":"https://google.com/example","lineNumber":221}
{"functionName":"test","scriptId":"19","url":"https://example.com/init.js","lineNumber":53,"columnNumber":232},{"functionName":"nrWrapper","scriptId":"9","url":"http://example.com/","lineNumber":45,"columnNumber":11525}]}}
感覺以這個舉例來說不適合,因為很可能會遇到 key 一樣但 value 不一樣,而且還有可能一邊的 value 是 string 另一邊是又一層 object
我知道有 diff 工具,但我要 similarity,也就是一個 0~1 的數字跟我說他們有多相似
但我不知道該怎麼定義 similarity 才能符合這個情境
那你希望這個 similarity function 符合哪些 property
你可以先把這些 property 列一下,會比較好思考
隨便舉例
a = {"type":"parser","url":"https://google.com/example","lineNumber":221}
b = {"type":"parser","url":"https://google.com/example","lineNumber":241}
c = {"type":"parser","url":"https://google.com/example","lineNumber":261}
distance(a, b) = distance(b, c) = distance(a, c)
我想要知道兩個 request 是不是同一個 or 相似的 script 打的
{"type":"parser","url":"https://google.com/example","lineNumber":13} 呢
一樣,因為他們只差在行數,所以距離要是一樣的
但如果 type 變成其他的,距離就應該要變很遠
你餵給 similarity function 的參數要有哪些
先把種類抓出來做陣列然後做每個項目的相似度,不過需要樣本
similarity function 沒辦法知道你哪些 field 是重要的
目的是我想要知道是否存在「同一個 script 在不同時間點會往不同地方發 request」,所以我去爬了 Wayback Machine,蒐集一個網頁在歷史上的不同時間點打的 request
BTW initiator 是 Chrome 的 DevTool 吐出來的
例如一個是 html 的 <img src="...." 那他的 type 會是 parser,但 js 裡面的 fetch 就會是 script
我有弄個白名單,只挑出我想看的東西,所以這可以先不用擔心
所以你有被我說服 看 initiator 的 object 比較相似度是可行的作法了ㄇ
假設script A 的 B Function 發了一個fetch
B func, Script A就是這個的 request的 initiator
@s3131212 所以你要的不是 general 的 json similarity function ㄇ
應該說我覺得 general 的 similarity function 是對於我的問題的一個 relaxation,如果有的話我可以直接拿來用,只是沒那麼好用而已
就說真的,我直接拿來做字串相似度也可以R 就是很不準確而已
{"A": 1} {"A": 2}你覺得有多相似?
{"A": 1} {"A": "haha"}
{"A": 1} {"B": 1}
{"A": 1} {"A": {"ABC": 123}}
...
應該說,就,我也不知道該怎麼妥善定義相似度,所以才上來問 QQ
不知道的話,先stringify再算 Levenshtein distance 吧
{"A": "ABC"} {"A": "haha"}
預處理=> {"A": 3} {"A": 4}之類
啊反正順便定一個 JSON similarity function 以後也用的到
應該說問題就是我連要有怎樣的性質比較有用都不知道 QQ
上面舉例只是我目前認為有用的,也許等等就發現沒用了
話說你可以看一下我剛剛貼的 ruby 那個的定義,我是看不懂la 也許你可以
我以為只有醫院或核電廠需要備用的東東,沒想到我的瀏覽器也有(((((
deep compare 再計算平均相似度,字串的話要提供custom function
a: 1, b: 2, c: 3跟a: 1, c: 3, e: 5
大概只有2/3相似
{A: {a: 1, b: 2, c: 3}, B: 10}跟{A: {a: 1, c: 3, e: 5}, B: 10}
大概只有1/2 + (1/2 * 2/3) 相似?
但{a: "abc"} 跟 {a: "abd"}就要提供string distance功能了,不然會直接return 0
問個,就資安和隱私的角度而言,iOS 跟 Android 選哪個比較好阿(給定都是最新版)
以前都覺得是 iOS,但感覺這幾年 Android 的資安做的還不錯,可是又三天兩頭聽到各種 App Squatting
問這個是因為 Pixel 4a 真的很香,但對於資安與隱私問題感到憂心
我對於資料傳給 Google 麻木了,但我不想傳給其他人(?
那你應該先說ㄚ
如果你不介意傳資料給 Google 的話
這樣 iOS 跟 Android 就可以重新評估ㄌ
至少 Android 好像不太常出現傳 emoji 就可以讓別人手機爛掉的狀況
但是也有掃到WiFi直接爛掉的那種
還有看到影片直接爛掉
跟看到照片直接爛掉
最近看 Apple 的政策只覺得他們在管制 App Store 軟體的時候只管能不能賺到錢
然後如果有什麼 App 幹了奇怪的事情,也只有新聞爆出來後才會干涉
是說連 FB 自己都不敢抽的錢, apple 也有種抽下去誒
App Store 的 distribution network 很貴吧?
「你們寄給我兩封信,我可以理解名字錯置的問題,但兩封信的專屬網址都依魔依樣,這還專屬網址?專你娘啦專」
我剛剛丟ㄌ三個 PR 都有算進去,所以代表他開始了 ay