1
以下のコードは仕事をしますが、時間がかかります。私が既にMongoDBの文字列として保存した2つのHTMLファイルの内容を比較しています。そして、文字列の長さは約30K +であり、比較するレコードは約250K +です。したがって、仕事にはかなりの時間がかかります。2つの文字列を比較して類似度を求める方法
プラグインを使用する方が簡単ですか、またかなり速いですか?
private int ComputeCost(string input1, string input2)
{
if (string.IsNullOrEmpty(input1))
return string.IsNullOrEmpty(input2) ? 0 : input2.Length;
if (string.IsNullOrEmpty(input2))
return string.IsNullOrEmpty(input1) ? 0 : input1.Length;
int input1Length = input1.Length;
int input2Length = input2.Length;
int[,] distance = new int[input1Length + 1, input2Length + 1];
for (int i = 0; i <= input1Length; distance[i, 0] = i++) ;
for (int j = 0; j <= input2Length; distance[0, j] = j++) ;
for (int i = 1; i <= input1Length; i++)
{
for (int j = 1; j <= input2Length; j++)
{
int cost = (input2[j - 1] == input1[i - 1]) ? 0 : 1;
distance[i, j] = Math.Min(
Math.Min(distance[i - 1, j] + 1, distance[i, j - 1] + 1),
distance[i - 1, j - 1] + cost);
}
}
return distance[input1Length, input2Length];
}
"[Soundex](https://en.wikipedia.org/wiki/Soundex)"は何ですか? –
あなたは* Edit Distance *、https://en.wikipedia.org/wiki/Edit_distanceを計算していますか? –
なぜデータベース自体の文字列を比較していませんか?私はそれが通常より速いので、試してみましょう。 – danny