2013-02-26 80 views
1

假設我有一個錯誤日誌,我希望得到每個類型的錯誤的計數。我已經通過錯誤消息進行了分組,但是很多消息都包含特定於上下文的信息,這意味着儘管是由同一個錯誤引起的,我不能簡單地按消息文本進行分組。使用模糊匹配的聚合字符串

一些例子,其中斜體段每個實例變化誤差的:

  • 未能檢索用戶188a9e12-6797-4d9b-8adf-4588b2435326/靈長類/大猩猩
  • 結果
  • 未能網頁檢索用戶08c610d2-27d2-4f97-bf60-d5b3010e8dd6結果/靈長類/猴

我想用一些模糊邏輯將所有這些消息分組。我知道Levenshtein距離算法對於這種類型的處理很有價值,但我估計原始距離並不重要,因爲它沒有根據字符串的長度進行加權(在1000個字符的字符串中,距離30不太重要,而30個字符的100)。

所以我的目的是迭代消息列表並獲得某種模糊的匹配計數。爲每個模糊匹配的消息生成某種一致的密鑰可能存在問題?我將如何去做這件事?

+0

你不能使用正則表達式來分類郵件,並捕獲非變化部分R的背景下不同類型的字符串距離算法? – 2013-02-26 11:53:10

+0

不幸的是,沒有爲消息類型繪製正則表達式。對於每種類型的消息,不同的部分可能會有所不同,因此需要進行模糊匹配 – WickyNilliams 2013-02-26 12:16:16

回答

0

我會給q-gram distance試試。然後兩個琴絃之間的距離由它們共有的N-grams的數量決定。 N必須足夠大以至於N-gram代表相關的細節。 N = 4可能是一個不錯的首發。

更多的字符串距離來自N-gram的概念:f.x.餘弦和Jaccard距離。

This text解釋

+1

我忘了我曾問過這個問題,但我不記得我正在嘗試做什麼!你的答案似乎知道,並有很多有用的鏈接,所以我將它標記爲答案 – WickyNilliams 2013-12-02 16:32:10