blob: 770acd93f00fad8f5194298da2756889adf8792d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
package bjc.rgens.text.markov;
import java.io.*;
/**
* Generate text from a markov model of an input text
*
* @author ben
*
*/
public class TextGenerator {
/**
* @param args
* when used with three arguments, the first represents the
* k-order of the Markov objects. The second represents the
* number of characters to print out. The third represents
* the file to be read.
*
* When used with two arguments, the first represents the
* k-order of the Markov objects, and the second represents
* the file to be read. The generated text will be the same
* number of characters as the original file.
*/
public static void main(String[] args) {
int k = 0;
int M = 0;
String file = "";
StringBuilder text = new StringBuilder();
if (args.length == 3) {
k = Integer.parseInt(args[0]);
M = Integer.parseInt(args[1]);
file = args[2];
} else if (args.length == 2) {
k = Integer.parseInt(args[0]);
file = args[1];
} else {
System.out
.println("\n" + "Usage: java TextGenerator k M file");
System.out.println(
"where k is the markov order, M is the number");
System.out.println(
"of characters to be printed, and file is the");
System.out.println(
"name of the file to print from. M may be left out."
+ "\n");
System.exit(1);
}
StandaloneMarkov markov = null;
try (FileReader reader = new FileReader(file)) {
markov = StandaloneTextGenerator.generateMarkovMap(k,
reader);
System.out.println(markov.generateTextFromMarkov(M)
.substring(0, Math.min(M, text.length())));
} catch (FileNotFoundException e) {
System.out.println("File not found.");
e.printStackTrace();
System.exit(1);
} catch (IOException ioex) {
System.out.println("IOException");
ioex.printStackTrace();
System.exit(1);
}
}
}
|