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
9 Réponses :
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". P>
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. P>
"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. P>
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. P>
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. p>
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.
Demandez-vous: êtes-vous vraiment besoin em> 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 em> être traité à tort. P>
Il est très préférable de traiter un nom comme une entité "atomique" non éclaitable. P>
+1, mais alors vous rencontrez des conventions culturelles ridicules comme assemblées par nom de famille ....
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 p>
John Robert Miller Strong>, JR. P> blockQuote>
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. P>
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) ... P>
+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.
Depuis que l'OP était ouvert à n'importe quelle offre disponible dans le commerce ... p>
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. P>
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 p>
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 P>
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 P>
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 P>
"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" P >
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. " P>
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>
Voici deux bibliothèques d'analyse de noms PHP gratuits pour celles sur un budget: p>
https://code.google.com/p/php-name-parser / p>
http://jasonpriem.org/human-name-parse/ P >
et voici une bibliothèque JavasRIPT dans le gestionnaire de packages de nœud: P>
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' }
Un algorithme de base pourrait faire ce qui suit: p>
To go beyond that would be lots of work, see How to parse full names< / a> Pour identifier les avenues pour l'amélioration et voir ces documents IBM concernés pour d'autres indices de mise en œuvre P>
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.