6
votes

Analyser un nom complet dans ses constituants

Nous avons besoin de développer une application de back-end qui peut analyser un nom complet dans

Prefix (Dr. Mr. Ms. etc)
First Name
Last Name
Middle Name
etc


11 commentaires

Ce problème est intraitable, de l'expérience antérieure.


Il est impossible de résoudre en général. Parfois, le prénom et le nom de famille sont indiscernables, par exemple John Kurt. Les deux sont des prénoms possibles.


J'ai un ami avec trois mots distincts dans son nom de famille. Pas mal hyphéré. Bonne chance.


Si vous devez gérer les noms arabes ou indiens, cela va devenir encore plus intangible. Je suggérerais que vous demandiez à vos clients d'entrer dans leur premier, dernier, votre famille, etc. Les noms séparément et simplement passer par ce qu'ils disent. Je ne pense pas qu'il soit possible d'analyser un nom dans ces composants.


Barney Frank est un politicien, Frank Barney est un artiste. Comment pourriez-vous deviner quel format le nom complet est-il?


Le seul fait que vous utilisez les expressions "Prénom" et "Nom" suggère que vous sous-estimez les problèmes. Dans de nombreux pays asiatiques, le nom de la famille est mis en premier - et c'est la moindre des complications potentielles.


Oublié à ce sujet. À moins que vous ne receviez cela comme une valeur séparée, cela ne peut pas être fait. Et je doute vraiment que ce soit nécessaire. Si vous avez une telle exigence, cela signifie probablement que quelqu'un n'aimait pas clairement ce qu'il veut vraiment.


Le pays et la langue ne suffisent pas, car on sait que les gens se déplacent dans d'autres pays. Ou les pays changent leurs frontières, tandis que les gens restent en place.


Merci pour toutes les suggestions utiles proposées ici. Va certainement chercher à éviter cela en premier lieu.


Le problème sous-jacent n'est-il pas un linguistique? Peut-être une bonne question pour linguistique.stackexchange.com Le domaine de la linguistique traitant des noms des personnes s'appelle "anthroponymie".


Regardez Ma réponse à une question similaire.


9 Réponses :


8
votes

Je pense que c'est impossible. Considérez Ralph Vaughan Williams. Son nom de famille est "Vaughan Williams" et son prénom est "Ralph". Contraste cela avec Charles Villiers Stanford, dont le nom de la famille est "Stanford", avec le prénom "Charles" et le deuxième prénom "Villiers".

Les deux sont des compositeurs anglophones d'Angleterre, de sorte que les informations de pays et de langue ne sont pas suffisantes pour établir la logique d'analyse correcte.


0 commentaires

1
votes

"Ashton Jordan" "Jordan Ashton" - U ne peut pas dire quel est le nom de famille et qui est le nom de votre compte. De plus, les habitants de l'Inde du Sud n'ont apparemment pas de nom de famille. La même chose avec des sherpas dans l'Himalaya.

Mais dites que vous avez une énorme liste de tous les noms de famille (qui ne sont jamais utilisés comme noms donnés), vous pouvez peut-être l'utiliser pour identifier d'autres parties du nom (salutations / données / Middle / JR / SR / I / II / I / II / ...) Et s'il y a une ambiguïté, votre nom-parseur pourrait demander une entrée humaine.


0 commentaires

2
votes

La seule approche raisonnable consiste à éviter de devoir le faire en premier lieu. La voie la plus évidente (et la plus commune) de faire, c'est que l'utilisateur doit entrer le titre, le nom d'abord / le nom / nom, le dernier nom / famille, le suffixe, etc., séparément les uns des autres, plutôt que de tenter de les analyser d'un seul chaîne.


2 commentaires

Même ceci est problématique, car toutes les personnes n'ont pas de "nom de famille" ou "nom de famille", et en fonction de la juridiction, elles sont parfois légalement traitées comme si elles n'ont pas de prénom ...


@R .. +1. Il y avait un professeur indonésien chez mon université qui a utilisé un nom. Étant donné que "le prénom" et "nom de famille" étaient obligatoires dans la base de données qui a conduit le processus de planification du cours, il a reçu le prénom "M.". Je suppose que le champ "Titre" était manquant ou facultatif.



2
votes

