root / atomisator / filters / levenshtein.py

Revision 101:b90f8ec41870, 1.3 kB (checked in by Tarek Ziad?? <tarek@…>, 15 months ago)

right encodings

Line 
1#!/usr/bin/python
2# -*- coding: UTF-8 -*-
3#
4# Copyright (c) 2007 Tarek Ziadé
5#
6# Authors:
7#   Tarek Ziadé <tarek@ziade.org>
8#
9# This program is free software; you can redistribute it and/or
10# modify it under the terms of the GNU General Public License
11# as published by the Free Software Foundation; either version 2
12# of the License, or (at your option) any later version.
13#
14# This program is distributed in the hope that it will be useful,
15# but WITHOUT ANY WARRANTY; without even the implied warranty of
16# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17# GNU General Public License for more details.
18#
19# You should have received a copy of the GNU General Public License
20# along with this program; if not, write to the Free Software
21# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
22# $Id: tables.py 1518 2007-05-21 12:35:44Z rage $
23""" Base filters
24"""
25from Levenshtein import ratio
26from filtering import register_filter
27
28def levenshtein(entry, entries):
29    """will find similar entries, given a ratio
30
31    Do the job over the content
32    """
33    content = entry['content']
34    if content == '':
35        return False
36
37    for stored_entry in entries.select_entries():
38        if ratio(content, stored_entry.content) > 0.7:
39            return False
40
41    return True
42
43register_filter(levenshtein)
Note: See TracBrowser for help on using the browser.