Redshift UDF in Python for name normalization

Job ID: 32019926

Budget: $25 – $50 USD

Hi! I would like a User Defined Function (UDF) written in Python to normalize names, written and tested on Amazon Redshift .

You will need access to your own Redshift and S3 accounts to complete this task (S3 will likely be needed to host python libraries)

I am looking for a function that, given the following input returns normalized names, matching the results below:

SELECT input_name, f_normalize_author(input_name) as normalized_name FROM author

Andrea Perušić andrea perusic
Adrian Suryo Mataram adrian suryo mataram
Zhang Ping ping zhang
Weinstock F f weinstock
B Dorfman b dorfman
I. Kosa-Somogyi i kosasomogyi
이영로 이영로
栗林 一彦 栗林 一彦

Note:
- it converted "šić" to approximate ascii
- it knew to reorder "Zhang" as a last name (based on common use?)
- it guessed F is a first initial rather than the last name
- it removed punctuation
- it left Chinese, Korean, Russian etc characters untouched
etc

A sample of 1000 inputs and their expected outputs is attached.

Upon successful completion of this project, you will provide:
- source code for your Python UDF, including the zip files for any custom modules that you used via S3 to use extended python libraries
- the results of applying your function on the input column of the sample file attached, and a note of any diffs between the output of your code and the sample output column (some small differences are likely acceptable)

If you would like to propose a fixed-price quote instead of a per-hour rate, that's fine.

Again, it is very important to me that you have tested this on Redshift so that I can be sure I can just drop it in to my code and it will work.

Thanks!
Heather
Related categories: Python SQL Redshift