adesso Blog

Im Neuro-Linguistischen Programmieren (NLP) gibt es viele Ansätze für die Verschlagwortung. Jede Methode kann zu unterschiedlichen Ergebnissen führen. Basierend auf dem Feedback unseres Kundenprojektes mit der Utopia GmbH kombinieren wir die generierten Schlagwörter zweier Methoden: TF-IDF-Analysetechnik und Aleph-Alpha-Modell. Die verwendeten Techniken werden vorgestellt und am Ende werden die experimentellen Ergebnisse präsentiert.

Methode 1: Spacy und Scikit-learn-Bibliotheken

Der erste Ansatz besteht darin, die TF-IDF-Analysetechnik (Term Frequency - Inverse Document Frequency) zu verwenden, um die Wichtigkeit von Nominalphrasen im Eingabetext zu bewerten. Zunächst laden wir das Modell aus der Spacy-Bibliothek entsprechend der Sprache des Eingabetextes, da dieser in Deutsch oder Englisch verfasst sein kann. Dann wird aus dem Eingabetext ein neues Dokument erzeugt. Mit Hilfe der Eigenschaft „noun_chunks“ des Dokuments identifizieren wir die Nominalphrasen im Text. Diese Nominalphrasen werden in die Funktion TfidfVectorizer der Scikit-Learn-Bibliothek eingefügt, um ihre Wichtigkeit zu bewerten. Schließlich extrahieren wir die „top_n“ wichtigsten Nomen auf der Grundlage ihrer Bewertung.

	
		 @classmethod 
		    def spacy_method(lemmatized_tokens: List[str], top_n: int, language: str = 'en'):   
		        if language == 'de':
		            nlp = spacy.load("de_core_news_sm")
		        else:
		            nlp = spacy.load("en_core_web_sm")
		        text = " ".join(lemmatized_tokens)
		        doc = nlp(text)
		        # Use the noun_chunks property of the document to identify the noun phrases in the text 
		        noun_phrases = [chunk.text for chunk in doc.noun_chunks] 
		        # Use term frequency-inverse document frequency (TF-IDF) analysis to rank the noun phrases 
		        vectorizer = TfidfVectorizer() 
		        tfidf = vectorizer.fit_transform(noun_phrases) 
		        # Get the top n most important noun phrases 
		        top_phrases = sorted(vectorizer.vocabulary_, key=lambda x: tfidf[0, vectorizer.vocabulary_[x]], reverse=True)[:top_n] 
		        text_top_phrase = " ".join(top_phrases)
		        doc_top_phrase = nlp(text_top_phrase)
		        pos_tag = ['NOUN']
		        result = [token.text for token in doc_top_phrase if token.pos_ in pos_tag]  # return only Nouns
		        return result
	

TF-IDF (Term Frequency - Inverse Document Frequency) ist eine Technik, die die Wichtigkeit eines Wortes anhand seiner Häufigkeit in einem Dokument und einem Korpus bewertet. Da diese Methode nur das Vorkommen eines Wortes in einem einzelnen Dokument und im gesamten Korpus berücksichtigt, erfordert sie eine Vorverarbeitung des Eingabetextes, um irrelevante Informationen zu entfernen. Einige Vorverarbeitungsschritte sollten in Betracht gezogen werden, wie beispielsweise das Entfernen von Interpunktionszeichen, Stopwörtern oder die Anwendung von Stemming- oder Lemmatisierungstechniken. Ein Nachteil dieser Methode ist, dass sie den Kontext des Textes nicht berücksichtigt, da sie nicht in der Lage ist, relationale Beziehungen zwischen Wörtern und Sätzen zu erkennen. Daher kann es vorkommen, dass die generierten Schlagwörter im Kontext des Textes nicht sinnvoll und aussagekräftig sind. Außerdem werden durch die Stemming- und Lemmatisierungsoperationen feine Nuancen entfernt. Die folgende Tabelle zeigt ein Beispiel:

Eingabetext: Utopien beschreiben andere Zustände, um Kritik an der realen Gesellschaft zu üben oder Alternativen zu ihr zu entwerfen. Sie können ernsthaft oder spielerisch sein. Alle Formen und Realitätsbezüge des Utopischen haben ihren Platz. Wir möchten aber für eine bestimmte Spielart plädieren: Den angewandten Utopismus.

