3

I'm looking for an api/dictionary or any resource that can help me return variants of names I give it. e.g. If i pass "william defoe", it should return "w.defoe", "bill.d", "william.d", etc.

I haven't found any adequate resource online. My implementation can be either in python or java.

mac
  • 40,746
  • 24
  • 119
  • 129
Duke
  • 328
  • 1
  • 5
  • 16
  • 2
    This is a really simple transformation, you should just create your own. – Hunter McMillen Nov 11 '11 at 21:06
  • it's actually not so simple. that's why i included "bill.d". a simple transformation can't do this. i'm looking either for a dictionary or some kind of machine learning model. – Duke Nov 11 '11 at 21:10
  • I edited your question title to stress the need for diminutives. +1 – mac Nov 11 '11 at 21:15
  • 1
    bill d is the only transformation you listed that might cause trouble. But even then you don't need anything as complex as a machine learning model. You can just have a list of names and common nicknames for them stored in a data structure. I searched `name and nickname data` and got a hit with a listing of names and common nicknames: http://deron.meranda.us/data/nicknames.txt – Hunter McMillen Nov 11 '11 at 21:17
  • i guess i was looking for something more involved. i'll try this and see the performance. – Duke Nov 11 '11 at 21:44
  • @Adinoyi I don't know about you, but I always look for the simplest way to get things done :P More involved means more hassle to me. – Brandon Buck Nov 11 '11 at 21:48

1 Answers1

2

There is a Database (must be purchased) called pdNickname. I found it via this question: Database of common name aliases / nicknames of people

Searched Google for "nickname database" and it's the second result.

In addition to all that, the transformations - as pointed out by Hunter - are simple. You can implement those transformations in 5 minutes or less. The one you pointed out ("William" -> "Bill") is still quite simple, although you'll need a list of names -> nicknames hence the link to the above Database.

From their sample text

NAME      VARIATION          GENDER
------------------------------------
ABIGAIL    ABBEY               1F
ABIGAIL    ABBIE               2F
ABIGAIL    ABBY                3F
ABIGAIL    GAIL                4F
ABIGAIL    ABAEGAYLE           5F
ABIGAIL    ABAGAEL             6F

May be a bit of an overkill, but not all "Williams" like to be called "Bill" :P

EDIT

There is also an alternative on Google Code which is a CSV of names and common nicknames/diminuntives.

Community
  • 1
  • 1
Brandon Buck
  • 7,051
  • 2
  • 32
  • 51