Daten aus doc, pdf .... auslesen

Moinsn

Mitglied
Moinsn,

Ich bin grad dran eine Lösung zum auslesen von Daten aus Bewerbungen zu finden. Eine Personalabteilung würde gern die Daten nach Schlagwörtern durchsuchen und in SugarCRM einpflegen können. Das Problem dabei ist, dass die Bewerbungen in unterschiedlichen Formaten und Formatierungen vorliegen. Hat vllt. jmd. von euch nen Lösungsansatz?

DANKE
 

Moinsn

Mitglied
Na das ist ja schon mal die halbe Miete. Nur werde ich spätestens bei den unterschiedlichen Formulierungen in den Bewerbungen Probleme bekommen. Ich werde also wahrscheinlich bestimme Schlagwörter (z.B "Kenntnisse" o. "Fähigkeiten") vordefinieren müssen und dann hoffen dass ich so auf halbwegs vernünftige Resultate komme. Das nächste Problem wird wohl sein, dass das Programm nicht weiß wie viel des nach einem Schlagwort kommenden Text auch wirklich zu einem Schlagwort gehört.

Das wird wohl alles gar nicht so leicht. Evtl. hat ja hier jmd. schon Erfahrungen mit etwas ähnlichen gesammelt und somit ein paar Tipps für die Herangehensweise.
 
S

SlaterB

Gast
Tipp: gib gleich auf, bzw. begnüge dich damit, den Text als ganzes zu extrahieren
oder wie es am Anfang klingt die Information Schlagwort 'x' vorhanden: ja/nein herauszufinden

je nach Strukturierung mit (unsichtbaren) Tabellen usw. könnte die Auslesereihenfolge auch
"Name"
"Ort"
"Kenntnisse"
"Fähigkeiten"
"Max"
"München"
"Java"
"Jonglieren"
sein

neben all den weiteren Problemen wie 400 mögliche Formulierungen der Kategorie 'Name'
 
G

Gonzo17

Gast
Na das ist ja schon mal die halbe Miete. Nur werde ich spätestens bei den unterschiedlichen Formulierungen in den Bewerbungen Probleme bekommen. Ich werde also wahrscheinlich bestimme Schlagwörter (z.B "Kenntnisse" o. "Fähigkeiten") vordefinieren müssen und dann hoffen dass ich so auf halbwegs vernünftige Resultate komme. Das nächste Problem wird wohl sein, dass das Programm nicht weiß wie viel des nach einem Schlagwort kommenden Text auch wirklich zu einem Schlagwort gehört.

Das wird wohl alles gar nicht so leicht. Evtl. hat ja hier jmd. schon Erfahrungen mit etwas ähnlichen gesammelt und somit ein paar Tipps für die Herangehensweise.

Wie SlaterB sagt ist es wohl am einfachsten und eindeutigsten, wenn du nur überprüfst, ob das Schlagwort da ist. Wenn es zB um bestimmte Qualifikationen geht, dann kannst du einfach diese bestimmten Worte abfragen und wenn keines zutrifft, dann ist die Wahrscheinlichkeit schon recht hoch, dass der Bewerber das nicht drin stehen hat und tatsächlich diese Qualifikation nicht hat.

Beim Erfassen von Daten wie dem Namen würde ich arg aufpassen. Es gibt Menschen mit zwei Nachnamen, zwei Vornamen, noch mehr Vornamen, doppelte Nachnamen, Geburtsnamen - das kann man ja nicht ohne Weiteres auseinanderhalten. Alternative: ein eigenes Bewerbungsformular zur Verfügung stellen. Ich erinnere mich, dass man bei SAP seine Daten (Name, Geburtsdaum, usw) manuell eingegeben hat und als Anhang dann einen Lebenslauf anhängen musste. Somit hatten die aber auf jeden Fall schonmal meine Basisdaten direkt extrahiert ohne größeren Aufwand.
 

Moinsn

Mitglied
Ihr habt wohl recht und bestätigt damit das, was ich mir von Anfang an dachte. Aus den Bewerbungen 100%tig valide Textpassagen raus ziehen und in die dazugehörigen Sugar Tabellen ballern wird wohl kaum möglich sein. Ich werde wohl ein Online- Bewerbungsformular vorschlagen müssen, bei dem es so läuft wie Gonzo17 vorgeschlagen hat. Das machen ja große Firmen wie Lufthansa, SAP, u. IBM alle so.
Nur sind damit leider die vorhandenen 3800 Bewerbungen noch nicht im System.

Dafür wird wohl ein Praktikant der benachbarten Uni her halten müssen :D
 
G

Gonzo17

Gast
Ne, 100% zu erreichen ist da quasi unmöglich. Selbst wenn es einheitliche Schreibweisen für eine Bewerbung und einzelne Felder wie Name, Wohnort, usw gäbe, dann würden es doch trotzdem 50% der Bewerber nicht schaffen, die komplett einzuhalten. Und man will ja auch nicht bei jedem zweiten Bewerber die Hälfte der Daten dann doch wieder manuell abtippen. Deswegen eben die Eingabe verschiedener Daten "erzwingen" mit einem Formular. Den Lebenslauf nach Stichworten durchsuchen kann man ja trotzdem machen - aber eben als "Extra".

Dafür wird wohl ein Praktikant der benachbarten Uni her halten müssen :D

Immer die Praktikanten :)
 
D

Dow Jones

Gast
Das wird wohl alles gar nicht so leicht. Evtl. hat ja hier jmd. schon Erfahrungen mit etwas ähnlichen gesammelt und somit ein paar Tipps für die Herangehensweise.

Das zwar nicht direkt, aber ich war mal HiWi am Lehrstuhl für Information Retrieval. Dort beschäftigt man sich mit genau solchen Fragen, von daher solltest du dich in dem Bereich mal einlesen. Mich selbst hat das allerdings nie interessiert, ich habe dort nur vorübergehend meine Brötchen verdient.

Nur werde ich spätestens bei den unterschiedlichen Formulierungen in den Bewerbungen Probleme bekommen.

Da könnte es schon helfen auf die Texte einen einfachen Stemming-Algorithmus anzuwenden und bei einem eingegebenen Suchwort das Woxikon nach Synonymen zu befragen.

Das nächste Problem wird wohl sein, dass das Programm nicht weiß wie viel des nach einem Schlagwort kommenden Text auch wirklich zu einem Schlagwort gehört.

Dafür gibt es durchaus Maßeinheiten: Relevance (wie Relevant ist ein Text für ein Thema?), Coverage (wie erschöpfend behandelt der Text das Thema?), NameVergessen (wieviel unnötiges Gesülze steht in dem Text?) etc.
Das ganze ist so eine Wissenschaft für sich, aber da man bei Bewerbungen ja relativ genau weiss welchen Inhalt man bei den Texten erwarten kann - möglicherweise kann man ja schon mit recht geringem Aufwand brauchbare Ergebnisse erzielen. :)
 
G

Gonzo17

Gast
Das ganze ist so eine Wissenschaft für sich, aber da man bei Bewerbungen ja relativ genau weiss welchen Inhalt man bei den Texten erwarten kann - möglicherweise kann man ja schon mit recht geringem Aufwand brauchbare Ergebnisse erzielen. :)

Das ist vielleicht so ein bisschen das Problem. Es gibt ja möglicherweise durchaus Lösungsansätze, aber kommt man da ohne Vorkenntnisse und Erfahrung so schnell rein, dass es sich lohnt? Der Aufwand zu Beginn könnte eben sehr hoch sein.
 

Moinsn

Mitglied
Ich glaube den Aufwand (Einarbeitung und Implementierung) werden die wohl kaum in Geld Aufwiegen wollen. Es ist, wie ich mir schon von Anfang an dachte, mal wieder komplizierter als der Kunde das dachte.
Nichts desto trotz muss wohl irgendeine Lösung her. Ich bin schon am überlegen ob sich die Windows eigene Suche nicht irgendwie Benutzerfreundlich einrichten lässt. Da könnten die ja wenigstens bspw. "inhalt: iOS" eingeben und bekommen, wenn die Indizierung eingeschaltet ist, relativ zügig eine Liste mit Bewerbern die das in der Bewerbung stehen haben und somit evtl. in Frage kommen. Nur wie das jetzt mit SugarCRM verknüpft werden kann weiß ich noch nicht.
Hab nachher n Meeting und werde mir erstmal einen genauen Überblick über die Anforderungen verschaffen. :)

DANKE für eure Tipps.
Das ist alles viel Wert zumahl ich als Entwickler noch in den Kinderschuhen stecke und einiges noch nicht kenne.
 
D

Dow Jones

Gast
Ich glaube den Aufwand (Einarbeitung und Implementierung) werden die wohl kaum in Geld Aufwiegen wollen. Es ist, wie ich mir schon von Anfang an dachte, mal wieder komplizierter als der Kunde das dachte.
Yo, wenn man sowas "gut" machen will, dann muss man sich wohl entweder wochenlang in so ein Fachgebiet einlesen - oder den fachkundigen Praktikanten von der Uni einstellen. ;)

Falls das wochenlange studieren nicht in Frage kommt, und du keine fertige Library für deine Zwecke findest, würde ich mal folgendes versuchen (sauge ich mir gerade aus den Fingern, also keine Garantie das es was taugt):

Beim Einlesen der Bewerbungen könnte es sich lohnen gleich ein Preprocessing durchzuführen. Um die Bewerbungstexte ersteinmal etwas zu strukturieren könnte man versuchen jeden Absatz einem Thema zuzuordnen. Dabei würde ich einen Absatz nach einer vordefinierten Liste von Schlagwörtern und deren Synonymen (bezüglich der verschiedenen Themen) durchsuchen und für jedes Vorkommen eines Schlagworts Punkte vergeben.
Beispiel: Wenn in dem Absatz die Wörter Fähigkeiten oder Kenntnisse vorkommen, zählt das jeweils 5 Punkte für das Thema Qualifikationen. Interesse gibt dagegen nur 3 Punkte. Wörter wie Eltern oder Geschwister zählen 5 Punkte im Bereich Familiengeschichte. Vater könnte 2 Punkte für Familiengeschichte und einen Punkt für Qualifikationen geben (ein Satz a là "in der Autowerkstatt meines Vaters lernte ich..." ist ja gar nicht mal unüblich).
Am Ende wird der Absatz halt dem Thema zugeordnet, das die meisten Punkte gesammelt hat. Falls kein Thema eine klare Punktmehrheit hat könnte man den Kontext zur Entscheidung heranziehen (also die Themen der vorrangegangenen und nachfolgen Absätze). Oder den User bitten den Absatz manuell einem Thema zuzuordnen.
Gegebenenfalls kann man die Absätze/Bewerbungen dabei auch gleich nach den gefundenen Synonymen indizieren (also vermerken, das dort beim Thema Qualifitationen das Wort Ingenieur gefunden wurde (oder Techniker, Konstrukteur... etc).

Nach dem gleichen Verfahren könnte man anschließend hergehen und die einzelnen Absätze weiter auseinandernehmen (um Beispielweise Ingenieure von Sekretärinen zu unterscheiden).

Die Suchworte die der Anwender - also der Personalbearbeiter - eingibt sollten mit der oben erwähnten Liste von Schlagwörtern/Synonymen abgeglichen werden. Der Anwender kann dann wählen ob er z.B. alle Bewerbungen von Ingenieuren (und Artverwandten) sehen möchte, oder alle Bewerbungen die etwas mit Design zu haben, oder ob er einfach nach genau einem Suchwort suchen möchte (beispielsweise der Stellenbezeichnung, die in einer Ausschreiben angegeben war).


Bei alldem muß man sich allerdings immer im Klaren darüber sein das ein solches Verfahren "beliebig falsche" Ergebnisse produzieren kann. Die Fantasie eines Softwareentwicklers ist nie so groß wie die Kreativität der Anwender/Bewerbungsschreiber... Gerade wenn man die erwähnte Liste von Schlagwörtern und deren Synonymen anlegt. Von daher ist es keine Schande wenn die Software auch mal ein unzutreffendes Suchergebnis anzeigt, oder schlicht sagt: "weiss ich nicht". Sinnvoll wäre es da wohl den Suchergebnissen ein Rating zu verpassen und sie anschließend nach diesem Rating sortiert anzuzeigen. Wäre allemal besser als wenn eine Bewerbung wegen nicht bedachter Formulierungen oder Tipp-/Konvertierungsfehler durchs Raster fällt.


Denkbar ist es natürllich das der Anwender nach Daten suchen möchte, die sich damit nicht so ohne weiteres erfassen lassen, etwa nach dem Alter des Bewerbers oder dessen Berufserfahrung. Da kann man sich zwar auch einfache Methoden für überlegen, um so etwas automatisch aus Texten herauszulesen, allerdings würde ich mich darauf eher nicht einlassen. Wenn man sich im Bereich Information Retrieval nicht auskennt und nur einfach mal so etwas zusammenhackt, dann dürfte die Fehlerrate zu hoch sein als das man es guten Gewissens verwenden kann. Selbst bei uns an der Uni wurden sämtliche Ergebnisse von Hand verifiziert (wobei wir aber auch nichts Produktives erarbeiten wollten, sondern uns nur mit experimentellen Kram beschäftigt haben).


Viel Erfolg! :)


