我有一个Map [String,String],其中最后一个键,值对是“Text” - >文档的文本。我希望计算文档中每个单词的计数,并且我正在考虑使用另一个在每个文档中都有单词计数的地图。 我有一张地图,如地图(“id” - > 12,“text” - >“狗喜欢猫”),我正在尝试获取另一张地图,即地图(“The” - > 2,“狗“ - →1,”喜欢“ - →1,”猫“ - →1) 我有以下代码:
val Counts = mutable.Map[String, Int]().withDefault(x=>0)
var tfCounts:Map[String,Int]()
for(i<-1 to newsMap.size){
val tfMap = newsMap.get("newsText").slice(i-1,i).map(x => x.split("\\s+")).toList
for(token<-tfMap)
counts(token) +=1
tfCounts = tfCounts++ counts
}
我不知道如何重置计数图,因为我想为每个文档单独计算单词数。
答案 0 :(得分:3)
scala> val document = Map("id"->12,"text"->"The dog likes the cat")
document: scala.collection.immutable.Map[String,Any] = Map(id -> 12, text -> The dog likes the cat)
scala> document("text").asInstanceOf[String].split(" ").groupBy(_.toLowerCase).mapValues(_.size)
res3: scala.collection.immutable.Map[String,Int] = Map(cat -> 1, dog -> 1, likes -> 1, the -> 2)