Funktion DICECOEFFICIENT( )

Gibt den Dice-Koeffizienten von zwei angegebenen Zeichenfolgen zurück. Er misst, wie ähnlich die beiden Zeichenfolgen sind.

Syntax

DICECOEFFICIENT(Zeichenfolge1; Zeichenfolge2 <;N-Gramm>)

Parameter

Name Typ Beschreibung
Zeichenfolge1 Zeichen Die erste Zeichenfolge des Vergleichs.
Zeichenfolge2 Zeichen Die zweite Zeichenfolge des Vergleichs.

N-Gramm

Optional

numerisch

Die Länge des zu verwendenden N-Gramms.

Geben Sie eine ganze Zahl ab 1 an. Wenn die N-Gramm-Länge angehoben wird, wird die Ähnlichkeit der beiden Zeichenfolgen strikter bewertet.

Wenn Sie keine Länge angeben, wird die Standardlänge 2 verwendet.

N-Gramme sind sich überlappende Teilzeichenfolgen (Zeichenblöcke), in die Vergleichszeichenfolgen im Rahmen der Berechnung des Dice-Koeffizienten aufgeteilt werden.

Detaillierte Informationen finden Sie unter Bemerkungen.

Ausgabe

Numerisch. Der Wert ist der Dice-Koeffizient der beiden Zeichenfolgen, der dem Prozentsatz der Gesamtanzahl identischer N-Gramme in den beiden Zeichenfolgen entspricht. der von 0,0000 bis 1,0000 schwanken kann (inklusive).

Beispiele

Einfache Beispiele

Wie sich die Länge des N-Gramms auf das Ergebnis auswirkt

Die drei folgenden Beispiele vergleichen dieselben beiden Zeichenfolgen. Das Ausmaß der gemeldeten Ähnlichkeit hängt von der angegebenen N-Gramm-Länge ab.

Gibt „0,9167“ zurück (mit der N-Gramm-Standardlänge (2) sind die N-Gramme der beiden Zeichenfolgen zu 92% identisch):

DICECOEFFICIENT("125 SW 39TH ST, Suite 100";"Suite 100, 125 SW 39TH ST")

Gibt „1,0000“ zurück (mit der N-Gramm-Länge „1“ sind die N-Gramme der beiden Zeichenfolgen zu 100% identisch):

DICECOEFFICIENT("125 SW 39TH ST, Suite 100";"Suite 100, 125 SW 39TH ST"; 1)

Gibt „0,8261“ zurück (mit der N-Gramm-Länge „3“ sind die N-Gramme der beiden Zeichenfolgen zu 83% identisch):

DICECOEFFICIENT("125 SW 39TH ST, Suite 100";"Suite 100, 125 SW 39TH ST"; 3)

Feldeingabe

Gibt den Dice-Koeffizienten jedes Werts im Feld Adresse bei einem Vergleich mit der Zeichenfolge „125 SW 39TH ST, Suite 100“ zurück (basierend auf der N-Gramm-Standardlänge von „2“):

DICECOEFFICIENT(Adresse;"125 SW 39TH ST, Suite 100")

Weiterführende Beispiele

Mit transponierten Elementen arbeiten

Indem Sie die N-Gramm-Länge verringern und unnötige Zeichen entfernen, können Sie DICECOEFFICIENT( ) bei der Suche nach transponierten Elementen optimieren.

Gibt „0,7368“ zurück (mit der N-Gramm-Standardlänge (2) sind die N-Gramme der beiden Zeichenfolgen zu 74% identisch):

DICECOEFFICIENT("John Smith";"Smith, John")

Gibt „1,0000“ zurück (indem das Komma zwischen dem Nachnamen und dem Vornamen ausgeschlossen und die N-Gramm-Länge „1“ verwendet wird, sind die N-Gramme der beiden Zeichenfolgen zu 100% identisch):

DICECOEFFICIENT("John Smith"; EXCLUDE("Smith, John"; ","); 1)

Rangfolge von Werten auf Basis von „125 SW 39TH ST, Suite 100“ erstellen

Erstellen Sie das Kalkulationsfeld Dice_Co, um den Dice-Koeffizienten zwischen „125 SW 39TH ST, Suite 100“ und jedem Wert innerhalb des Felds Adresse anzuzeigen:

DEFINE FIELD Dice_Co COMPUTED DICECOEFFICIENT(Adresse;"125 SW 39TH ST, Suite 100")

Fügen Sie das Kalkulationsfeld Dice_Co der Ansicht hinzu. Nehmen Sie dann eine Schnellsortierung in absteigender Reihenfolge vor, damit alle Werte im Feld Adresse nach ihrer Ähnlichkeit mit „125 SW 39TH ST, Suite 100“ aufgelistet werden.

Fuzzy-Duplikate für „125 SW 39TH ST, Suite 100“ isolieren

Erstellen Sie einen Filter, der alle Werte des Felds Adresse innerhalb einer festgelegten Ähnlichkeit mit „125 SW 39TH ST, Suite 100“ isoliert:

SET FILTER TO DICECOEFFICIENT(Adresse;"125 SW 39TH ST, Suite 100") > 0,5