PS: Der Porter Stemmer ist easy zu implementieren und wird dir sicherlich gute Dienste Leisten
 

Moinsn

Mitglied
Ich bin beeindruckt dass du dir da mal eben ne ziemlich sinnvolle Geschichte zusammengedacht hast. Hört sich sogar mehr oder weniger umsetzbar an. Nur für mich Noob eben nicht ^^

Ich habe nun eine Gängige Lösung gefunden ...
Hab mir überlegt einen Tomcat Server aufzusetzen auf dem Apache Solr läuft, alle Dokumente indiziert und somit eine Volltextsuche zur Verfügung stellt. Die muss nun nur noch in SugarCRM integriert werden und schon hat die Personalabteilung die Möglichkeit alle Bewerbungen nach allen Möglichen Daten zu Durchsuchen.

Das sollte die Aufgabenstellung lösen und für mich mehr oder weniger umsetzbar sein wenn ihr mir weiterhin so klasse Feedback gebt.

DANKE für alles!
BisDensn
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
torresbig Url nach Webseiten-Login auslesen & Daten an Webseite senden Allgemeine Java-Themen 9
J Daten aus Website-Quelltext auslesen Allgemeine Java-Themen 62
A Erste Schritte Daten aus einer Website auslesen Allgemeine Java-Themen 7
J Auslesen Daten Java/HTML Allgemeine Java-Themen 15
M Daten aus anderen Programmen auslesen Allgemeine Java-Themen 2
G Daten aus Website auslesen Allgemeine Java-Themen 7
J Daten aus GUI auslesen und in Objekte umwandeln Allgemeine Java-Themen 6
OnDemand PC identifizieren / Daten auslesen Allgemeine Java-Themen 15
R Daten aus DB auslesen in ein formular (JSP) Allgemeine Java-Themen 13
D Daten eines User auslesen. Allgemeine Java-Themen 5
N Methoden Einzelne Daten aus "Person" auslesen Allgemeine Java-Themen 3
R SerialPort auslesen und Daten verarbeiten Allgemeine Java-Themen 23
Z Daten aus einer Internetseite auslesen? Allgemeine Java-Themen 2
W Datei auslesen und die Daten weiter verarbeiten Allgemeine Java-Themen 4
N Serielle Schnittstelle / COM-Port auslesen und die empfangenen Daten verarbeiten Allgemeine Java-Themen 1
C Daten aus Internetseite (in PHP) auslesen? Allgemeine Java-Themen 6
S Java Methode um Daten aus MySQL auslesen Allgemeine Java-Themen 11
ruutaiokwu MS Exchange Server 2003 Daten auslesen Allgemeine Java-Themen 2
P Systemspezifische Daten mit Java auslesen Allgemeine Java-Themen 2
G Monitor-Daten auslesen Allgemeine Java-Themen 18
H Daten aus MySQL datenbank auslesen und in ArrayList stecken Allgemeine Java-Themen 8
G Daten aus Fremdanwendung auslesen Allgemeine Java-Themen 4
H Daten aus Excel auslesen Allgemeine Java-Themen 6
M Auslesen von Daten aus einer txt Datei fast funktionierend Allgemeine Java-Themen 2
S Daten aus Excel mit POI auslesen Allgemeine Java-Themen 6
T Daten einer Chipkarte über einen Chipkartenleser auslesen Allgemeine Java-Themen 3
I Mehrere Klassen mit den selben Daten Allgemeine Java-Themen 5
padde479 Collections Daten in Dreiecksform Allgemeine Java-Themen 13
V Umgang mit fehlenden Daten in einer Java-Datenanalyseanwendung Allgemeine Java-Themen 5
A Hartgecodete Daten auslagern Allgemeine Java-Themen 4
F Laden von bestimmten Daten aus TAR Archiv Allgemeine Java-Themen 23
S Webservices für binäre Daten? Allgemeine Java-Themen 5
OnDemand Daten in RAM zwischenspeichern oder lieber aus DB holen? Allgemeine Java-Themen 24
J Daten über serielle Schnittstelle empfangen Allgemeine Java-Themen 4
J JSON Daten von einer Webseite erhalten Allgemeine Java-Themen 2
S Entities aus XML - Daten. Allgemeine Java-Themen 1
M Schnelleres Speichern von XML-Daten über URLConnection Allgemeine Java-Themen 4
kodela Klasse mit "gezipten" Daten Allgemeine Java-Themen 6
M Daten aus MatLab Datei lesen Allgemeine Java-Themen 8
N Daten einer JCoTable in JTextArea anzeigen Allgemeine Java-Themen 7
kodela Klassen Klasse "vergisst" ihre Daten Allgemeine Java-Themen 2
C Daten für Klassifikationsverfahren gewinnen Allgemeine Java-Themen 6
J Daten von Quelltext Allgemeine Java-Themen 5
K OOP Daten addieren sich bei GUI-Eingabe Allgemeine Java-Themen 10
J Jasper Reports - Daten vom Hoster Allgemeine Java-Themen 2
kodela Daten während Laufzeit zugriffsbereit Allgemeine Java-Themen 15
J Millisekunde zwischen 2 Daten Allgemeine Java-Themen 6
Q Selbständig ActionEvent auslösen zum Daten senden über serielle Schnittstelle Allgemeine Java-Themen 7
R Android Daten online senden Allgemeine Java-Themen 0
P Datenbank-MiniGUI fügt keine Daten ein Allgemeine Java-Themen 4
K Gespeicherte Daten von einer LinkedList auf vier LinkedList verteilen Allgemeine Java-Themen 6
Q-bert Daten von Java Programm speichern Allgemeine Java-Themen 4
K Datei (CSV-ähnlich) in Java einlesen & mit teil der Daten Graphen erstellen Allgemeine Java-Themen 9
OnDemand Desktop-Applikation schreiben, wie daten persistent? Allgemeine Java-Themen 9
S Erste Schritte Fehlender Gedanken-Ansatz bei Interpretation von Daten Allgemeine Java-Themen 1
K Große Mengen an Daten speichern Allgemeine Java-Themen 9
D Daten in MySQL-Datenbank schreiben Allgemeine Java-Themen 13
A Swing FileWriter schreibt keine Daten in Datei Allgemeine Java-Themen 13
D Best Practice Login-Daten: Wie am besten abrufen? Allgemeine Java-Themen 6
L Best Practice Log Dateien analysieren und eventuell passende Daten am Chart darstellen Allgemeine Java-Themen 1
J Serial Port Daten empfangen Allgemeine Java-Themen 5
H Daten via COM Schnittstelle erhalten Allgemeine Java-Themen 2
J Daten persistent speichern Allgemeine Java-Themen 14
S Allgemeine parallelisierte Loesung um Daten im Hintergrund zu laden..? Allgemeine Java-Themen 6
L Daten ohne Datenbank richtig abspeichern Allgemeine Java-Themen 5
O Serial Port Daten als Tastaturanschlag senden Allgemeine Java-Themen 0
N Zeitabstand zwischen 2 Daten(Mehrzahl von Datum) Allgemeine Java-Themen 3
T Input/Output Daten in eine Datei schreiben Allgemeine Java-Themen 4
Z daten bindung Allgemeine Java-Themen 1
A Datentypen Gregorian Calendar - 2 Daten sind gleich?? Allgemeine Java-Themen 3
L Vergleich-Xml-Daten Allgemeine Java-Themen 3
vandread Daten verschlüsseln mit Java oder Datenbank Allgemeine Java-Themen 15
A Daten in Formularen/Vorlagen erstellen und ausdrucken Allgemeine Java-Themen 3
C HtmlUnit Daten einer Tabelle bekommen ohne, dass diese eine ID aufweist Allgemeine Java-Themen 1
T Daten über port abfangen mit proxy server Allgemeine Java-Themen 12
Todesbote Excel Blattschutz aufheben und Daten einfügen Allgemeine Java-Themen 3
T Mit Apache Poi Daten aus einer Excel Tabelle kopieren und in Word einfügen Allgemeine Java-Themen 1
G Combobox füllen mit daten aus einer Tabelle Allgemeine Java-Themen 4
J Maven .war enthält veraltete Daten Allgemeine Java-Themen 3
N Daten aus Jar laden Allgemeine Java-Themen 10
P Datentypen String-Daten zu Byte-Zahlen konvertieren - Komme nicht weiter nach vielem versuchen :-/ Allgemeine Java-Themen 7
K Input/Output Daten speichern / laden Allgemeine Java-Themen 2
M Best Practice: Daten aufnehmen-speichern-bereitstellen Allgemeine Java-Themen 8
T Daten effizient verwalten Allgemeine Java-Themen 4
B JTable eigene Daten Add Methode Allgemeine Java-Themen 2
S OOP Apache Commons Math - Verwendung von Genetics - Wie werden Daten in Chromosomen gespeichert? Allgemeine Java-Themen 4
C Daten über URL an PHP verschicken Allgemeine Java-Themen 4
S Library fuer Internet-Text-Daten-Quellen..? Allgemeine Java-Themen 8
H OOP Daten über TCP Allgemeine Java-Themen 5
H Input/Output Binäre Daten konvertieren, Output hat Zeilenumbrüche?? Allgemeine Java-Themen 9
B Input/Output Einbinden von Daten in Java Allgemeine Java-Themen 3
L Einbinden von Daten in ausführbare Jar Allgemeine Java-Themen 6
ARadauer Wo liegen die Daten der Preferences Klasse Allgemeine Java-Themen 3
Madlip Erste Schritte Java speichert Daten im Programm?!? Allgemeine Java-Themen 9
S JDialog Daten ins JFrame übergeben Allgemeine Java-Themen 5
F Threads synchronisierung des Zugriffes auf daten Allgemeine Java-Themen 4
O Amazon S3 Anmelden / Daten downloaden Allgemeine Java-Themen 2
A Daten aufbereiten Allgemeine Java-Themen 11
P Daten kopieren mit nio - Zugriff verweigert Allgemeine Java-Themen 8
L Speichern von Daten in JKS Allgemeine Java-Themen 5

Ähnliche Java Themen

Neue Themen


Oben