備忘録

備忘録

C#で文字列の類似度を求める方法

Ⅰ. はじめに

タイトルの通り「C#で文字列の類似度を求める方法」です。

Ⅱ. やり方

1. 必要なパッケージをNuGetからインストールする
dotnet add package Fastenshtein --version 1.0.0.8
2. サンプルプログラムを書く
using Fastenshtein;

static double GetStringDiffRate(string str1, string str2)
{
  var levenshteinDistance = Levenshtein.Distance(str1, str2);
  var length = (str1.Length > str2.Length) ? str1.Length : str2.Length;
  var diffRatio = 1.0 - ((double)levenshteinDistance / length);
  return diffRatio;
}

static void Main()
{
  var diffRate = GetStringDiffRate("abcd1", "abcd2");
  Console.WriteLine(diffRate);
}

実行結果

0.8