Durch eine Änderung der Zahl im Ausdruck können Sie den Grad der Ähnlichkeit in den gefilterten Werten anpassen.

Bemerkungen

Wann Sie DICECOEFFICIENT( ) verwenden sollen

Verwenden Sie DICECOEFFICIENT( ), um nahezu identische Werte (Fuzzy-Duplikate) zu suchen. Sie können DICECOEFFICIENT( ) auch verwenden, um Werte mit identischen oder fast identischen Inhalten, aber transponierten Elementen zu finden. Beispiel:

  • Telefonnummern oder Sozialversicherungsnummern mit transponierten Ziffern
  • Versionen mit derselben Adresse, die unterschiedlich formatiert sind

Funktionsweise

DICECOEFFICIENT( ) gibt den Dice-Koeffizienten der zwei ausgewerteten Zeichenfolgen zurück. Der Dice-Koeffizient misst die Ähnlichkeit der beiden Zeichenfolgen auf einer Skala von 0,0000 bis 1,0000. Je größer der zurückgegebene Wert ist, umso ähnlicher sind sich die beiden Zeichenfolgen:

  • 1,0000 – deutet an, dass sich jede Zeichenfolge aus identischen Zeichen zusammensetzt, obwohl die Zeichen womöglich unterschiedlich angeordnet sind und sich die Groß- und Kleinschreibung unterscheiden kann.

  • 0,7500 – bedeutet, dass die N-Gramme der beiden Zeichenfolgen zu 75% identisch sind.

  • 0,0000 – bedeutet, dass die beiden Zeichenfolgen keine gemeinsamen N-Gramme (unten erläutert) beinhalten oder die für die Berechnung verwendete Länge der N-Gramme größer ist als die kürzere der beiden Vergleichszeichenfolgen.

Verwendungstipps

  • Filtern oder Sortieren Wenn man die Werte über ein Feld mit ihrem Dice-Koeffizienten filtert oder sortiert, findet man diejenigen Werte, die der Vergleichszeichenfolge am ähnlichsten sind.
  • Unterscheidung von Groß- und Kleinschreibung Die Funktion berücksichtigt die Groß- und Kleinschreibung nicht, sodass beispielsweise „SMITH“ und „smith“ gleichwertig sind.
  • Führende und nachgestellte Leerzeichen Die Funktion schneidet automatisch führende und nachgestellte Leerzeichen in Feldern ab, sodass die TRIM( )- oder ALLTRIM( )-Funktionen nicht verwendet werden müssen, wenn ein Feld als Parameter angegeben wird.
  • Generische Elemente entfernen Die OMIT( )- und EXCLUDE( )-Funktionen können die Effektivität der DICECOEFFICIENT( )-Funktion verbessern, indem generische Elemente wie „Corporation“ oder „Inc.“ bzw. Zeichen wie Kommas, Punkte und das Kaufmannsund (&) aus den Feldwerten entfernt werden.

    Durch das Entfernen generischer Elemente und Satzzeichen konzentriert sich der Zeichenfolgenvergleich mit DICECOEFFICIENT( ) nur auf den Teil der Zeichenfolge, in dem aussagekräftige Unterschiede auftreten.

Wie der Dice-Koeffizient berechnet wird

Der Dice-Koeffizient ist der Prozentsatz der Gesamtanzahl identischer N-Gramme in den beiden Zeichenfolgen.

Der Dice-Koeffizient wird berechnet, indem die zu vergleichenden Zeichenfolgen zuerst in N-Gramme aufgeteilt werden. N-Gramme (auch als Q-Gramme bezeichnet) sind sich überlappende Teilzeichenfolgen oder Zeichenblöcke mit einer Länge von n. Mit dem Parameter N-Gramm können Sie die Länge von n festlegen oder die Standardlänge 2 akzeptieren.

Zwei in N-Gramme aufgeteilte Namen

Hier sind die Namen „John Smith“ und „Smith, John D.“ in N-Gramme der Länge 2 aufgeteilt sowie in N-Gramme der Länge 3. Unterstriche deuten Leerzeichen an. Interne Leerzeichen und Zeichensetzung werden als Zeichen gezählt.

Länge des N-Gramms

„John Smith“ N-Gramme

„Smith, John D.“ N-Gramme

2

Jo | oh | hn | n_ | _S | Sm | mi | it | th

Sm | mi | it | th | h, | ,_ | _J | Jo | oh | hn | n_ | _D | D.

3

Joh | ohn | hn_ | n_S | _Sm | Smi | mit | ith

Smi | mit | ith | th, | h,_ | ,_J | _Jo | Joh | ohn | hn_ | n_D | _D.

Formel des Dice-Koeffizienten

Sobald die N-Gramme für zwei zu vergleichende Zeichenfolgen festgelegt wurden, wird die Berechnung mit der folgenden Formel abgeschlossen:

  • 2 x Anzahl der gemeinsamen N-Gramme / Gesamtanzahl der N-Gramme in beiden Zeichenfolgen

