added progress bar on generating Markov states

This commit is contained in:
arnaucode
2017-04-22 21:44:14 +02:00
parent 0068854d5f
commit 13e26f1c71
2 changed files with 17 additions and 3 deletions

View File

@@ -9,7 +9,7 @@ import (
"strings" "strings"
) )
func readText(path string) (string, error) { func readTxt(path string) (string, error) {
data, err := ioutil.ReadFile(path) data, err := ioutil.ReadFile(path)
if err != nil { if err != nil {
//Do something //Do something
@@ -38,10 +38,11 @@ func main() {
fmt.Println("incorrect entry, need a positive number") fmt.Println("incorrect entry, need a positive number")
} }
text, _ := readText("text.txt") text, _ := readTxt("text.txt")
fmt.Println("generating text") fmt.Println("generating markov chains")
states := markov.train(text) states := markov.train(text)
fmt.Println("generating text")
generatedText := markov.generateText(states, firstWord, count) generatedText := markov.generateText(states, firstWord, count)
fmt.Println("") fmt.Println("")
fmt.Println(generatedText) fmt.Println(generatedText)

View File

@@ -18,6 +18,17 @@ type State struct {
var markov Markov var markov Markov
func printLoading(n int, total int) {
var bar []string
tantPerFourty := int((float64(n) / float64(total)) * 40)
tantPerCent := int((float64(n) / float64(total)) * 100)
for i := 0; i < tantPerFourty; i++ {
bar = append(bar, "█")
}
progressBar := strings.Join(bar, "")
fmt.Printf("\r " + progressBar + " - " + strconv.Itoa(tantPerCent) + "%")
}
func addWordToStates(states []State, word string) ([]State, int) { func addWordToStates(states []State, word string) ([]State, int) {
iState := -1 iState := -1
for i := 0; i < len(states); i++ { for i := 0; i < len(states); i++ {
@@ -48,6 +59,8 @@ func calcMarkovStates(words []string) []State {
if iState < len(words) { if iState < len(words) {
states[iState].NextStates, _ = addWordToStates(states[iState].NextStates, words[i+1]) states[iState].NextStates, _ = addWordToStates(states[iState].NextStates, words[i+1])
} }
printLoading(i, len(words))
} }
//count prob //count prob