""" Bakgrunn: Vi ?nsker ? unders?ke kompleksiteten i spr?ket til USAs presidenter. En m?te ? gj?re dette p? er ved ? se p? hvor mye variasjon det er i ordbruken deres. Programmet under analyserer innsettingstalene (inagurals) fra alle USAs presidenter for ? finne ut av forholdet mellom hvor mange ord (tokens) de bruker og hvor mange unike ord (typer) de bruker. Dette kaller vi type/token-ratio. Andre m?ter ? unders?ke spr?klig kompleksitet p? inkluderer ? se p? setningslengde og ordlengde. Kan du implementere dette i programmet? """ import nltk from nltk.corpus import inaugural import matplotlib.pyplot as plt # S?rge for at tekstene er lasta ned nltk.download("inaugural") # Her lagrer vi resultatene results = {} # Itererer over hver innsettingstale for fileid in inaugural.fileids(): # Lager en indre ordbok for talen results[fileid] = {} # Henter ord fra innsetingstalen words = inaugural.words(fileid) # Gj?r til sm? bokstaver words = [word.lower() for word in words] # Henter antal tokens og typer num_tokens = len(words) unique_words = set(words) num_types = len(unique_words) # Regner ut type/token-ratio ttr = num_types / num_tokens # Lagrer resultater results[fileid]["num_tokens"] = num_tokens results[fileid]["num_types"] = num_types results[fileid]["type_token_ratio"] = ttr # Printer resultatene for hver tale for speech, metrics in results.items(): print("Tale:", speech) print(" - Antall tokens:", metrics["num_tokens"]) print(" - Antall typer:", metrics["num_types"]) print(" - Type/token-ratio:", metrics["type_token_ratio"]) show_plot = input("Vil du se dataene som grafer? ja/nei ").lower() if show_plot == "ja": # Lagrer lister med informasjonen vi trenger speeches = list(results.keys()) num_tokens_values = [metrics["num_tokens"] for metrics in results.values()] # Lager graf plt.figure(figsize=(14, 6)) plt.plot(speeches, num_tokens_values, marker="o", linestyle="-", color="b") plt.xticks(rotation=90, fontsize=8) plt.xlabel("Tale") plt.ylabel("Antall tokens") plt.title("Lengde p? hver Inaugural Speech") plt.tight_layout() plt.show() num_types_values = [metrics["num_types"] for metrics in results.values()] plt.figure(figsize=(14, 6)) plt.plot(speeches, num_types_values, marker="o", linestyle="-", color="b") plt.xticks(rotation=90, fontsize=8) plt.xlabel("Tale") plt.ylabel("Antall tokens") plt.title("Unike ord i hver Inaugural Speech") plt.tight_layout() plt.show() ttr_values = [metrics["type_token_ratio"] for metrics in results.values()] plt.figure(figsize=(14, 6)) plt.plot(speeches, ttr_values, marker="o", linestyle="-", color="b") plt.xticks(rotation=90, fontsize=8) plt.xlabel("Tale") plt.ylabel("Type/Token Ratio") plt.title("Type/Token Ratio for hver Inaugural Speech") plt.tight_layout() plt.show()