Changed gitignore

This commit is contained in:
Rasmus Rasmussen 2025-04-17 10:25:48 +02:00
parent 3e4a3949f8
commit 6282edcc13
3 changed files with 129 additions and 0 deletions

4
.gitignore vendored
View File

@ -77,3 +77,7 @@ fabric.properties
# Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser
*/bin
*/obj
*/bin/*
*/obj/*

View File

@ -0,0 +1,35 @@
using System.Net;
using System.Text;
namespace Tarpit;
public static class ServerUtils
{
public static async Task ProcessRequestAsync(HttpListenerContext context)
{
HttpListenerRequest request = context.Request;
HttpListenerResponse response = context.Response;
// Determine the next HTML chunk to send
const string htmlChunk = "<html><head><title>Progressive HTML</title></head><body><h1>Starting...</h1>";
// Set the content type
response.ContentType = "text/html";
// Write the HTML chunk to the response stream
byte[] buffer = Encoding.UTF8.GetBytes(htmlChunk);
response.ContentLength64 = buffer.Length;
Stream outputStream = response.OutputStream;
await outputStream.WriteAsync(buffer, 0, buffer.Length);
// Close the output stream
outputStream.Close();
}
}

View File

@ -0,0 +1,90 @@
namespace Tarpit;
public class WordPredictor
{
private Dictionary<string, List<string>> wordFrequencies;
public WordPredictor(string filePath)
{
LoadData(filePath);
}
private void LoadData(string filePath)
{
wordFrequencies = new Dictionary<string, List<string>>();
try
{
using (StreamReader reader = new StreamReader(filePath))
{
string line;
string previousWord = null;
while ((line = reader.ReadLine()) != null)
{
string[] words = line.ToLower().Split(new char[] { ' ', '.', ',', '!', '?', ';', ':', '\n', '\r', '\t' }, StringSplitOptions.RemoveEmptyEntries);
foreach (string word in words)
{
if (previousWord != null)
{
if (!wordFrequencies.ContainsKey(previousWord))
{
wordFrequencies[previousWord] = new List<string>();
}
wordFrequencies[previousWord].Add(word);
}
previousWord = word;
}
}
}
}
catch (FileNotFoundException)
{
Console.WriteLine($"Error: File not found at {filePath}");
Environment.Exit(1); // Exit the program if the file isn't found. Important!
}
catch (Exception ex)
{
Console.WriteLine($"An error occurred while reading the file: {ex.Message}");
Environment.Exit(1);
}
}
public string PredictNextWord(string inputWord)
{
if (!wordFrequencies.ContainsKey(inputWord.ToLower()))
{
return "Word not found in training data.";
}
List<string> nextWords = wordFrequencies[inputWord.ToLower()];
// Find the most frequent next word
string mostFrequentWord = nextWords
.GroupBy(w => w)
.OrderByDescending(g => g.Count())
.First()
.Key;
return mostFrequentWord;
}
public static void Main(string[] args)
{
// Replace "your_text_file.txt" with the path to your text file.
string filePath = "your_text_file.txt";
WordPredictor predictor = new WordPredictor(filePath);
Console.WriteLine("Enter a word:");
string inputWord = Console.ReadLine();
string predictedWord = predictor.PredictNextWord(inputWord);
Console.WriteLine($"The most common word after '{inputWord}' is: '{predictedWord}'");
Console.ReadKey(); // Keep the console window open until a key is pressed
}
}