difflib

    7熱度

    1回答

    這裏是(我從Magnus Hetland's webite拉)的一般算法,計算Levenshtein距離的典型例子: def levenshtein(a,b): "Calculates the Levenshtein distance between a and b." n, m = len(a), len(b) if n > m: # Make sure

    6熱度

    1回答

    如何判斷difflib.get_close_matches()忽略大小寫?我有一個包含大寫字母的定義格式的字典。但是,測試字符串可能具有全部大寫字母或不帶大寫字母,並且這些字符串應該是等效的。結果需要適當的大寫,但是,所以我不能使用修改過的字典。 import difflib names = ['Acacia koa A.Gray var. latifolia (Benth.) H.St.Jo

    0熱度

    1回答

    我正在試驗fuzzywuzzy,並且在很多情況下遇到了錯誤的結果。我試圖調試並遇到get_matching_blocks()這個很難解釋的場景。 我get_matching_blocks(),則它應該返回三重元組的理解(I,J,n),其中的第一串中長度n的在索引i子串應與長度的子串完全匹配n在索引j的第二個字符串中。 >>> hay = """"Find longest matching bloc

    5熱度

    2回答

    我有很多,我想匹配的相似性(每串平均爲30個字符)的字符串。我發現difflib'sSequenceMatcher爲這個偉大的任務,因爲它很簡單,發現結果良好。但是,如果我比較hellboy和hell-boy這樣 >>> sm=SequenceMatcher(lambda x:x=='-','hellboy','hell-boy') >>> sm.ratio() 0: 0.9333333333

    5熱度

    1回答

    我需要用python突出顯示兩個簡單字符串之間的差異,並將不同的子字符串括在HTML span屬性中。所以,我在找落實以下例子可以說明功能的簡單方法: hightlight_diff('Hello world','HeXXo world','red') ...它應該返回字符串: 'He<span style="color:red">XX</span>o world' 我用Google搜索和看到di

    0熱度

    1回答

    我想比較兩個字符串列表之間的差異。對我而言,空白是噪音,不需要顯示這些差異。讀入difflib's documentation「,默認[charjunk]是模塊級函數IS_CHARACTER_JUNK(),它過濾掉了空白字符」。完美,除非我沒有看到它的工作,或有很大的不同(< - 雙關!)。 import difflib A = ['3 4\n'] B = ['3 4\n'] print '

    0熱度

    1回答

    最初需要一種算法來查找兩個python字符串之間最長的子字符串。基於對線性運行時的在線一致性,最佳運行時的一般答案是「構建後綴樹」。然而,在這裏沒有任何網上的例子,並且這並不奇怪,因爲後綴樹被指出是非常複雜和不直觀的構造。 我實現了一個DP解決方案(仍然是二次方的),而且我試圖做的太慢了。 嘗試使用python的difflib.find_longest_match,它速度更快(但它仍然沒有id一樣

    4熱度

    2回答

    我創建了一個小程序,用於檢查作者是否存在於作者數據庫中。我一直無法找到這個問題的任何特定模塊,所以我從頭開始用模塊進行近似字符串匹配。該數據庫包含大約6000位作者,格式非常不好(許多拼寫錯誤,變體,標題,如「博士」等)。查詢作者列表通常在500-1000之間(並且我有許多這些列表),使得速度非常重要。 我的一般策略是儘可能修剪和過濾數據庫並查找完全匹配。如果沒有找到匹配,我繼續近似字符串匹配。

    0熱度

    3回答

    我有兩個列表,我使用下面的函數來分配(類似於在Unix NL)行號的行號: def nl(inFile): numberedLines = [] for line in fileinput.input(inFile): numberedLines.append(str(fileinput.lineno()) + ': ' + line) numberWid

    1熱度

    1回答

    我有兩個文件看起來像這樣與他們之間的一些差異: 第一個文件: {16:[3, [-7, 87, 20, 32]]} {17:[2, [-3, 88, 16, 28], 3, [-6, 84, 20, 32]]} {18:[2, [-1, 88, 16, 28], 3, [-3, 84, 20, 32]]} {19:[2, [1, 89, 16, 28], 3, [-2, 85, 20, 32