【发布时间】:2012-08-28 19:36:50
【问题描述】:
假设你有
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
效果很好,但我想知道如何以更“实用”的方式做到这一点,而无需使用可变映射?
【问题讨论】: