Warum ignoriert Extractor das META Tag in HTML?

Was bedeuten die Nummern, die bei  jedem Schlüsselbegriff angegeben werden?

Wie kann ich die Bewertung normieren?  

Kann ich mit Extractor auch die Häufigkeit der Schlüsselbegriffe im Dokument ermitteln? 

Warum wählt Extraktor in einem Satz wie "Ich fahre heute nicht Ski" den Begriff "Ski" anstatt "nicht Ski" als Schlüsselbegriff?

Ich will Extractor für automatische Klassification von Dokumenten einsetzen. Können Sie mir helfen? Wie kann ich Schlüssselbegriffe kombinieren, die aus vielen verschiedenen Dokumenten stammen?

Kann Extractor die Sprache X verarbeiten?

Kann Extractor das Dokumentenformat X verarbeiten?

Kann Extractor den Zeichensatz X verarbeiten?

Wie erhalte ich 100 Schlüsselbegriffe?

Wenn ich ein Dokument an Extractor übergebe und vier Schlüsselbegriffe anfordere, anschließend für dasselbe Dokument sieben Schlüsselbegriffe anfordere, so sind die vier Schlüsselbegriffe nicht immer in den sieben der zweiten Anfrage enthalten. Wie kommt das?

Ich möchte mit Extractor genau N Schlüsselsätze hervorheben. Ich weiss, dass ich die Anzahl der Schlüsselbegriffe festlegen kann. Aber wie kann ich die Anzahl der Hervorhebungen festlegen?

In meinem Eingabedokument wird häufig das Wort "X" verwendet. Es ist ein sehr wichtiges Wort und ich benutze es häufig und von Beginn des Textes an. Dennoch erkennt Extractor es nicht als Schlüsselwort. Wie kommt das?

In unseren Dokumenten haben wir Begriffe mit vier und mehr Wörtern. Wie verhält sich Extractor in so einem Fall?

Ich benutze die Programmiersprache X. Gibt es einem Weg, die Extractor API von X aus aufzurufen?
 


Warum ignoriert Extractor das META Tag in HTML?
Das META-Tag wird in HTML benutzt, um Metainformationen über das Dokument zu übermitteln. Zum Beispiel
<META HTTP-EQUIV="Expires" CONTENT="Tue, 04 Dec 1993 21:29:02 GMT">
<META HTTP-EQUIV="Keywords" CONTENT="Nanotechnology, Biochemistry">
<META HTTP-EQUIV="Reply-to" CONTENT="dsr@w3.org (Dave Raggett)">

Extractor ignoriert diese Meta-Informationen. Insbesondere wird nicht die in "Keywords" übergebene Meta-Information verwendet. Dies hat zwei Gründe: (1) Wenn Sie das META-Tag dringend benötigen, können Sie es leicht mit einer selbstgeschriebenen Routine extrahieren. (2) Das Meta-Tag wird häufig missbraucht. Es wird vor allem benutzt, um eine bessere Position in den Ergebnisslisten von Suchmaschinen zu verbessern. Wenn Sie nach dem Begriff "meta" suchen, finden Sie viele Texte mit Tipps für Web-Autoren, wie mit dem META-Tag Suchmaschinen ausgetrickst werden können.

 
Was bedeuten die Nummern, die mit jedem Schlüsselbegriff zurück gegeben werden?
Wenn Sie die Beispielprogramme "test_api.exe" unter Windows " oder "test_api.bin" unter Unix ausführen, wird jeder Schlüsselbegriff zusammen mit einer Nummer ausgegeben. Diese Nummern stellen die Wertung für den Begriff dar, die von der Funktion ExtrGetScoreByIndex() zurück gegeben wird. Die Wertung eines Begriffs schätzt den Wert des Begriffs als Schlüsselbegriff ab, so nach abnehmender Wertung sortiert werden. Die Wertung kann jede positive reelle Zahl annehmen. Die mit langen Dokumenten verbundenen Wertungen tendieren zu höheren Werten als die bei kurzen Dokumenten. Die Methode zur Berechnungder Wertung wird im Detail in Learning to Extract key phrases from Text beschrieben. Für manche Anwendungen kann eine Normierung sinnvoll sein.

Wie kan ich die Wertung normieren?
Bei manchen Anwendungen kann eine Normierung sinnvoll sein, so dass die Wertungen von Schlüsselbegriffen verschiedener Dokumente verglichen werden können. Hier sind einige Vorschläge zur Normierung:

  • Verwerfen Sie die Wertung von Extractor. Zur Bewertung eines Schlüsselbegriffes benutzen Sie bei einer großen Zahl von Dokumenten, beispielsweise Webseiten, den Anteil der Dokumente, für die Extraktor den Schlüsselbegriff vorgeschlagen hat. So erhält "Firmenfusion" zum Beispiel eine Wertung von 45%, wenn es bei 100 Dokumenten 45 mal von Extractor als Schlüsselbegriff vorgeschlagen wurde.
  • Verwerfen Sie die Wertung von Extractor. Zur Bewertung eines Schlüsselbegriffes benutzen Sie bei einer großen Zahl von Dokumenten, beispielsweise Webseiten, die Anzahl der Dokumente, in denen der Schlüsselbegriff vorkommt - unabhängig, davon, ob er von Extractor vorgeschlagen wird. So erhält "Firmenfusion" zum Beispiel eine Wertung von 45%, wenn es bei 100 Dokumenten in 45 von diesen vorkommt.
  • Normieren Sie die Wertung von Extractor mit der Wertung des ersten Schlüsselbegriffs, dieser hat immer die höchste Wertung. Ein Beispiel: Extractor benennt 3 Schlüsselbegriffe: "Firmenfusion" mit  Wertung 50, "Aktien" mit 30 und Anleihen mit 10. Die normalisierten Wertungen sind dann 100%, 60% und 20%.
  • Die bei langen Dokumenten vorgeschlagenen Schlüsselbegriffe erscheinen oft besser als die von kürzeren. Das Problem mit dem dritten Vorschlag ist, dass dort die Dokumentenlänge ignoriert wird. Eine Möglichkeit wäre, die Werungen beispielsweise noch mit dem Logarithmus der Länge des Dokuments in Bytes oder Anzahl Wörter zu multiplizieren. Eine andere Möglichkeit ist, die Dokumente nach der Länge zu sortieren und die Wertungen eines Dokuments entsprechend seinem Quantil zu vergrößern. Ein Beispiel: Der Schlüsselbegriff  "Firmenfusion" erscheint in Dokument Nummer 345. und hat eine normalisierte Wertung von 60%. Aber da Dokument 345 im oberen 25%-Quantil der nach Länge sortieren Dokumente, vergrößern wir die Wertung von "Firmenfusion" um 20% zu einer resultierenden Wertung von 80%.

Kann ich mit Extractor auch die Häufigkeit der Schlüsselbegriffe im Dokument ermitteln?
Auch wenn Extractor die Häufigkeit jedes Schlüsselbegriffs im Dokument berechnet, ermöglicht die API derzeit nicht den Zugriff auf diese Werte. Wenn Sie die Häufigkeit als Maß für die Wichtigkeit des Begriffs benutzen wollen, sollten sie prüfen, ob dafür auch die Wertung benutzt werden kann.


Warum wählt Extraktor in einem Satz wie "Ich fahre heute nicht Ski" den Begriff "Ski" anstatt "nicht Ski" als Schlüsselbegriff?
Der Zweck von Extractor ist die Themen zu ermitteln, die im Eingabedokument diskutiert werden. Aber Extractor versucht nicht zu ermitteln, wie diese Themen diskutiert werden. Wenn ein Dokument zum Beispiel juristische Aspekte zum Thema Schusswaffen diskutiert, wird Extractor vielleicht den Begriff "Schusswaffenbesitz" vorschlagen. Dieser Schlüsselbegriff zeigt nicht, ob das Dokument eine strenge Kontrolle des Schusswaffenbesitzes unterstützt oder gegen jede staatliche Kontrolle von Schusswaffen Stellung bezieht. Wir habe mehrere tausend Dokumente geprüft, zu denen die Autoren Schlüsselbegriffe angegeben haben. In diesen Schlüsselbegriffen war das Wort "nicht" nirgens angegeben. 

Ich will Extractor für automatische Dokumenten-Klassifizierung benutzen. Können Sie mir helfen?
Unter automatischer Dokumenten-Klassifizierung wird die automatisierte Zuordnung von Dokumenten zu vorgegebenen Kategorien mit Hilfe von Software verstanden. Eine ähnliche Aufgabe ist die automatische Anhäufung von Dokumenten, bei der es keine vorgegebenen Kategorien gibt, sondern bei der die Software selber die Kategorien schaffen muss. Unter folgendem Link finden Sie ein detailliertes Verzeichnis englischer Literatur zu diesen Themen:

Literaturverzeichnis zum Thema Maschinelles Lernen, angewendet auf Texte.

Mit Extractor können Sie die Funktionen für Funktionsvektoren in Algorithmen für maschinelles Lernen generieren - Erläuterungen zu dieser Terminologie finden Sie in den in der Bibliographie angegebenen Veröffentlichungen.  Für die Erzeugung der Funktionsvektoren schlagen wir den folgenden Ansatz vor:

  • Wenden Sie Extractor auf alle Dokumente in Ihrer Sammlung von Beispielen an.
  • Benutzen Sie die Vereinigungsmenge aller extrahierten Schlüsselwörter als Funktionsmenge.
  • Für jedes Dokument und jede Funktion ist der Wert der Funktion dadurch gegen, wie oft der Begriff im gegebenen Dokument auftaucht (unabhängig davon, ob Extractor den Begriff  aus dem Dokument extrahiert hat). 
  • Wenden Sie Ihren bevorzugten Algorithmus für maschinelles Lernes wie auf Entscheidungsbäumen basierende Schlussfolgerungen, neurale Netzwerke, genetische Algorithmen oder andere Verfahren auf den resultierenden Funktionsvektor an. 

Wie kann ich Schlüsselbegriffe kombinieren, die aus vielen verschiedenen Dokumenten stammen?
Für einige Anwendungen möchten Sie vielleicht eine Liste mit Schlüsselbegriffen haben, die einen ganzen Satz an Dokumenten abdeckt, wobei jedes Dokument von Extractor gesondert verarbeitet wurde. Wenn keine Beschränkung in Bezug auf die Listengröße der Schlüsselbegriffe existiert, können Sie einfach die Vereinigungsmenge aller Schlüsselbegriffe verwenden. Um die Listengröße etwas zu reduzieren, können Sie Wörter mit gleichem Wortstamm, beispielsweise "Auto" und "Autos" zusammen fassen. Für eine wesentliche Verkleinerung der Liste können Sie eine normierte Wertung für jeden Begriff vergeben und die Begriffe mit der höchsten Wertung verwenden. 

Kann Extractor die Sprache X verarbeiten?
Extractor verarbeitet derzeit einsprachige Dokumente in Englisch, Fanzösisch, Japanisch, Deutsch, Spanisch oder Koreanisch.


Kann Extractor das Dokumentenformat X verarbeiten?
Extractor verarbeitet derzeit reinen Text, HTML und EMail. Der HTML-Filter ist für HTML-Escape Sequenzen für Akzente und HTML-Zeichen entsprechend ISO Latin-1 geeignet. Der EMail-Filter verarbeitet über MIME als druckbar bezeichnete Akzente. Wenn Sie Software entwickeln, die andere Formate verarbeiten muss, stehen Konvertierungsmodule von diversen Herstellern als Komponenten zur Verfügung.

Kann Extractor den Zeichensatz X verarbeiten?
Bei English, Französisch, Deutsch und Spanissh verarbeitet Extractor derzeit ISO Latin-1, MS-DOS Code Page 437 und Unicode UCS2 double-byte Zeichensätze mit normaler Bytefolge. Für Japanisch stehen vier Zeichensätze zur Verfügung: JIS, Shift-JIS, EUC-JP und Unicode UCS-2. Für Koreanisch stehen drei Zeichensätze zur Verfügung: EUC-KR, Johap und Unicode UCS-2.


Wie erhalte ich 100 Schlüsselbegriffe?
Mit der Funktion ExtrSetNumberPhrases() ermöglicht Extractor dem Anwender derzeit die Extraktion von 3 bis 30 Begriffen. Für manche Anwendungen benötigen Sie vielleicht mehr Begriffe. Dann besteht eine Lösung darin, das Dokument wie hier beschrieben in kleinere Abschnitte aufzuteilen und jeden Teil separat an Extractor zu übergeben. Sie können dann die Verbindungsmenge der Schlüsselbegriffe als Gesamtergebnis benutzen.

"Extractor" liefert maximal 30 Schlüsselbegriffe für jeden einzeln übergebenen Text. Mit dieser Vorgehensweise erhalten Sie nach nach unserer Einschätzung eine bessere Liste, als wenn das Buch als homogenes ganzes behandelt wird. Dies gilt aus folgendem Grund: Angenommen wir geben Ihnen ein Buch und bitten sie, eine Liste mit 30 Schlüsselbegriffen bzw Schlagwörtern zu dem Buch anzufertigen. Wenn Ihre Liste annähernd 30 Begriffe aufweist, dürfte es unserer Meinung nach schwer werden weitere zu finden, bei den meisten Büchern machen üblicherweise nur 10 bis 15 Schlagworte Sinn. Aber mit zwei bis drei Synonymen pro Schlagwort kommen dann doch 30 zusammen.

Andererseits könnten wir Ihnen auch ein einzelnes Kapitel des Buches übergeben. Dann würde die Liste eventuell genauso lang wie die für das ganze Buch werden. Ein Schlüsselbegriff zum "Hauptthema" des Kapitels stellt wahrscheinlich nur ein "Unterthema" des ganzen Buches dar. Somit wäre die Verbindungsmenge der Schlüsselbegriffe eines Kapitels eine Untermenge der Begriffe des ganzen Buches.

Wenn ich ein Dokument an Extractor übergebe und vier Schlüsselbegriffen anfordere, anschließend für dasselbe Dokument sieben Schlüsselbegriffe anfordere, so sind die vier Schlüsselbegriffe nicht immer in den sieben der zweiten Anfrage enthalten. Wie kommt das?

Dies wird im Detail in folgendem Artikel erklärt: Learning to Extract key phrases from Text. Wenn es für Ihre Anwendung wichtig ist, dass die vier Schlüsselbegriffe bei der ersten Anfrage den ersten vier Begriffen der zweiten Anfrage entsprechen, dann sollten Sie von vornherein sieben Begriffe anfordern und nur die ersten vier verwenden. Generell gilt, dass Sie, sofen Sie derzeit M Schlüsselbegriffe brauchen aber später möglicherweise N (wobei N > M), besser gleich N Begriffe anfordern und nur die ersten M verwenden. Es empfiehlt sich außerdem, alle N  Begriffe zu speichen und den Zeitaufwand für einen weiteren Aufruf von Extractor zu vermeiden.

Ich möchte mit Extractor genau N Schlüsselsätze hervorheben. Ich weiss, dass ich die Anzahl der Schlüsselbegriffe festlegen kann. Aber wie kann ich die Anzahl der Hervorhebungen festlegen?
Mit der Funktion ExtrSetNumberPhrases() ermöglicht Extractor dem Anwender derzeit die Extraktion von 3 bis 30 Begriffen. Wenn Sie mit der Funktion ExtrGetHighlightType() die Hervorhebungen so gesetzt haben, dass Duplikate möglich sind, dann entspricht die Anzahl der Hervorhebungen (Schlüsselsätze) der Anzahl der Schlüsselbegriffe. Für jeden Schlüsselbegriff wird es einen passende Hervorhebung geben, die den Begriff im Zusammenhang zeigt - außer in den seltenen Fällen, wenn Extractor für einen Schlüsselbegriff keine passende Hervorhebung gefunden hat. Wenn Sie aber für die Hervorhebungen definiert haben, dass keine Duplikate auftreten, dann werden üblicherweise weniger Hervorhebungen als Schlüsselbegriffe entstehen. In so einem Fall werden zwei oder mehr Schlüsselbegriffe durch denselben Schlüsselsatz dargestellt. Im Durchschnitt erhalten Sie bei K Schlüsselbegriffen N = 0,6 × K Hervorhebungen. Hier sind einige Optionen für den Fall, wenn Sie genau N Hervorhebungen ohne Duplikate benötigen: 

  • Fordern Sie K = 2 × N Schlüsselbegriffe an. Im Durchschnitt erhalten Sie damit etwa 0,6 × 2 × N = 1,2 × N Hervorhebungen. Mit der Funktion ExtrGetHighlightType() definieren Sie, dass keine mehrfachen Hervorhebungen auftreten und das die Hervorhebungen entsprechend der Position im Text sortiert werden. Übernehmen Sie die ersten N Hervorhebungen und ignorieren Sie den Rest. Wenn nicht genug Hervorhebungen vorhanden sind, versuchen Sie eine Anfrage für K = 2,5 × N Schlüsselbegriffe. Wenn K = 2,5 × N größer als 30 wird, dann teilen Sie das Dokument in kleinere Abschnitte auf und übergeben jeden Abschnitt an Extractor.
  • Alternativ können Sie auch K = 3 × N Schlüsselbegriffe anfordern und mit der Funktion ExtrGetHighlightType() Duplikate zulassen. Die i-te Hervorhebung zeigt dann  den i-ten Schlüsselbegriff im Kontext eines Satzes. Ermitteln Sie die Wertung des i-ten Schlüsselbegriffs und benutzen Sie diese Wertung für die Qualität der zugehörigen Hervorhebung. Bei mehrfach auftretenden Hervorhebungen bewerten Sie die Hervorhebung mit dem Maximalwert der zugehörigen Wertungen. Geben Sie die ersten N Hervorhebungen mit den höchsten Wertungen aus.
  • Gehen Sie wie im vorherigen Vorschlag vor. Bei mehrfach auftretenden Hervorhebungen bewerten Sie diese aber mit der Summe der Wertungen der zugehörigen Schlüsselbegriffe. Geben Sie dann wieder die ersten N Hervorhebungen mit den höchsten Wertungen aus.
  • Gehen Sie wie im vorherigen Vorschlag vor.  Bei mehrfach auftretenden Hervorhebungen bewerten Sie diese aber mit der Anzahl der Duplikate der Hervorhebungen.  Wenn zum Beispiel drei Duplikate eines bestimmten Satzes vorkommen, bewerten Sie den Satz mit drei. In anderen Worten entspricht die Wertung eines Satzes der Anzahl der Schlüsselbegriffe, die er enthält. Geben Sie dann wieder die ersten N Hervorhebungen mit den höchsten Wertungen aus.

