我在數據庫的臨時表中有多個條目,我需要將它們合併爲永久條目。現在這些信息來自多個XML Feeds,並且我有各種各樣的信息,但最接近的是「標題」,或者在我的情況下,即產品的名稱。 不幸的是,我沒有任何其他的方式(沒有相同的ID或類似的東西)比匹配他們的名字。 因此,例如,我有:按值排列數組
$primary = array('feedid' => 2, 'entry_name' => 'ACME Product Black Model #23');
$secondary = array('feedid' => 3, 'entry_name' => 'ACME Product Model #23');
極致的產品可能"ACME Product Model #23" to "Model 23"
變化到「Black Model #23"
等 此外,在相同的飼料我可能有和」 CHOAM Product Black - Model 11"
。
問題是,我不能只使用similar_text()
或levenshtein()
,因爲它們有時會匹配錯誤的項目,或者有時根本不匹配。每個Feed有100多個條目,我最多可以有10個Feed。例如:「iPhone 4」和「iPhone 4 White」和「iPhone 4 Black」應該全部合併(我可以處理合並,需要先匹配)。 所以規則是 - 在這種情況下匹配電話。 它也可以是「Barby Doll White Hair」和「Barby Doll Black Hair」,但不是「其他白髮娃娃」。 ...
任何想法表示讚賞:)
爲了正確匹配所有記錄,您是否容易輸入**純英文**所需的規則,因爲您更瞭解此案例。這會讓它變得更好。 – Melsi
@Melsi不清楚你的英文是什麼意思。匹配的問題是,即使我不知道什麼飼料將完全匹配。我確實知道,他們都會有一個產品名稱。這個名字怎麼樣,我無法確定。我必須弄清楚如何處理這些動態數據並儘可能正確匹配。 – Norris
關於此問題的一些問題:人類能夠做到這一點嗎?如果是這樣,他會使用哪種信息?鑑於你已經展示的四個例子,只要看看標題,我就不能分辨出哪些屬於一個整體。所以,如果有人能夠做到這一點,那麼這個人可能需要額外的規則,而你並沒有在這裏給出。如果一個人無法做到這一點,那麼自動完成這件事完全是不可能的。在大數據上計算機比人類更好,但對於需要理解或認知能力的任務(比如這個)則更糟糕。 – LiKao