あなたが持っていると仮定します
val docs = List(List("one", "two"), List("two", "three"))
ここで、たとえば List("one", "two") は用語 "one" と "two" を含むドキュメントを表し、各用語のドキュメント頻度でマップを作成したい場合、つまりこの場合
Map("one" -> 1, "two" -> 2, "three" -> 1)
Scala でそれを行うにはどうすればよいでしょうか。(そして、はるかに大きなデータセットを想定すると、効率的な方法で。)
私の最初のJavaのような考えは、可変マップを使用することです:
val freqs = mutable.Map.empty[String,Int]
for (doc <- docs)
for (term <- doc)
freqs(term) = freqs.getOrElse(term, 0) + 1
これは十分に機能しますが、変更可能なマップに頼らずに、より「機能的な」方法でそれを行うにはどうすればよいでしょうか?