Demandez-vous: êtes-vous vraiment besoin les différentes parties d'un nom? Les noms d'analyse sont intrinsèquement non facitables, car différentes cultures utilisent différentes conventions (par exemple le deuxième prénom "est une ISM typique-ism) et un faible pourcentage de noms sera toujours être traité à tort.

Il est très préférable de traiter un nom comme une entité "atomique" non éclaitable.


1 commentaires

+1, mais alors vous rencontrez des conventions culturelles ridicules comme assemblées par nom de famille ....



1
votes

Comme d'autres ont expliqué, le problème n'est pas satisfait. La meilleure approche que je puisse penser à stocker des noms consiste à stocker le nom complet, suivi du démarrage (et de finir également également) dans un «sous-champ de rassemblage primaire» que la personne entrant sur le nom aurait pu indiquer en soulignant ou en surbrillance. Par exemple

John Robert Miller , JR.

Lorsque laface gras indique ce qui a été marqué comme le "sous-champ d'assemblage primaire". Cette plage serait alors déplacée au début de la chaîne lors de la génération de la clé de collecte.

Bien sûr, cette approche seule peut ne pas être suffisante si vous souhaitez également soutenir les titres (et les ignorer à des fins de collement) ...


1 commentaires

+1 .. Selon w3.org/international/Questtions/qa-personal- Les noms , les noms japonais sont rassemblés en fonction de la prononciation. Donc, pour prendre cette approche un pas plus loin, vous stockeriez le texte de collation réel plutôt que dans une paire de compensations, car le texte de collation n'est pas toujours contenu dans le nom.



8
votes

Depuis que l'OP était ouvert à n'importe quelle offre disponible dans le commerce ...

L'analyse "IBM InfoSphere Global Name Analytics" semble être une solution commerciale satisfaisant à la demande initiale de l'analyse d'un nom personnel [non structuré de forme libre] [nom complet]; apparemment avec un degré de certitude en ce qui concerne la résolution de certaines des questions d'ambiguïté du nom mentionnées dans d'autres réponses.
Remarque: Je n'ai aucune expérience personnelle ni association avec le produit, je n'avais simplement rencontré cette discussion et les liens de référence suivants tandis que Rééquilibrer efficacement la même préoccupation que celle décrite par l'OP. Hth.

Lien de documentation générale du produit:
http: // Publib. Boulder.ibm.com/infocenter/gnrgna/v4r1m0/topic/com.ibm.gnr.gna.ic.doc/topics/gngr_gna_con_gnaoverview.html

Reportez-vous aux "Noms d'analyse à l'aide de noms de nomser" de
http: // Publib. Boulder.ibm.com/infocenter/gnrgna/v4r1m0/topic/com.ibm.gnr.gna.ic.doc/topics/gnr_np_con_parsingnamesUSTNameParser.html

Le nom de nomser est une API de composant pour le produit par
http: // Publib. Boulder.ibm.com/infocenter/gnrgna/v4r1m0/topic/com.ibm.gnr.gna.ic.doc/topics/gngr_gnm_con_logicalarchiteceurecapis.html

Reportez-vous aux «Noms d'analyse à l'aide de IBM NomWorks» de
http: // Publib. Boulder.ibm.com/infocenter/gnrgna/v4r1m0/topic/com.ibm.gnr.gna.ic.doc/topics/gngr_gnm_con_parsingNamesUSUserNameworks.html

"IBM Nameworks combine les composants de reconnaissance de noms mondiaux d'IBM InfoSphere individuels dans une interface de programmation d'application unique, unifiée et facile à utiliser (API), et étend également cette fonctionnalité aux applications Java et en tant que service Web"

http: / /publib.boulder.ibm.com/infocenter/gnrgna/v4r1m0/topic/com.ic.ibm.gngr.gna.ic.doc/topics/gnr_gnm_con_logicalarchitecurenwapis.html

Pour clarifier pourquoi je pense que cela répond à la question, améliorant certaines des difficultés mentionnées précédemment dans l'accomplissement de la tâche ... Si j'ai bien compris ce que je lis, les API utilisent le "Server NomHunter" pour rechercher "IBM Infosphere Global Nom Data Archive (NDA) "qui est décrit comme" une collection de près d'un milliard de noms du monde entier, ainsi que de sexe et de pays d'association pour chaque nom. Ce grand référentiel de noms de nom pouvant entraîner des algorithmes et des règles que IBM Infosphere Global Nom Reconnaissance Produits Utilisez des noms de catégorisation, de classification, d'analyse, de genre et de correspondance. "

FWIW I a également couru sur un "nom d'analyseur" qui utilise une base de données de noms de 140k comme indiqué à:
http://www.melissadata.com/dqt/websmart-web-services.htm < / p>


0 commentaires

2
votes

Voici deux bibliothèques d'analyse de noms PHP gratuits pour celles sur un budget:

https://code.google.com/p/php-name-parser /

http://jasonpriem.org/human-name-parse/

et voici une bibliothèque JavasRIPT dans le gestionnaire de packages de nœud:

https://npmjs.org/package/name-parser


0 commentaires

2
votes

J'ai écrit un analyseur de noms humain simple en JavaScript sous forme de module NPM:

https: // www .npmjs.org / package / humanparser p>

humanparser p>

Paysez une chaîne de noms humaine dans la salutation, prénom, prénom, nom de famille, suffixe. P>

Installer p>

var human = require('humanparser');

var fullName = 'Mr. William R. Jenkins, III'
    , attrs = human.parseName(fullName);

console.log(attrs);

//produces the following output

{ saluation: 'Mr.',
  firstName: 'William',
  suffix: 'III',
  lastName: 'Jenkins',
  middleName: 'R.',
  fullName: 'Mr. William R. Jenkins, III' }


0 commentaires

2
votes

Un algorithme de base pourrait faire ce qui suit:


0 commentaires