J'ai une liste de noms et j'ai besoin de les diviser en premier et dernier noms. Comme certains noms ont 2-3 espaces, une division simple pour un espace ne fera pas. P>
Quel type d'heuristique utilise-t-il pour effectuer la scission? p>
Notez que ce n'est pas un duplicata de questions qui demandent efficacement à se séparer dans un espace; Je cherche des heuristiques et des algorithmes, pas d'aide de code réel. P>
mise à jour em>: Je limite le problème défini sur les noms de style anglais. C'est tout ce dont j'ai besoin pour résoudre et probablement tout ce que quiconque s'approche de cette question (langue anglaise) aura besoin aussi bien. P>
4 Réponses :
Différents pays et régions ont des formats différents pour les noms. Par exemple, l'Asie Le nom de la famille est généralement d'abord, puis des noms donnés suivent. L'Occident, vous avez le prénom et la convention de famille, mais sont compliqués lorsque les gens doublent le tonneau ou incluent des prénoms. Et puis quelques régions que les gens ne sont donnés qu'un seul nom. P>
Personnellement, je ne pense pas qu'il y ait un seul algorithme qui peut vous donner des résultats précis à 100%, j'ai peur. P>
Ce qui suit suppose des noms de famille en anglais. Si ce n'est pas le cas, veuillez mettre à jour votre question. P>
Il est généralement sûr de supposer que le dernier caractère spatial signale le début du nom de famille d'une personne. Mais comme il y a des exceptions, une stratégie serait de compiler une grande base de données de noms de famille multi-mots connus à partir d'une autre source. Vous pouvez ensuite tester ces noms de famille et les traiter comme des exceptions. P>
J'ai lu un poste très intéressant et complet sur ce sujet: p>
Vous pouvez également trouver kalzumeus.com/2010/06 / 17 / ... intéressant.
Deux approches peuvent aider, bien que cela ne résoudra pas complètement ce problème. P>
Pas vraiment une réponse, mais dans ce cas, il n'y a vraiment aucune réponse parfaite. P>
Ceci est généralement résolu en conservant les données de prénom et de nom de famille séparément à tout moment, car il est tout à fait impossible d'obtenir ce droit pour toutes les langues / pays / local / etc. Pas que cela vous aide.
Cela dépend beaucoup de la langue: pouvez-vous essayer cela avec un dictionnaire de prénoms? Je suppose que ce n'est pas en chinois ni en japonais, n'est-ce pas?
Les noms de fractionnement vous-même vont généralement faire pisser quelqu'un. Comment Bobby de Luca ou Bobbie Lee Jensen devraient-ils se séparer? Ou chow yun-gras, à cette affaire? (Chow est son dernier i> nom. Eh bien ... c'est d'abord, mais dernier. Oh, enfer, vous avez le point.)
Si vous utilisez la stratégie de dictionnaire, vous devez savoir que pour une langue, un prénom peut également être un nom de famille. Comme
Patrick Robert code> et
Robert Patrick code>
Dans certains cas cependant, vous I> pour fournir des noms séparés. L'API de LinkedIn, par exemple, vous oblige à scinder le nom ou à ne pas vous laisser faire une recherche hors réseau.
@Mattball dans mon cas c'est une boîte de recherche, où avoir deux boîtes type d'odeur mal. En général, je suis d'accord.