You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
1.2 KiB

package main
import (
"bufio"
"fmt"
"io/ioutil"
"os"
"strconv"
"strings"
)
func readTxt(path string) (string, error) {
data, err := ioutil.ReadFile(path)
if err != nil {
//Do something
}
dataClean := strings.Replace(string(data), "\n", " ", -1)
content := string(dataClean)
return content, err
}
func main() {
fmt.Print("entry the first word: ")
newcommand := bufio.NewReader(os.Stdin)
firstWord, _ := newcommand.ReadString('\n')
firstWord = strings.TrimSpace(firstWord)
fmt.Print("first word: ")
fmt.Println(firstWord)
fmt.Println("how many words you want on the text?")
newcommand = bufio.NewReader(os.Stdin)
answer, _ := newcommand.ReadString('\n')
answer = strings.TrimSpace(answer)
fmt.Print("Number of words on text to generate: ")
fmt.Println(answer)
count, err := strconv.Atoi(answer)
if err != nil {
fmt.Println("incorrect entry, need a positive number")
}
text, _ := readTxt("text.txt")
fmt.Println("generating markov chains")
states := markov.train(text)
fmt.Println("generating text")
generatedText := markov.generateText(states, firstWord, count)
fmt.Println("")
fmt.Println("generated text")
fmt.Println("\x1b[32;1m" + generatedText + "\x1b[0m")
}