在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/Java  網(wǎng)絡(luò)安全/ 如何確定A段文字是由B段文字修改而來(lái)?

如何確定A段文字是由B段文字修改而來(lái)?

我在印象筆記中有近萬(wàn)條筆記,因害怕印象筆記出bug或自己誤操作,導(dǎo)致筆記丟失,所以想定期(一周一次)導(dǎo)出所有筆記
的標(biāo)題,用印象筆記自帶功能可以完成標(biāo)題導(dǎo)出,導(dǎo)出到一個(gè)html文件中,然后用代碼讀取到一個(gè)文本文件。

筆記的題目示例如下。

《本地人兩千都不要 炒房者七千買 | 怎么在9個(gè)月把房?jī)r(jià)炒高兩三倍 | 匯率、房貸、外匯儲(chǔ)備…… 杠桿》
《為什么2016美國(guó)大選大數(shù)據(jù)預(yù)測(cè)普遍失靈》
《市面上有一款android的按鍵精靈,他是基于什么原理實(shí)現(xiàn)的實(shí)現(xiàn)? - 知乎》
《linux route 使用詳解》
《linux sort 命令詳解》

使用印象筆記的過(guò)程中,我可能會(huì)修改筆記的標(biāo)題,比如將如上第三個(gè)標(biāo)題的"- 知乎"刪掉。
也可能將不同筆記合并,比如如上的第四條和第五條,合并成《linux route 使用詳解 | linux sort 命令詳解》
如果單單基于如上這些標(biāo)題的話,很難對(duì)一條筆記做唯一性判斷,比如如下刪掉了

",他是基于什么原理實(shí)現(xiàn)的實(shí)現(xiàn)? - 知乎"

后的《市面上有一款android的按鍵精靈》和原標(biāo)題為《市面上有一款android的按鍵精靈,他是基于什么原理實(shí)現(xiàn)的實(shí)現(xiàn)? - 知乎》很難在代碼層面100%確定兩條筆記是同一條筆記(只是基于題目難以確定,實(shí)際上,兩條筆記內(nèi)容是完全一樣的,只是題目變了,但是現(xiàn)階段只能基于標(biāo)題判斷)。

我的初步想法是為每個(gè)筆記的標(biāo)題加上唯一id,如下所示,這樣就能基于id來(lái)判斷:

《id1本地人兩千都不要 炒房者七千買 | 怎么在9個(gè)月把房?jī)r(jià)炒高兩三倍 | 匯率、房貸、外匯儲(chǔ)備…… 杠桿》
《id2為什么2016美國(guó)大選大數(shù)據(jù)預(yù)測(cè)普遍失靈》
《id3市面上有一款android的按鍵精靈,他是基于什么原理實(shí)現(xiàn)的實(shí)現(xiàn)? - 知乎》

這樣搞,原理簡(jiǎn)單,但是有個(gè)缺點(diǎn),需要手動(dòng)更改大量筆記的標(biāo)題,工作量大。

我的問(wèn)題是,還有其他辦法,能讓我如上這么修改了筆記標(biāo)題后,100%確定改過(guò)標(biāo)題后的筆記,實(shí)際上與未改過(guò)標(biāo)題的筆記,實(shí)際上是同一條。

回答
編輯回答
憶往昔

不知道你為什么只選擇導(dǎo)出標(biāo)題?明明可以全部導(dǎo)出成一個(gè)文件然后備份啊。

跟蹤標(biāo)題修改,是為了想知道某條筆記是否被誤刪了(最關(guān)心的是這個(gè))

這樣的話,結(jié)果必然只能是近似的,這一點(diǎn)你必須接受,否則就只能全部導(dǎo)出了。

接下來(lái)就是盡量提升結(jié)果的準(zhǔn)確性,想了一下,下面是我的思路:

  1. 將兩次導(dǎo)出的標(biāo)題看成兩個(gè)集合,A、B
  2. 先確認(rèn)哪些是可以完全匹配的,即標(biāo)題完全相同,將其從A和B中移除
  3. 再確認(rèn)包含匹配的,包含匹配的意思是標(biāo)題1包含標(biāo)題2或反之。例如:“市面上有一款android的按鍵精靈,他是基于什么原理實(shí)現(xiàn)的實(shí)現(xiàn)? - 知乎”包含“市面上有一款android的按鍵精靈,他是基于什么原理實(shí)現(xiàn)的實(shí)現(xiàn)?”或“市面上有一款android的按鍵精靈”。包含匹配有極大的可能是由原標(biāo)題修改得到的,例如去掉首尾一些內(nèi)容,或在首尾增加一些內(nèi)容等。
  4. 剩下的就是通過(guò)相似度來(lái)匹配,類似于搜索引擎的關(guān)鍵字搜索。相似度的含義需要花點(diǎn)心思來(lái)定義(找到符合自己應(yīng)用場(chǎng)景的)。我想到的有以下幾種:

    • 長(zhǎng)度相似,比如誤差必須在50%以內(nèi)。也就是說(shuō),兩個(gè)標(biāo)題之間最多相差一半的大小。當(dāng)然,實(shí)際的閾值需要你自己嘗試。
    • 按順序匹配60%以上的標(biāo)題內(nèi)容。比如“我的和你的以及他的”這個(gè)標(biāo)題,與“我和你以及他的”相似,但與“他的你的和我的”不相似。雖然后者包含原標(biāo)題的所有字符,但順序明顯不同。這一條的出發(fā)點(diǎn)在于一般改標(biāo)題很少會(huì)修改順序,常見(jiàn)的只是增加或刪除一些內(nèi)容而已。(同樣,閾值需要實(shí)際測(cè)試)
  5. 剩下的就是難以匹配的了,可以按刪除(存在于A但不存在于B)和新增(存在于B但不存在于A)來(lái)對(duì)待。
2017年5月22日 05:19