argos/analyzeWords.go
analyzeWords.goRaw
1package main
2
3import (
4 "fmt"
5 "sort"
6 "strings"
7
8 "github.com/dghubble/go-twitter/twitter"
9)
10
11func sortMapWords(m map[string]int) map[int][]string {
12 n := map[int][]string{}
13 var a []int
14 for k, v := range m {
15 if v > minNumWords {
16 n[v] = append(n[v], k)
17 }
18 }
19 for k := range n {
20 a = append(a, k)
21 }
22 sort.Sort(sort.Reverse(sort.IntSlice(a)))
23 for _, k := range a {
24 for _, s := range n[k] {
25 fmt.Printf("%d - %s,\n", k, s)
26 }
27 }
28 return n
29}
30
31func mapWords(text string, words map[string]int) {
32 s := strings.Split(text, " ")
33
34 for _, v := range s {
35 if _, ok := words[v]; ok {
36 words[v] = words[v] + 1
37 } else {
38 words[v] = 1
39 }
40 }
41}
42func analyzeWords(tweets []twitter.Tweet) {
43 var words = make(map[string]int)
44
45 for _, v := range tweets {
46 mapWords(v.Text, words)
47 }
48
49 fmt.Println(len(words))
50 //get sorted list of frequency words
51 _ = sortMapWords(words)
52 fmt.Println(" ")
53}