ich habe eine Sammlung unterschiedlicher Daten, die ich gerne in Textform bringen würde. Also im Grunde sowas wie automatische Texterstellung, wobei das befüllen von Templates mit Unterscheidung von Singular und Plural erstmal reichen würde. Gibt es denn irgendeinen Fachbegriff dazu, nach welchem ich suchen könnte oder gibt es sogar schon irgendwelche Python-Module, die sich mit sowas beschäftigen? Einen kleinen Anfang habe ich bereits erarbeitet:
Code: Alles auswählen
import random
CONJUNCTIONS = ["und", "sowie"]
class Phrase:
def __init__(self, singular, plural, subsequent=True):
self.singular = singular
self.plural = plural
self.subsequent = subsequent
def create_phrase(self, listing):
if self.subsequent:
if len(listing) == 1:
return listing[0] + self.singular
else:
return create_listing_phrase(listing) + self.plural
else:
if len(listing) == 1:
return self.singular + listing[0] + "."
else:
return self.plural + create_listing_phrase(listing) + "."
def create_listing_phrase(words, cunjunctions=CONJUNCTIONS):
last_word = words.pop()
comma = ", "
comma_separeted_part = comma.join(words)
random_conjunction = random.choice(cunjunctions)
return comma_separeted_part + " " + random_conjunction + " "+ last_word
def main():
singular = " ist ein leckeres Getränk."
plural = " sind leckere Getränke."
drinks = ["Limo", "Cola", "Wein", "Apfelschorle"]
print(Phrase(singular, plural).create_phrase(drinks))
drinks = ["Limo"]
print(Phrase(singular, plural).create_phrase(drinks))
singular = "Ich rede von einem Getränk wie zum Beispiel "
plural = "Ich rede von Getränken wie zum Beispiel "
drinks = ["Limo", "Cola", "Wein", "Apfelschorle"]
print(Phrase(singular, plural, subsequent=False).create_phrase(drinks))
drinks = ["Apfelschorle"]
print(Phrase(singular, plural, subsequent=False).create_phrase(drinks))
if __name__ == '__main__':
main()