を削除するジェフ・アトウッドによって回答に基づいてエントロピー計算です:http://en.wikipedia.org/wiki/Entropy_(information_theory)に基づいていHow to calculate the entropy of a file?:はここで変更可能な和VAR
object MeasureEntropy extends App {
val s = "measure measure here measure measure measure"
def entropyValue(s: String) = {
val m = s.split(" ").toList.groupBy((word: String) => word).mapValues(_.length.toDouble)
var result: Double = 0.0;
val len = s.split(" ").length;
m map {
case (key, value: Double) =>
{
var frequency: Double = value/len;
result -= frequency * (scala.math.log(frequency)/scala.math.log(2));
}
}
result;
}
println(entropyValue(s))
}
私はに関連する可変状態を除去することによって、これを改善したいと思います:
var result: Double = 0.0;
result
をmap
関数で計算するにはどうすればよいですか?
ヒント:foldLeft –