arnaucube
arnaucube/argosPublic Self-hosted repository
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}