Reputation: 146
I want the word count in vectors, for example,
My Vectors are:
Vector(pen, pencil, pen pencil)
Vector(pencil, book, eraser, pencil book, pencil eraser, book eraser, pencil book eraser)
Vector(pen, pencil, book, pen pencil, pen book, pencil book, pen pencil book)
I want the count as,
(pen,2)
(pencil,3)
(pen pencil,2)
(book,2)
(eraser,1)
(pencil book,2)
(pencil eraser,1)
(book eraser,1)
(pencil book eraser,1)
(pen book,1)
(pen pencil book,1)
Upvotes: 0
Views: 257
Reputation: 15074
Here's a quick solution (may not be the most efficient, if that is a concern):
val v1 = Vector("pen", "pencil", "pen pencil")
val v2 = Vector("pencil", "book", "eraser", "pencil book", "pencil eraser", "book eraser", "pencil book eraser")
val v3 = Vector("pen", "pencil", "book", "pen pencil", "pen book", "pencil book", "pen pencil book")
(v1 ++ v2 ++ v3).groupBy(v => v).mapValues(_.size)
res1: scala.collection.immutable.Map[String,Int] = Map(pencil book eraser -> 1, pencil eraser -> 1, eraser -> 1, book eraser -> 1, pen pencil -> 2, book -> 2, pen pencil book -> 1, pencil -> 3, pen -> 2, pen book -> 1, pencil book -> 2)
Upvotes: 3