2016-06-21 7 views
4

Mein Abschlussjahr-Entwicklungsprojekt erfordert, dass ich eine Anwendung mit Java oder Python erstelle, die ein Textdokument mit Natural Language Processing zusammenfasst. Wie beginne ich überhaupt mit der Programmierung einer solchen Anwendung?Wie starte ich mit einem Projekt zur Textzusammenfassung mit NLP?

Basierend auf einigen Untersuchungen, habe ich gerade notiert, dass Extraktion-basierte Zusammenfassung die beste Wette für mich sein wird, da es nicht so komplex ist wie Abstraktions-basierte Algorithmen. Selbst dann wäre es sehr hilfreich, wenn mich jemand in die richtige Richtung führen würde.

Antwort

6

Textzusammenfassung ist immer noch ein offenes Problem in NLP.

Ich denke, dass man sich mit der Frage, was anfangen könnte der Zweck der Zusammenfassung ist:

  • Eine Zusammenfassung, die ein Dokument aus anderen Dokumenten
  • Eine Zusammenfassung, die Minen nur die häufigen Muster
  • diskriminiert Eine Zusammenfassung, die die Themen alle im Dokument

Da dieses wi deckt

  • usw. Sie beeinflussen die Art und Weise, wie Sie die Zusammenfassung generieren.

    Aber als Anfang könnten Sie in Python das NLTK-Framework verwenden, um grundlegende Elemente aus einem Text zu extrahieren. Zum Beispiel können Sie die häufigsten Wörter oder die häufigsten N-Gramme (N benachbarte Wörter) aus dem Text extrahieren.

    Auch eine einfache Möglichkeit, die relevantesten Sätze zu extrahieren, ist die Verwendung von TF-IDF, die für Term-Häufigkeit, Inverse Dokument-Häufigkeit steht. Im Grunde gibt diese Funktion Sätzen, die im Vergleich zu anderen Dokumenten häufig in einem Dokument erscheinen, eine höhere Punktzahl.

    Einige Python-Bibliotheken, die Sie verwenden können:

    • sickitlearn, die erweiterte Funktionen hat.
    • Auch gensim Bibliothek hat eine Textzusammenfassungs Tutorial (auch in Python)
    • Sie auch Dato verwenden können, als auch eine Textanalysemodul hat.

    Einige hilfreiche Ressourcen:

    Hoffe das hilft.

  • 4

    Heutzutage wird die Verwendung von Neural Net zur Zusammenfassung des Korpus als Stand der Technik angesehen.Hier

    ist ein Artikel lesenswert für Sie: A Neural Attention Modell für Satz Summarization http://www.aclweb.org/anthology/D15-1044

    0

    Es gab einige gute und umfassende Übersichten bereits gebucht, so werde ich ein konkreteres Beispiel geben. Es ist kurz, süß und einfach ... alles, was Sie tun müssen, ist mit dem summaryRatio spielen:

    def summarizePassage(text,summaryRatio=0.5): 
        from gensim.summarization import summarize 
        try: 
        summary = summarize(text,split=True,ratio=summaryRatio) 
        except: 
        print "WARNING: Gensim unable to reduce: ", text 
        return [text] 
        return summary