Frage

Ich muss Felder wie die Dokumentnummer, das Datum und die Rechnungsmenge aus einer Reihe von .csv -Dateien extrahieren, von denen ich glaube, dass sie als "unstrukturierter Text" bezeichnet werden. Ich habe einige gekennzeichnete Eingabedateien und verwendet NLTK und Python, um einen Datenextraktionsalgorithmus zu entwerfen.

Für die erste Klassifizierungsrunde plane ich die TF -IDF -Gewichtung mit einem Klassifizierer, um den Dokumenttyp zu identifizieren - es gibt mehrere Dateien, die dasselbe Format verwenden.

An diesem Punkt muss ich das Feld aus dem Dokument extrahieren, da es x -Dokumenttyp ist. Ich habe darüber nachgedacht, Funktionen wie die "häufigsten Zahlen" oder "größte Zahl mit einem Komma" zu verwenden, um beispielsweise den Rechnungsbetrag zu finden, aber da der Rechnungsbetrag ein numerischer Wert kann, der glaube, dass die Stichprobengröße kleiner wäre als die Anzahl der Anzahl von Mögliche Funktionen? (Ich habe hier kein Training, tragen Sie es mit mir.)

Gibt es einen besseren Weg, um den zweiten Teil zu machen? Ich denke, der erste Teil sollte in Ordnung sein, aber ich bin mir nicht sicher, ob dieser zweite Teil funktionieren wird oder wenn ich das Problem überhaupt verstehe. Wie ist mein Ansatz im Allgemeinen? Ich bin neu in dieser Art von Dingen und das war das Beste, was ich mir einfallen konnte.

War es hilfreich?

Lösung

Ich bin mir nicht sicher, ob die Verwendung eines Klassifikators der beste Weg ist, um dieses Problem zu erreichen. Wenn es etwas ist, das mit Regex leicht extrahiert werden kann, ist dies der beste Weg, dies zu tun. Wenn Sie jedoch Klassifikatoren verwenden möchten, müssen Sie sich zwei Fragen stellen, die Sie sich stellen müssen.

Erstens sehen die unbeschriebenen Daten aus und können Sie gute Funktionen daraus entwerfen? Abhängig von der Art des Feature -Vektors, den Sie entwerfen, kann die Komplexität der Klassifizierungsaufgabe von sehr einfach bis unmöglich reichen. (Ein Perzeptron kann XOR normalerweise nicht lösen, außer wenn Sie es mit spezifischen linearen Kombinationen der Eingangsvariablen bereitstellen).

Zweitens sehen die beschrifteten Daten aus? Ist es repräsentativ für den gesamten Datensatz oder enthält es nur sehr spezifische Formatypen? Wenn es sich um erstere handelt, funktioniert Ihr Klassifizierer nicht gut in Dateien, die nicht in den beschrifteten Daten dargestellt sind.

Wenn Sie nur zuerst einen Klassifizierer testen möchten, können Sie das Problem lösen, mehr Funktionen als Trainingsmuster durch die Regularisierung zu haben. Die Regularisierung zwingt den Trainingsalgorithmus des Klassifikators, die einfachste mögliche Lösung zu akzeptieren (denken Sie an Occams Rasierer).

Fast alle python -python -Pakete für maschinelles Lernen verfügen über Regularisierungsoptionen, die Sie verwenden können. Genießen Sie also.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit datascience.stackexchange
scroll top