Automatische Textzusammenfassungs
es klingt wie Sie in automatic text summarization interessiert sind. Einen schönen Überblick über das Problem, die damit verbundenen Probleme und verfügbaren Algorithmen finden Sie in Das und Martin's Paper A Survey on Automatic Text Summarization (2007).
einfachen Algorithmus
Eine einfache, aber einigermaßen effektiv Verdichtungsalgorithmus ist nur eine begrenzte Anzahl von Sätzen aus dem ursprünglichen Text auswählen, die die häufigsten Inhaltswörter enthalten (dh die häufigsten diejenigen, einschließlich nicht stop list Worte).
Summarizer(originalText, maxSummarySize):
// start with the raw freqs, e.g. [(10,'the'), (3,'language'), (8,'code')...]
wordFrequences = getWordCounts(originalText)
// filter, e.g. [(3, 'language'), (8, 'code')...]
contentWordFrequences = filtStopWords(wordFrequences)
// sort by freq & drop counts, e.g. ['code', 'language'...]
contentWordsSortbyFreq = sortByFreqThenDropFreq(contentWordFrequences)
// Split Sentences
sentences = getSentences(originalText)
// Select up to maxSummarySize sentences
setSummarySentences = {}
foreach word in contentWordsSortbyFreq:
firstMatchingSentence = search(sentences, word)
setSummarySentences.add(firstMatchingSentence)
if setSummarySentences.size() = maxSummarySize:
break
// construct summary out of select sentences, preserving original ordering
summary = ""
foreach sentence in sentences:
if sentence in setSummarySentences:
summary = summary + " " + sentence
return summary
Einige Open-Source-Pakete, die Verdichtung mit diesem Algorithmus zu tun sind:
Classifier4J (Java)
Wenn Sie Java verwenden, Sie Classifier4J ‚s Modul SimpleSummarizer verwenden können.
das Beispiel Verwendung gefunden here, lassen vermuten, ist der ursprüngliche Text ist:
Classifier4J ist ein Java-Paket für die Arbeit mit Text. Classifier4J enthält einen Zusammenfasser. Ein Summariser erlaubt die Zusammenfassung von Text. Ein Summariser ist wirklich cool. Ich glaube nicht, dass es andere Java-Zusammenfassungen gibt.
Wie im folgenden Ausschnitt zu sehen, Sie leicht einen einfachen Satz Zusammenfassung erstellen:
// Request a 1 sentence summary
String summary = summariser.summarise(longOriginalText, 1);
den Algorithmus oben verwenden, wird diese Classifier4J includes a summariser.
produzieren.
NClassifier (C#)
Wenn Sie C# verwenden, gibt es einen Hafen von Classifier4J zu C# NClassifier
genannt
Tristan Havelick des Zusammenfasser für NLTK (Python)
Es gibt eine Work-in-Progress-Python-Port von Classifier4Js Zusammenfassung, die mit Pythons Natural Language Toolkit (NLTK) verfügbar here erstellt wurde.
Mögliches Duplikat von: ** [C# Relevante Dokument-Snippets für Suchergebnisanzeige finden] (http: // stackoverflow.com/questions/282002) ** – hippietrail