Forum: PC-Programmierung Python spacy zahlen im Kontext erkennen


von Justin E. (Gast)


Lesenswert?

Kennt sich jemand mit NLP mittels spacy in Python aus? Es geht sich 
konkret darum aus einem Datensatz von Zwangsversteigerungen den 
Verkehrswert zu ermitteln. Die habe ich von einer Website geparsed. 
Jetzt ist es so, dass manchmal ein ganzer Fließtext drin ist und da 
steht dann sowas wie "lfd. nr. 5) 3000.00,00€ .... Gesamtwert 
500.000,00-EUR" und dann sind da noch sicherheitsleistungen drin usw. 
Das ist völlig inkonsistent. Manchmal sind auch Auflistungen drin. Ich 
denke ihr versteht das Problem.

Spacy habe ich generell ans laufen bekommen und das spuckt mir auch 
tokens aus aber ich würde gerne alle Beträge haben und 
Sicherheitsleistung, Iban oder andere zahlen ignorieren. Was wären da 
Ansätze?

von Ein T. (ein_typ)


Lesenswert?

Justin E. schrieb:
> Spacy habe ich generell ans laufen bekommen und das spuckt mir auch
> tokens aus aber ich würde gerne alle Beträge haben und
> Sicherheitsleistung, Iban oder andere zahlen ignorieren. Was wären da
> Ansätze?

Hmmm... naja, spaCys Token haben ja bestimmte Eigenschaften, also 
Part-of-Speech (POS), Lemma, is_digit() und so weiter. Da könnte man die 
Zahlen ja erstmal extrahieren und zusammen mit ihrem Kontext speichern, 
jeweils eine Continuous Bag of Words (CBOW) daraus machen oder 
vielleicht einfach die Word Vectors von spaCy nehmen, und dann mit ein 
überwachtes Lernen darauf trainieren. Eventuell ein RNN, LSTM oder CNN, 
wenn Du genug Trainingsdaten hast oder welche erzeugen kannst. Wenn 
nicht, geht möglicherweise auch eine SVM oder ein SGDRegressor, aber... 
YMMV, HTH.

PS: Die Word Embeddings, in spaCy Word Vector genannt, sind übrigens nur 
in den größeren Modellen vorhanden, das steht in der Dokumentation zum 
Modell. Außerdem haben die Token eine Methode has_vector, IIRC.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.