Gemeinsame N-Gramme sind N-Gramme, die in beiden Zeichenfolgen vorkommen. „ABC“ und „BCD“ haben beispielsweise das gemeinsame N-Gramm „BC“, wenn man von einer Länge der N-Gramme von 2 ausgeht (AB | BC und BC | CD).

Beispiele für die Berechnung des Dice-Koeffizienten

Die folgende Tabelle veranschaulicht den Dice-Koeffizienten für die beiden Zeichenfolgen „John Smith“ und „Smith, John D.“ mit unterschiedlichen N-Gramm-Längen.

Beachten Sie, dass der Wert des Dice-Koeffizienten sinkt und dadurch eine geringere Ähnlichkeit andeutet, sobald die Länge der N-Gramme für dieselben Zeichenfolgen angehoben wird. Auch wenn die Zeichenfolgen identisch bleiben, wird die Ähnlichkeit strikter beurteilt, weil die Zeichenfolgen in längere N-Gramme aufgeteilt werden. Dies hat zur Folge, dass längere Zeichensequenzen eines N-Gramms identisch sein müssen, um als gemeinsam betrachtet zu werden.

Man kann sich dies auch dadurch veranschaulichen, dass die relative Position von Zeichen stärker gewichtet wird, wenn man die Länge der N-Gramme erhöht. Im Gegensatz hierzu wird die relative Zeichenposition überhaupt nicht berücksichtigt, wenn man als N-Gramm-Länge den Wert 1 festlegt. Die relative Position bezieht sich auf die Position der Zeichen im Verhältnis zueinander und nicht auf ihre absolute Position innerhalb einer Zeichenfolge.

Tipp

Wenn Sie spezifisch nach einem Buchstabendreher suchen, verwenden Sie eine N-Gramm-Länge von 1.

Länge des N-Gramms

„John Smith“ N-Gramme

„Smith, John D.“ N-Gramme

Gemeinsame N-Gramme

Dice-Koeffizient

1

J | o | h | n | _ | S | m | i | t | h

(10 N-Gramme)

S | m | i | t | h | , | _ | J | o | h | n | _ | D | .

(14 N-Gramme)

10

2x10 / (10+14) = 0,8333

2

(Grundwert)

Jo | oh | hn | n_ | _S | Sm | mi | it | th

(9 N-Gramme)

Sm | mi | it | th | h, | ,_ | _J | Jo | oh | hn | n_ | _D | D.

(13 N-Gramme)

8

2x8 / (9+13) = 0,7273

3

Joh | ohn | hn_ | n_S | _Sm | Smi | mit | ith

(8 N-Gramme)

Smi | mit | ith | th, | h,_ | ,_J | _Jo | Joh | ohn | hn_ | n_D | _D.

(12 N-Gramme)

6

2x6 / (8+12) = 0,6000

4

John | ohn_ | hn_S | n_Sm | _Smi | Smit | mith

(7 N-Gramme)

Smit | mith | ith, | th,_ | h,_J | ,_Jo | _Joh | John | ohn_ | hn_D | n_D.

(11 N-Gramme)

4

2x4 / (7+11) = 0,4444

DICECOEFFICIENT( ) im Vergleich mit ISFUZZYDUP( ) und LEVDIST( )

Einer der Hauptunterschiede zwischen der Funktion DICECOEFFICIENT( ) und den Funktionen LEVDIST( ) sowie ISFUZZYDUP( ) (welche die Levenshtein-Distanz verwenden) besteht darin, dass DICECOEFFICIENT( ) die relative Position von Zeichen oder Zeichenblöcken der beiden Vergleichszeichenfolgen weniger stark beachtet oder diese vollständig ignoriert. Die relative Position ist in Funktionen auf Basis der Levenshtein-Distanz jedoch wichtig.

Vergleichswerte mit Transposition

Wenn Sie Zeichenfolgen wie Adressen vergleichen, in denen gesamte Elemente transponiert sein könnten, ist DICECOEFFICIENT( ) möglicherweise die bessere Wahl. Dieselbe Adresse mit dem transponierten Element „Suite“ wird durch DICECOEFFICIENT( ) beispielsweise als sehr ähnlich, aber durch LEVDIST( ) als sehr unterschiedlich eingeschätzt:

Adresspaar

Dice-Koeffizient

(Standard-N-Gramm von 2)

Levenshtein-Distanz

  • 125 SW 39TH ST, Suite 100

  • Suite 100, 125 SW 39TH ST

0,9167

22

(je größer die Levenshtein-Distanz, desto stärker weichen die zwei Zeichenfolgen ab)

Vergleichswerte ohne Transposition

Wenn Buchstabendreher ein geringeres Problem darstellen, liefert LEVDIST( ) möglicherweise nützlichere Ergebnisse. Dieselbe Gesellschaft mit unterschiedlichen Satzzeichen wird durch DICECOEFFICIENT( ) beispielsweise als sehr unterschiedlich, aber durch LEVDIST( ) als sehr ähnlich eingeschätzt:

Gesellschaftsnamen

Dice-Koeffizient

(Standard-N-Gramm von 2)

Levenshtein-Distanz

  • AVS, Inc

  • A.V.S. Inc

0,3750

3
Leitfaden für die Skripterstellung in ACL 14.1