2 つのテキスト ボックスを比較して、同じ単語と異なる単語の数を数える方法を見つけましたが、同じ単語と異なる単語の数を正確に示すのではなく、パーセンテージを計算できますか?それらの違いは?
私が混乱した人のために、この投稿の下にこのメッセージ全体をもう一度書き、いくつかの単語を変更し、いくつかの単語を削除した場合、プログラムからフィードバックを得ることができ、違いは 14% 程度であることがわかりました...
次を使用して単語を取得できますstring.Split
。
String[] words1 = Textbox1.Text.Split();
String[] words2 = Textbox2.Text.Split();
Linq を使用して両方を比較できます。
var sameWordsInBoth = words1.Intersect(words2);
int count1 = sameWordsInBoth.Count();
var inTxt1ButNotInTxt2 = words1.Except(words2);
int count2 = inTxt1ButNotInTxt2.Count();
var inTxt2ButNotInTxt1 = words2.Except(words1);
int count3 = inTxt2ButNotInTxt1.Count();
パーセンテージを取得するには、合計単語数 (fe words1.Length
) を数え、それを他の数と比較するだけです。
例えば:
double sameWordPercentage = (1.0 * count1 / words1.Length) * 100;
あなたはすでにユニークな単語の量を持っていると言ったので、それらを取得する方法についての説明は必要ありません:
double UniqueWordCount = 71;
double TotalWordCount = 231;
double Percentile = (UniqueWordCount/TotalWordCount)*100;
答え : 30.7359.... %
丸めたい場合
Math.Round(Percentile,2)
答え : 30.74 %