(Quelle: https://www.verbraucherforschung.nrw/kommunizieren/kvf-working-paper-10-fast-fashion)

Ergebnis Methode 1: Beziehung, Gesellschaft, Alternative

Methode 2: Verwendung von Aleph Alpha Luminous (großes Sprachmodell)

LLMs sind Modelle, die auf großen Mengen von Textdaten trainiert wurden, um menschenähnlichen Text zu verstehen und zu erzeugen. Sie werden daher für eine Vielzahl von NLP-Aufgaben verwendet - unter anderem Textzusammenfassung, Beantwortung von Fragen oder Textvervollständigung. Sie sind jedoch nicht speziell für die Aufgabe der Schlüsselwortextraktion konzipiert, bei der wichtige Wörter oder Phrasen identifiziert und extrahiert werden. Aufgrund ihrer vielseitigen Fähigkeit, menschlichen Text zu verstehen, können LLMs jedoch indirekt verwendet werden, um Schlüsselwörter aus dem Kontext des Textes abzuleiten. Dadurch kann die Ausgabe von nicht informativen oder sensiblen Schlüsselwörtern vermieden werden. Darüber hinaus können durch die Verwendung von LLMs Rechenkosten und Laufzeit reduziert werden, da der Text nicht so umfangreich aufbereitet werden muss wie bei klassischen Ansätzen, um ein optimales Ergebnis zu erzielen. Allerdings können einige Feineinstellungen für LLMs erforderlich sein, um das bestmögliche Ergebnis zu erzielen.

Wir verwenden das "luminous-extended-control"-Modell von Aleph Alpha. Um die vernünftigsten Ergebnisse zu erhalten, haben wir einige Feineinstellungen an unserem Modell vorgenommen. Wir wissen, dass mit einer kleinen Anpassung des Prompts, der in ein LLM eingefügt wird, verschiedene Ausgaben möglich sind. Daher haben wir zunächst versucht, das gewählte Modell mit verschiedenen Prompts zu testen. Einige der verwendeten Prompts neigen dazu, zwar sinnvolle, aber zu lange Schlüsselwörter zu erzeugen. Um dieses neue Problem zu lösen, das nicht durch eine Änderung der Prompts gelöst werden kann, haben wir probiert, einige Hyperparameter anzupassen. Letztendlich haben wir durch die Verwendung des geeigneten Prompts und die Anpassung der Hyperparameterwerte das am besten geeignete Modell erhalten, das in der Lage ist, sinnvolle Schlüsselwörter zu generieren, die den Anforderungen des Kunden entsprechen. Nachfolgend sind die Konfigurationen (erstes Bild) für diese Methode und der optimierte Prompt (zweites Bild) dargestellt.

	
		 @classmethod 
		    def aa_method(cls, document: str) -> List[str]:
		        with open(os.path.join("keywords.j2")) as f:
		            prompt = Template(f.read()) 
		        prompt_text = prompt.render(document=document)
		        client = Client(token=aleph_alpha_api_key)
		        request = CompletionRequest(
		            prompt=Prompt.from_text(prompt_text),
		            maximum_tokens = 25,
		            temperature = 0,
		            top_k = 0,
		            top_p = 0,
		            presence_penalty = 0,
		            frequency_penalty = 0.5,
		            repetition_penalties_include_prompt = True,
		            repetition_penalties_include_completion = True,
		        )
		        response = client.complete(request, model = "luminous-extended-control")
		        text = response.completions[0].completion
		        result = re.compile('[,|\;\t\n]').split(text)
		        return result 
	
	
		Identify matching keywords for each text. Each identified keyword should be short and meaningful. Keywords have the same language of the text. 
		###'
		Text: The "Whiskey War" is an ongoing conflict between Denmark and Canada over ownership of Hans Island. The dispute began in 1973, when Denmark and Canada reached an agreement on Greenland's borders. However, no settlement regarding Hans Island could be reached by the time the treaty was signed. Since then both countries have used peaceful means - such as planting their national flag or burying liquor - to draw attention to the disagreement.
		Keywords: Conflict, Whiskey War, Denmark, Canada, Treaty, Flag, Liquor
		###
		Text: NASA launched the Discovery program to explore the solar system. It comprises a series of expeditions that have continued from the program's launch in the 1990s to the present day. In the course of the 16 expeditions launched so far, the Moon, Mars, Mercury and Venus, among others, have been explored. Unlike other space programs, the Discovery program places particular emphasis on cost efficiency, true to the motto: "faster, better, cheaper".
		Keywords: Space program, NASA, Expedition, Cost efficiency, Moon, Mars, Mercury, Venus
		###
		Text: Weil wenn der Wind einmal untergreift, du hast keine Chance dagegen. Das geht nicht. Bei dem Sturm sowieso nicht. Wenn man dann so eine Platte trägt und nach oben reichen möchte und so eine Windhöhe kommt, dann haut es einen halt regelmäßig um. What's the plan? Ich guck erst mal, wie das passt, die ersten. Ich weiß auch nicht. Wenn das zu windig ist, dann warten wir auf besseres Wetter.
		Keywords: Wind, Chance, Sturm, Windhöhe, Plan, Wetter
		###
		Text: Der Automobilsektor ist ein Eckpfeiler der weltweiten Mobilitätssysteme und eine wichtige Säule der Weltwirtschaft. Allerdings trägt es auch maßgeblich zum Klimawandel bei.
		Allein im Jahr 2020 verursachten Pkw und Transporter 3,5 Gigatonnen CO2, fast ein Zehntel der globalen CO2-Emissionen.2, 3 Dies bezieht sich nur auf die Abgasemissionen,
		ohne zusätzliche Emissionsquellen entlang der Wertschöpfungskette wie Teile- und Fahrzeugproduktion
		Keywords: Automobilsektor, Mobilitätssysteme, Weltwirtschaft, Klimawandel, CO2-Emissionen, Emissionsquellen, Wertschöpfungskette
		###
		Text: Der Beitrag gibt auf Basis einer Auswertung des Stands der Forschung Gestaltungsempfehlungen für ein Klimalabel auf Lebensmitteln. Wir empfehlen ein verpflichtendes, staatliches, zunächst im Wesentlichen auf Durchschnittswerten basierendes, mehrstufiges und interpretatives (mit Farbcodierung und ergänzenden CO2-Äquivalenten) Klimalabel. Es sollte auf das Gewicht (CO2-e je kg) bezogen sein und für Lebensmittel und Mahlzeiten gelten. Kleinbetriebliche Segmente sollten zunächst ausgenommen werden. Deutschland könnte hier eine Pionierposition in der EU einnehmen und ein vergleichsweise effizientes Instrument der Verbraucherinformation in einem Sektor voranbringen, der ansonsten weitgehend von den Klimaschutzinstrumenten ausgenommen ist.
		Keywords: Lebensmittellabeling, Lebensmittel, CO2-Fußabdruck , Klimawandel, Klimalabel, Label, Politikempfehlung
		###
		Text: {{document}}
		Keywords:
	

Im Folgenden wird das vorangegangene Beispiel aufgegriffen und die Ergebnisse von Aleph Alpha Luminous dargestellt:

Eingabetext: Utopien beschreiben andere Zustände, um Kritik an der realen Gesellschaft zu üben oder Alternativen zu ihr zu entwerfen. Sie können ernsthaft oder spielerisch sein. Alle Formen und Realitätsbezüge des Utopischen haben ihren Platz. Wir möchten aber für eine bestimmte Spielart plädieren: Den angewandten Utopismus.

(Quelle: https://www.verbraucherforschung.nrw/kommunizieren/kvf-working-paper-10-fast-fashion)

Ergebnis Methode 2: Utopie, Gesellschaftskritik, Alternativentwurf, Ernst, Spiel

Schlüsselwörter und Kombinationen

Wie bereits erläutert, sollten unsere endgültigen Schlagwörter eine Kombination aus den Ergebnissen der beiden oben genannten Methoden sein, wobei die aus den Aleph-Alph-Modellen extrahierten Schlagwörter die höchste Priorität haben und die der anderen Methode als Ergänzung betrachtet werden.

Betrachtet man die Aufgabe der Schlagwortkombination aus einer breiteren Perspektive, so wird deutlich, dass es sich um eine Aufgabe der Textähnlichkeitsberechnung im Bereich der NLP handelt. Das Endergebnis enthält alle Schlagwörter aus Methode 2 sowie alle Schlagwörter aus Methode 1, die sich semantisch von den zuvor genannten unterscheiden. Durch die Bewertung der Ähnlichkeit zwischen den Wörtern können wir also Wörter aus Methode 1 auswählen, die sich von allen Schlüsselwörtern aus Methode 2 unterscheiden.

Textähnlichkeit ist ein Maß für die semantische Beziehung zwischen zwei Texten. Es gibt verschiedene Methoden zur Berechnung der Textähnlichkeit, wie beispielsweise die Kosinus-Ähnlichkeit, die Jaccard-Ähnlichkeit oder fortgeschrittenere Ansätze wie Wortvektoren und LLMs. Diese Methoden sind jedoch komplex, erfordern eine hohe Rechenleistung und sind normalerweise für Aufgaben geeignet, bei denen die Bestimmung der Textähnlichkeit im Vordergrund steht. Für unsere Anforderungen ist jedoch eine einfache und rechenfreundliche Methode zur sinnvollen Verknüpfung zweier unterschiedlicher Wortlisten viel besser geeignet.

Wir haben daher eine einfache Lösung entwickelt, die unseren Bedürfnissen entspricht, und möchten sie hier als Referenz vorstellen. Wie im Abschnitt „Methoden“ beschrieben, erzeugen die Methoden 1 und 2 Schlagwortlisten. Durch die Anwendung der Stemming-Technik, bei der Präfixe oder Suffixe von Wörtern entfernt werden, um ihre Grundform oder Stammform zu erhalten, erhalten wir die gestemmte Form jedes Wortes in einer Liste. Die Aufgabe besteht lediglich darin, jedes Stichwort aus Methode 1 auszuwählen, dessen gestemmte Form nicht in der Liste der gestemmten Wörter erscheint, die sich aus Methode 2 ergibt. Hier ist unsere Lösung für dieses Problem:

	
		@classmethod
		    def __stemming(cls, list_tokens: List[str], language: str = 'en'):
		        if language == 'de':
		            stemmer = SnowballStemmer("german")
		        else:
		            stemmer = SnowballStemmer("english")
		        tokens_stem = [stemmer.stem(word) for word.lower() in list_tokens]
		        return tokens_stem
	
	
		@classmethod
		    def keywords_extraction(cls, spacy_result: list[str], aa_result: list[str], language: str):
		        # concatenate spacy_keywords and aa_keywords
		        spacy_stemming = cls.__stemming(spacy_result, language)
		        aa_stemming = cls.__stemming(aa_result, language)
		        result = [word for word in aa_result if len(word) > 0]  # copy all keywords generated by aa method
		        index_list = [i for i, e in enumerate(spacy_stemming) if e not in aa_stemming]
		        for i in index_list:
		            result.append(spacy_result[i])
		        return result
	

Beschreibung der Pipeline

Die folgende Abbildung zeigt die Pipeline, die wir für die Aufgabe der Schlagwortextraktion verwendet haben. Wie vom Kunden vorgeschlagen, werden alle generierten Schlagwörter mit Hilfe des Aleph Alpha Modells ausgewählt. Darüber hinaus sollten alle Schlagwörter, die in Methode 1 extrahiert wurden, relevant sind und noch nicht in den Ergebnissen von Methode 2 auftauchen, aufgenommen werden.


Die Pipeline der Schlagwortgenerierung

Die Ergebnisse

Um unsere Lösung für die Verschlagwortung zu evaluieren, haben wir sie an 26 verschiedenen Datensätzen getestet. Fünf Beispiele sind im Folgenden aufgeführt.

Quelle 1

Eingangstext:

  • Fördern Online-Umgebungen Suffizienz oder Überkonsum?
  • Die Wettbewerbsfähigkeit von Fair Trade und Bio-Kaffee gegenüber konventionellem Kaffee
  • Assimilieren und Differenzieren: Der Kurveneffekt sozialer Milieus auf grünen Konsum
  • Eine Untersuchung der Wirksamkeit von Nudging im Zusammenhang mit dem Bedürfnis nach Anerkennung und Einzigartigkeit
  • Was klimafreundliches Verhalten mit moralischer Identität und identitätssicherndem Wissen zu tun hat

Ergebnis der Methode 1: [onlineumwelt, suffizienz, wettbewerbsfähigkeit, biokaffee]

Ergebnis Methode 2: [Onlineumgebung, Überkonsum, Konkurrenzfähigkeit, Kurventheorie, grüner Konsum].

Ergebnis der kombinierten Verschlagwortung: [Onlineumgebung, Überkonsum, Konkurrenzfähigkeit, Kurventheorie, Grünes Konsumverhalten, Suffizienz, Biokaffee]

Quelle 2

Eingangstext: Die Wettbewerbszentrale führt eine Reihe von Verfahren, um die Zulässigkeit des Labels „Klimaneutral“ zu klären. Das Landgericht Kiel hat nun erstmals einem Hersteller die Verwendung untersagt.

Ergebnis der Methode 1: [Serie, Zulässigkeit].

Ergebnis Methode 2: [wettbewerbszentrale, klimaneutral, kennzeichnung, verbraucherschutz].

Ergebnis der kombinierten Schlagwortsuche: [wettbewerbszentrale, klimaneutral, label, verbraucherschutz, reihe, zulässigkeit].

Quelle 3

Eingabetext: With a rising interest in the sustainable issue on the part of society and industry, comprehending the dynamics of the sustainable phenomenon can empower market‑ers and researchers to devise effective marketing strategies and advance theoretical knowledge for the fashion and textile discipline. While consumer sustainable lifestyle practices and business stewardship implementation have been neglected in the fashion and textiles industries, this study aims to test the sustainable VALS framework by identifying the sustainable value and lifestyle practices, and examining the impacts of business stewardship on consumer sustainable practices. The results of the data (n = 239) from a US university identified feasible dimensions of sustainable value, lifestyle practices, and business stewardships. Upon testing multiple regression analysis for the sustainable VALS framework, all 12 hypotheses were supported to validate the significant impacts of sustainable values and business stewardship on the consumers’ practices of a sustainable lifestyle on fashion product consumption. Specifically, altruis‑tic, openness to change, anthropocentrism, and ecocentrism values are of interest; and the business stewardship of eco-labels and CSR drives play pivotal roles in promoting consumers’ sustainable lifestyle practices.

Ergebnis der Methode 1: [interest, phenomenon]

Ergebnis der Methode 2: [Sustainable VALS framework, Fashion & Textiles, Consumer behavior, Lifestyle practice, Business Stewardship]

Ergebnis der kombinierten Verschlagwortung: [Sustainable VALS framework, Fashion & Textiles, Consumer behavior, Lifestyle practice, Business Stewardship, interest, phenomenon]

Quelle 4

Eingabetext: A tax on meat could help address the climate impact and animal welfare issues associated with the production of meat. Through a referendum choice experiment with more than 2,800 German citizens, we elicited support for a tax on meat by varying the following tax attributes: level and differentiation thereof, justification and salience of behavioural effects. Only at the lowest tax level tested do all tax variants receive support from most voters. Support is generally stronger if the tax is justified by animal welfare rather than climate change mitigation. Differentiated taxes that link the tax rate to the harmfulness of the product do not receive higher support than a uniform tax; this indifference is not driven by a failure to anticipate the differential impacts on consumption. While the introduction of meat taxation remains politically challenging, our results underscore the need for policymakers to clearly communicate underlying reasons for the tax and its intended behavioural effect.

Ergebnis der Methode 1: [meat, tax, climate, impact, animal]

Ergebnis der Methode 2: [Meat taxation, Climate change mitigation, Animal welfare, Referendum choice experiment]

Ergebnis der kombinierten Verschlagwortung: [Meat taxation, Climate change mitigation, Animal welfare, Referendum choice experiment, meat, tax, climate, impact, animal]

Quelle 5

Eingabetext: Utopien beschreiben andere Verhältnisse, um reale Gesellschaften zu kritisieren oder Alternativen zu ihnen zu entwerfen. Sie können ernst sein oder spielerisch. Alle Formen und Realitätsbezüge des Utopischen haben ihren Ort. Aber wir möchten für eine bestimmte Spielart plädieren: Angewandten Utopismus.

Ergebnis der Methode 1: [verhältnis, gesellschaft, alternative]

Ergebnis der Methode 2: [Utopie, Gesellschaftskritik, Alternativenentwurf, Ernsthaftigkeit, Spiel]

Ergebnis der kombinierten Verschlagwortung: [Utopie, Gesellschaftskritik, Alternativenentwurf, Ernsthaftigkeit, Spiel, verhältnis, gesellschaft, alternative]

Fazit

Die Verschlagwortung ist von entscheidender Bedeutung für die Identifizierung von Schlüsselwörtern und Phrasen in einem Text, die den Inhalt genau wiedergeben. Diese Schlüsselwörter spielen eine entscheidende Rolle bei der Kategorisierung, Beschreibung und Zugänglichkeit von Inhalten. Im digitalen Zeitalter gewinnt die Verschlagwortung zunehmend an Bedeutung, um große Informationsmengen effizient zu organisieren und durchsuchbar zu machen.

Für die Schlagwortextraktion gibt es eine Vielzahl von Ansätzen, wobei wir in der Regel mit verschiedenen Methoden experimentieren, um die am besten geeigneten Ergebnisse zu ermitteln, bevor wir uns für eine bestimmte Methode entscheiden. Die Kombination verschiedener Methoden für das Endergebnis ist keine völlig neue Idee, erweist sich aber in vielen Fällen als äußerst effektiv.

Um unserer Herausforderung gerecht zu werden, verwenden wir zwei verschiedene Methoden, wobei die Anwendung des Aleph-Alpha-Modells als Hauptmethode dient, während die Anwendung der TF-IDF-Analysetechnik eine unterstützende Rolle spielt. Die TF-IDF-Analysetechnik bewertet die Wichtigkeit von Wörtern ausschließlich anhand ihrer Häufigkeit in einem Dokument und einem Korpus, was dazu führen kann, dass nicht immer sinnvolle Schlüsselwörter extrahiert werden. Im Gegensatz dazu nutzen wir die vielseitigen Fähigkeiten des Aleph-Alpha-Modells, um Schlüsselwörter aus dem Kontext des Textes abzuleiten. Dies ermöglicht es, nicht informative oder sensible Schlagwörter zu vermeiden.

Darüber hinaus führt die Verwendung des Aleph-Alpha-Modells zu einer Reduzierung der Rechenkosten und der Laufzeit, da der Text nicht so umfangreich vorverarbeitet werden muss wie bei klassischen Ansätzen, um optimale Ergebnisse zu erzielen. Allerdings können einige Feineinstellungen erforderlich sein, um eine sinnvolle Ausgabe zu erzielen, wozu auch Prompt-Engineering und die Anpassung von Hyperparametern gehören können.

Weitere spannende Themen aus der adesso-Welt findet ihr in unseren bisher erschienenen Blog-Beiträgen.

Auch interessant:

Bild Sezen Ipek

Autorin Sezen Ipek

Sezen Ipek ist seit 2021 studentische Mitarbeiterin im Competence Center Business Engineering bei adesso. Ihre Themenschwerpunkte sind Requirements Engineering, Workshopformate, Data Science und Agilität.

Derzeit studiert sie Wirtschaftsinformatik mit dem Schwerpunkt Data Science & Consulting (M. Sc.) und wird ihr Studium voraussichtlich im Januar 2024 abschließen.

Bild Phuong Huong Nguyen

Autorin Phuong Huong Nguyen

Phuong Huong Nguyen arbeitet als Werkstudentin in der Business Line Data and Analytics im Bereich AI & IA bei adesso. Sie begeistert sich für Data Science, maschinelles Lernen und KI. Besonders interessiert sie sich für den Bereich der generativen KI, insbesondere Large Language Models (LLMs). Aktuell unterstützt sie Projekte im AI.Lab.

Kategorie:

KI

Schlagwörter:

Aleph Alpha

GenAI

Diese Seite speichern. Diese Seite entfernen.