C#計算兩字符串相似度
當前位置:點晴教程→知識管理交流
→『 技術(shù)文檔交流 』
private void button1_Click(object sender, EventArgs e) { this.textBox3.Text = "相似度:" + ComputeTextSame(this.textBox1.Text, this.textBox2.Text, false).ToString(); } public static double ComputeTextSame(string textX, string textY, bool isCase = false) // 計算文本相似度函數(shù)(適用于短文本) { if (textX.Length <= 0 || textY.Length <= 0) { return (0); } if (!isCase) { textX = textX.ToLower(); textY = textY.ToLower(); } int[,] dp = new int[Math.Max(textX.Length, textY.Length) + 1, Math.Max(textX.Length, textY.Length) + 1]; for (int x = 0; x < textX.Length; x++) { for (int y = 0; y < textY.Length; y++) { if (textX[x] == textY[y]) { dp[x + 1, y + 1] = dp[x, y] + 1; } else { dp[x + 1, y + 1] = Math.Max(dp[x, y + 1], dp[x + 1, y]); } } } return (Math.Round(((double)(dp[textX.Length, textY.Length]) / Math.Max(textX.Length, textY.Length)) * 100, 2)); } 該文章在 2023/3/22 15:41:22 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |