MarkovGrams/MarkovGrams/Program.cs

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));
}
}
}