Frage

Ich bin auf der Suche nach Referenzen auf einen Namen zu trennen: "John A. Doe" in Teilen, zuerst = John, Mitte = A, liest = Doe.. In Mexiko haben wir väterlichen, mütterlichen, ersten und zweiten Namen gegeben und können in verschiedenen Permutationen geschrieben werden, so dass das Problem sehr komplex ist.

Da es auf Daten abhängt, arbeiten wir mit Software-Anpassung, die eine Punktzahl für jedes Wort berechnet, so dass wir Entscheidungen treffen (es basiert auf einer großen Datenbank). Die Eingangsdaten werden nicht sauber, wird es von einigen Regierungs Webseiten importiert und ist menschlich gefiltert, so dass es Junk haben könnte, die auch anerkannt werden muss. Irgendwelche Vorschläge?

[Bearbeiten] Beispiele:

name:
   Javier Abdul Córdoba Gándara
common permutations (or as it may appear in gvt data referring to same person):
   Córdoba Gándara Javier Abdul
   Javier A. Córdoba Gándara
   Javier Abdul Córdoba G.

paternal=Córdoba
maternal=Gándara
first given:Javier
second given:Abdul
name: María de la Luz Sánchez Martínez
paternal:Sánchez
maternal: Martínez
first given: María de la Luz
name: Paloma Viridiana Alin Arias Medina
paternal: Arias
maternal: Medina
first given: Paloma
second given: Viridiana Alin

Wie gesagt, was die Bedeutung jedes Wortes auf der Partitur abhängt. Man hat keine Möglichkeit zu wissen, dass

Viridiana
und
Alin
gegeben Namen, wenn nicht aus der Partitur.

Wir haben eine sehr starke Datenbank (80 Millionen Platten oder so), so können wir einige Verwendung des Scoring-Systems erhalten. Ich bin etwas Algorithmus entwerfen, die verwendet diese aber für andere Referenzen suchen.

War es hilfreich?

Lösung

Leider - und hat einiges an dieser Arbeit selbst getan - Ihr idealer Algorithmus sehr spezifischer Daten sein, und Sie müssen dies für Ihre spezielle Situation erarbeiten.

Von der insgesamt Zeit und Mühe, diesen Algorithmus zu entwickeln, würde ich die Zeit sagen wird grob wie folgt aufgeteilt werden:

  1. 10% für die allgemeine String-Manipulation
  2. 30% für die spezifische Natur des Daten (mexikanische Namensformate, Dateneingabe Macken)
  3. 60% sorgt für Datenqualität / Mangel an Qualität

Und ich glaube, dass in Richtung der allgemeinen String-Manipulation recht großzügig ist. Natürlich hängt es, ob Sie hochwertige Ergebnisse für alle Datensätze benötigen, oder nur die ‚sauberen‘ Aufzeichnungen usw., und wenn Sie die ‚schwierig‘ sind in der Lage zu ignorieren zeichnet sie es einfacher, viel machen.

Einige allgemeine Tipps

  • Wenn sie nicht benötigt werden, entfernen Sie nicht alphanumerische / Leerzeichen
  • Split auf die Felder
  • Verwenden Sie Bindestriche / Zeichensetzung zu identifizieren Nachnamen oder Familiennamen
  • Initialen (die im Allgemeinen Single Buchstaben) nicht Namen; das heißt, sie sein erster / mittel muss
  • bestimmen den Grad der Sicherheit, dass Sie die einzelnen Namen programmatisch identifiziert haben (und testen Sie diese gründlich). Sie können feststellen, es Teilmengen von Daten sind, die ähnliche Muster enthalten, die für individuell gesorgt werden müssen (sie aus unterschiedlichen Quellen stammen können usw.)

Andere Tipps

Sie müssen möglicherweise einige natürliche Sprache oder maschinelles Lernen hinzufügen zu überprüfen. Das Problem Autorenname zu identifizieren (zum Beispiel in wissenschaftlichen Arbeiten) ist schwierig, da sie mit unterschiedlichen Aufträgen gemeldet werden können, Grade Abkürzung, Elisionen usw. Wenn Ihre Datenbank verschmutzt ist, mit Mehrdeutigkeit zu beenden, was Sie tun.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top