LevenshteinDistance: Unterschied zwischen den Versionen

Aus JACK Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „=== Beschreibung === Die Funktion ''levenshteinDistance'' berechnet die Levenshtein-Distanz [https://de.wikipedia.org/wiki/Levenshtein-Distanz] zwischen zwei Z…“)
 
 
(5 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Vorlage:Warnung|Warnung=Diese Seite beinhaltet eine Evaluator-Funktion im JACK3 System.}}
===Zugehörige Evaluatoren===
*'''MathEvaluator'''
=== Beschreibung ===
=== Beschreibung ===
Die Funktion ''levenshteinDistance'' berechnet die Levenshtein-Distanz [https://de.wikipedia.org/wiki/Levenshtein-Distanz] zwischen zwei Zeichenketten. Die Funktion erwartet zwei Strings und gibt eine Zahl zurück.
Die Funktion ''levenshteinDistance'' berechnet die Levenshtein-Distanz [https://de.wikipedia.org/wiki/Levenshtein-Distanz] zwischen zwei Zeichenketten. Die Funktion erwartet zwei Strings und gibt eine Zahl zurück.
Zeile 14: Zeile 19:
=== Beispiele ===
=== Beispiele ===
  levenshteinDistance('Hallo','Hallo')  --> returns 0
  levenshteinDistance('Hallo','Hallo')  --> returns 0
  levenshteinDistance('Hallo','JACK')  --> returns 5
  levenshteinDistance('Hallo','JACK')  --> returns 5
  levenshteinDistance('Hallo','Holla')  --> returns 2
  levenshteinDistance('Hallo','Holla')  --> returns 2
====JUnit Tests====
<span class="mw-customtoggle-myDivision">[Anzeigen]</span>
<syntaxhighlight lang="java" class="mw-collapsible mw-collapsed" id="mw-customcollapsible-myDivision">
private static Function func = new LevenshteinDistance();
@Test
public void testCompareToEqualStrings() throws EvaluatorException, OpenMathException {
List<Object> args = new ArrayList<Object>();
args.add(OMCreator.createOMSTR("Test"));
args.add(OMCreator.createOMSTR("Test"));
Object result = func.evaluate(args);
assertEquals(OMCreator.createOMI(0), result);
}
@Test
public void testCompareToNotEqualStrings() throws EvaluatorException, OpenMathException {
List<Object> args = new ArrayList<Object>();
args.add(OMCreator.createOMSTR("Testin"));
args.add(OMCreator.createOMSTR("Tester"));
Object result = func.evaluate(args);
assertEquals(OMCreator.createOMI(2), result);
}
@Test
public void testCompareToIntegration() throws EvaluatorException, OpenMathException {
OMOBJ omobj = ExpressionParser.parse("levenshteinDistance('Hallo', 'Test')", null, null);
OMOBJ result = OMCreator.createOMOBJ(OMToResultVisitor.getInstance().visit(omobj));
assertEquals(OMCreator.createOMI(5), result.getOMI());
}
@Test(expected = FunctionInvalidNumberOfArgumentsException.class)
public void testCompareToWithLessThanMinParam() throws EvaluatorException, OpenMathException {
OMOBJ omobj = ExpressionParser.parse("levenshteinDistance('Test')", null, null);
OMToResultVisitor.getInstance().visit(omobj);
fail();
}
@Test(expected = FunctionInvalidNumberOfArgumentsException.class)
public void testCompareToWithMoreThanMaxParam() throws EvaluatorException, OpenMathException {
OMOBJ omobj = ExpressionParser.parse("levenshteinDistance('Test', 'Test', 'Test')", null, null);
OMToResultVisitor.getInstance().visit(omobj);
fail();
}
@Test(expected = FunctionInvalidArgumentTypeException.class)
public void testCompareToWithWrongArguments() throws EvaluatorException, OpenMathException {
OMOBJ omobj = ExpressionParser.parse("compareTo('Test', vector(2))", null, null);
OMToResultVisitor.getInstance().visit(omobj);
fail();
}
</syntaxhighlight>


=== Hinweise ===
=== Hinweise ===
* Die Funktion unterscheidet zwischen Groß- und Kleinschreibung.
* Die Funktion unterscheidet zwischen Groß- und Kleinschreibung.
* Die Rückgabe ist immer 0 oder einen positive Zahl.
* Die Rückgabe ist immer 0 oder einen positive Zahl.
* Weitere Funktionen die die Distanz von zwei Zeichenketten berechnen sind die [[HammingDistance]], die [[jaccardDistance]] und die [[jaroWinklerDistance]].


[[Kategorie:Evaluatorfunktion]][[Kategorie:Zeichenkettenfunktionen]]
[[Kategorie:Math-Evaluatorfunktion]][[Kategorie:Zeichenkettenfunktionen]][[Kategorie:JACK3]]

Aktuelle Version vom 17. April 2024, 09:38 Uhr

Diese Seite beinhaltet eine Evaluator-Funktion im JACK3 System.

Zugehörige Evaluatoren

  • MathEvaluator

Beschreibung

Die Funktion levenshteinDistance berechnet die Levenshtein-Distanz [1] zwischen zwei Zeichenketten. Die Funktion erwartet zwei Strings und gibt eine Zahl zurück.

Syntax

levenshteinDistance(Zeichenkette zeichenkette1, Zeichenkette zeichenkette2)

Parameter

  • zeichenkette1 - erste zu vergleichende Zeichenkette
  • zeichenkette2 - zweite zu vergleichende Zeichenkette

Return Value

  • Gibt eine Zahl zurück

Beispiele

levenshteinDistance('Hallo','Hallo')   --> returns 0

levenshteinDistance('Hallo','JACK')   --> returns 5

levenshteinDistance('Hallo','Holla')   --> returns 2

Hinweise

  • Die Funktion unterscheidet zwischen Groß- und Kleinschreibung.
  • Die Rückgabe ist immer 0 oder einen positive Zahl.
  • Weitere Funktionen die die Distanz von zwei Zeichenketten berechnen sind die HammingDistance, die jaccardDistance und die jaroWinklerDistance.