2013-03-24 95 views
1

我有一個地圖[字符串,字符串]其中最後一個鍵,值對是「文本」 - >文檔的文本。我希望計算文檔中每個單詞的計數,並且我正在考慮讓每個文檔中有單詞數量的另一個映射。 我有一張地圖,如地圖(「id」 - > 12,「文字」 - >「狗喜歡貓」),我試圖得到另一個地圖是地圖(「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 
} 

我不知道如何重置計數映射,因爲我想的話單獨計數爲每個文件。

回答

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)