2015-01-07 7 views
5

Ich habe eine Sammlung von Rechnungen und Rechnungen, so gibt es keinen Kontext im Text (ich meine, sie erzählen keine Geschichte). Ich möchte Leute Namen aus diesen Rechnungen extrahieren. Ich versuchte OpenNLP, aber die Qualität des trainierten Modells ist nicht gut, weil ich keinen Kontext habe. so die erste Frage ist: Kann ich trainieren Modell enthält nur Personen Namen ohne Kontext? und wenn das möglich ist, kannst du mir einen guten Artikel dafür geben, wie ich dieses neue Modell baue (der Großteil des Artikels, den ich gelesen habe, hat nicht die Schritte erklärt, die ich machen sollte, um ein neues Modell zu bauen).Extract Person Name von unstrukturierten Text

Ich habe Datenbankname mit mehr als 100.000 Personenname (Vorname, Nachname), also, wenn die NER-Systeme in meinem Fall nicht funktionieren (weil es keinen Kontext gibt), was ist der beste Weg zu suchen diese Kandidaten (ich meine Suche nach jedem Vornamen mit allen anderen Nachnamen?)

danke.

Antwort

2

In Bezug auf "Kontext", ich denke, Sie meinen, dass Sie nicht ganze Sätze haben, d. H. Keine vorherigen/nächsten Token, und in diesem Fall stehen Sie einem nicht-Standard-NER. Mir sind keine verfügbaren Software- oder Trainingsdaten für dieses spezielle Problem bekannt. Wenn Sie keine gefunden haben, müssen Sie Ihr eigenes Korpus für Trainings- und/oder Bewertungszwecke erstellen.

Ihre Datenbank der Namen wird wahrscheinlich sehr helfen, abhängig davon, welcher Anteil der Rechnungsnamen tatsächlich in der Datenbank vorhanden sind. Sie werden sich wahrscheinlich auch auf die Morphologie von Namen auf Zeichenebene als Muster verlassen müssen (siehe zum Beispiel Muster in [1]). Sobald Sie ein Trainings-Set mit Funktionen (Präsenz in der Datenbank, Morphologie, andere Informationen der Rechnung) und Lösungen (tatsächliche Namen von kommentierten Rechnungen) haben, wird die Verwendung von Standard-Machine-Learning als SVM ziemlich einfach sein (wenn Sie nicht damit vertraut sind, einfach fragen).

Einige andere Vorschläge:

  • Sie am meisten kann wahrscheinlich andere auch Informationen der Verwendung Rechnung: name Unternehmen, Positionen, Steuern erwähnt usw.
  • Sie können auch in aa selektiv vorgehen - wenn alle Rechnungen sollten Erwähnen Sie (genau?) den Namen einer Person, können Sie alle anderen Texte (zB Beträge, Steuernamen, Positionen etc.) ausschließen oder in einem dedizierten Modell davon ausgehen, dass unter allen Texten einer Rechnung nur einer als Name erraten werden sollte.

[1] Ranking-Algorithmen zur Extraktion Named-Entity: Steigerung und stimmten Perzeptron (Michael Collins, 2002)

2

ich mit einigen regulären Ausdrücken beginnen würde, dann ist das möglicherweise erweitern mit einem Wörterbuch-basierten Ansatz (dh große Liste von Namen).

Egal, was Sie tun, es wird nicht perfekt sein, also denken Sie daran, dies zu beachten.