diff --git a/src/app/page.tsx b/src/app/page.tsx
index d3ee09a..cd6f3a3 100644
--- a/src/app/page.tsx
+++ b/src/app/page.tsx
@@ -6,6 +6,7 @@ import { Checkbox } from "@/components/ui/checkbox";
import { Stats } from "@/components/Stats";
import LetterDensity from "@/components/LetterDensity";
import { Input } from "@/components/ui/input";
+import WordDensity from "@/components/WordDensity";
const config = {
includeSpaces: true,
@@ -58,6 +59,24 @@ export default function Home() {
result.letterDensity[char] = +(result.letterDensity[char] / totalLetters).toFixed(3);
}
+ const words = inputText.toLowerCase().match(/[a-zäöüß]+/gi) || [];
+ const totalWords = words.length;
+ result.wordDensity = {};
+
+ for (let word of words) {
+ result.wordDensity[word] = (result.wordDensity[word] || 0) + 1;
+ }
+
+ for (let word in result.wordDensity) {
+ result.wordDensity[word] = +(result.wordDensity[word] / totalWords).toFixed(3);
+ }
+ result.lineCount = (inputText.match(/\n/g) || []).length + 1;
+ result.spaceCount = (inputText.match(/ /g) || []).length;
+ const sortedWords = Object.entries(result.wordDensity).sort((a, b) => b[1] - a[1]);
+ result.topWord = sortedWords[0]?.[0] ?? null;
+ result.topWordFrequency = sortedWords[0] ? +(sortedWords[0][1] * 100).toFixed(1) : null;
+
+
setAnalysis(result);
}, [text, includeSpaces, useCustomLimit, charLimit]);
@@ -116,8 +135,15 @@ export default function Home() {
charCount={analysis.charCount}
wordCount={analysis.wordCount}
sentenceCount={analysis.sentenceCount}
+ lineCount={analysis.lineCount}
+ spaceCount={analysis.spaceCount}
+ topWord={analysis.topWord}
+ topWordFrequency={analysis.topWordFrequency}
/>
+
+
{word}
+ +{(value * 100).toFixed(2)}%
+{word}
+ +{(value * 100).toFixed(2)}%
+