In meinem Eingabedokument wird häufig das Wort "X" verwendet. Es ist ein sehr wichtiges Wort und ich benutze es häufig und von Beginn des Textes an. Dennoch erkennt Extractor es nicht als Schlüsselwort. Wie kommt das? 
Hir gibt es mehrere Möglichkeiten:

  • Extractor ignoriert Wörter mit weniger als drei Buchstaben. 
  • Ihr Wort ist in der Liste der Stopp-Wörter.
  • Ihr Wort ist in der Liste der Stopp-Begriffe.

Sie können keinen Begriff aus der Liste der Stopp-Wörter oder Begriffe über das API löschen, dafür müssten Sie den Source-Code ändern. Auch die minimal geforderte Wortlänge von drei Buchstaben läßt sich nicht über das API ändern. Sie können aber das Wort "X" mit der Funktion ExtrAddGoPhrase() zu der Liste der Go-Begriffe zufügen. Ein Go-Begriff wird immer extrahiert, wenn er im Dokument enthalten ist, unabhängig davon, ob er auch in der Liste der Stopp-Wörter oder Begriffe ist.


In unseren Dokumenten haben wir Begriffe mit vier und mehr Wörtern. Wie verhält sich Extractor in so einem Fall?
Extractor ist dafür ausgelegt, aus maximal drei Worten bestehende Schlüsselbegriffe zu finden. Wir haben tausende Dokumente geprüft, zu denen die Autoren die Schlüsselbegriffe angegeben haben. Nur in ca. 5% der Fälle wurden Schlüsselbegriffe, bestehend aus mehr als drei Worten angegeben. Wenn wir versuchen, Schlüsselbegriffe aus vier oder mehr Worten einzuschließen, können wir zwar einige weitere der von Autoren angegeben Begriffe abdecken. Dafür entstehen aber auch mehr Fehler. Da insgesamt ein Verlust entsteht, versucht Extractor nicht, diese längeren Begriffe zu erfassen. Es gibt zwei Möglichkeiten, die Sie probieren können, wenn Sie diese läneren Begriffe dringend brauchen:

  • Wenn Extractor eines Begriff der Form "A B C" und einen der Form "B C D" zurück gibt, dann können Sie schließen, dass diese zu der längeren Form "A B C D" gehören und sie zusammen fügen. Zum Beispiel würden "Joseph von Fraunhofer" und "Fraunhofer Gymnasium" zu "Joseph von Fraunhofer Gymnasium" verbunden.
  • Wenn Sie mit der Funktion ExtrActivateHighlights() die Funktion für Hervorhebungen aktivieren und mit ExtrSetHighlightType() die Hervorhebung auf Fettdruck setzen, schließt die Hervorhebung Begriffe mit vier und mehr Worten ein. Sie können dann Ihre eigene Routine verfassen, um die Begriffe aus der Hervorhebung zu extrahieren.
Ich benutze die Programmiersprache X. Gibt es einem Weg, die Extractor API von X aus aufzurufen?
Die Extractor API ist in ISO/ANSI C geschrieben. Welcher Programmiersprache auch immer Sie benutzen, es gibt sicherlich eine Möglichkeit für den Aufruf eines extenen Programms in C. Wenn Sie in C oder C++ entwickeln, haben Sie keine Probleme beim Aufruf von Extractor. Wenn Sie Java, Perl, Python oder Visual Basic verwenden, können wir Unterstützung bieten. Bitte kontaktieren Sie uns in diesen Fällen.