Logo faq-o-matic.net
Logo faq-o-matic.net

Eine Wortliste aus einem Text erzeugen

von veröffentlicht am31. Juli 2017, 06:14 Uhr Kurzlink und Zitatlink einblenden
Kategorie Kategorie: PowerShell   Translate with Google Translate Translate EN   Die angezeigte Seite drucken

Für unseren Kennwortgenerator “Schwester-Pelzhut-Ledersofa-Auch” brauchen wir eine Liste eindeutiger Wörter. Der Einfachheit halber habe ich dafür einen vorhandenen Text genommen, der ohne Lizenzkosten zur Verfügung steht. Meine Wahl fiel auf Franz Kafkas “Verwandlung”. Da Kafka vor mehr als 70 Jahren gestorben ist, sind die Einschränkungen des Urheberrechts erloschen, man darf den Text also “einfach so” verwenden.

Nun ist der reine Text als Liste noch nicht gut geeignet, denn viele Wörter wiederholen sich. Das sind naturgemäß vor allem Trivialwörter wie Artikel oder einfache Adjektive. Ich brauchte also eine Funktion, die aus dem Text eine Wortliste macht, in dem jedes Wort nur einmal auftaucht. Das ging mit der PowerShell recht einfach.

$WordListFile =  'C:\Daten\Kafka-Verwandlung.txt'
$WordList = Get-Content $WordListFile
$WordArray = $WordList.Split(' ')
$WordArrayUnique = @()
foreach ($Word in $WordArray) {
  $WordTrim = ($Word -replace '[\W]', '')
  $WordArrayUnique +=$WordTrim
}

$WordArrayUnique = ($WordArrayUnique | Sort-Object -Unique) # | Measure-Object
$WordArrayUnique -join(',') | Out-File 'C:\Daten\Wortliste-Kafka-Verwandlung.txt'

Das Skript öffnet eine Textdatei, das die vollständige Textquelle enthält, und liest den gesamten Text ein. Um die einzelnen Wörter zu erhalten, trennt es den Text jeweils bei einem Leerzeichen und schreibt die so entstandenen Fragmente in ein Array. Dieses Array durchläuft dann eine Schleife mit einem Regulären Ausdruck, der alle Zeichen entfernt, die nicht zu einem Wort gehören (etwa Satzzeichen). Abschließend ordnet die vorletzte Zeile das Array alphabetisch und entfernt dabei alle Dopplungen. Das so verbleibende Array mit eindeutigen Wörtern schreibt die letzte Zeile dann in die Zieldatei.

Wer wissen möchte, wie viele eindeutige Wörter so entstanden sind, entfernt das Kommentarzeichen in der vorletzten Zeile und kommentiert die letzte Zeile aus.

© 2005-2023 bei faq-o-matic.net. Alle Rechte an den Texten liegen bei deren Autorinnen und Autoren.

Jede Wiederveröffentlichung der Texte oder von Auszügen daraus - egal ob kommerziell oder nicht - bedarf der ausdrücklichen Genehmigung durch die jeweiligen Urheberinnen oder Urheber.

Das Impressum findet sich unter: http://www.faq-o-matic.net/impressum/

Danke, dass du faq-o-matic.net nutzt. Du hast ein einfaches Blog sehr glücklich gemacht!