34 lines
851 B
C#
34 lines
851 B
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Linq;
|
|
|
|
namespace MarkovGrams
|
|
{
|
|
class MainClass
|
|
{
|
|
public static void Main(string[] args)
|
|
{
|
|
if(args.Length != 4)
|
|
{
|
|
Console.WriteLine("Usage:");
|
|
Console.WriteLine(" ./MarkovGrams.exe <wordlist.txt> <order> <length> <count>");
|
|
return;
|
|
}
|
|
|
|
string wordlistFilename = args[0];
|
|
int order = int.Parse(args[1]);
|
|
int desiredStringLength = int.Parse(args[2]);
|
|
int count = int.Parse(args[3]);
|
|
|
|
IEnumerable<string> words = File.ReadLines(wordlistFilename).SelectMany(word => word.Trim().Split(' '));
|
|
IEnumerable<string> ngrams = NGrams.GenerateFlat(words, order);
|
|
|
|
UnweightedMarkovChain chain = new UnweightedMarkovChain(ngrams);
|
|
|
|
for(int i = 0; i < count; i++)
|
|
Console.WriteLine(chain.Generate(desiredStringLength));
|
|
}
|
|
}
|
|
}
|