feat: extract associate first/last name lists from registry

Co-Authored-By: Claude Opus 4.6 <[email protected]>
This commit is contained in:
Alex-GilbertandClaude Opus 4.6 committed 2026-02-18 11:55:33 -06:00
1 parent 921d702c07
commit 72df8d3579
3 files changed
+1969

No files matched your search

+56
View File
@@ -244,6 +244,53 @@ def process_associates(
return {"names": names, "persons": persons, "victim_names": victim_names}
def extract_name_lists(registry: list[dict]) -> tuple[set[str], set[str]]:
"""Extract unique first and last names from the persons registry.
Includes nickname expansions. Returns (first_names, last_names) as
lowercase sets, filtered to alpha-only strings of length >= 2.
"""
firsts: set[str] = set()
lasts: set[str] = set()
for person in registry:
name = person["name"]
parts = name.strip().split()
if len(parts) < 2:
continue
first = parts[0].lower()
last = parts[-1].lower()
if first.isalpha() and len(first) >= 2:
firsts.add(first)
# Add nicknames
if first in NICKNAMES:
for nick in NICKNAMES[first]:
if nick.isalpha() and len(nick) >= 2:
firsts.add(nick)
if last.isalpha() and len(last) >= 2:
lasts.add(last)
# Also process aliases
for alias in person.get("aliases", []):
alias_parts = alias.strip().split()
if len(alias_parts) < 2:
continue
af = alias_parts[0].lower()
al = alias_parts[-1].lower()
if af.isalpha() and len(af) >= 2:
firsts.add(af)
if af in NICKNAMES:
for nick in NICKNAMES[af]:
if nick.isalpha() and len(nick) >= 2:
firsts.add(nick)
if al.isalpha() and len(al) >= 2:
lasts.add(al)
return firsts, lasts
def download_data(data_dir: Path) -> tuple[list, list]:
"""Download the rhowardstone data files if not already present.
@@ -291,6 +338,15 @@ def main():
OUTPUT_PATH.write_text(json.dumps(result, separators=(",", ":")))
print(f"Wrote {OUTPUT_PATH}")
# Write focused name lists
firsts, lasts = extract_name_lists(registry)
first_path = OUTPUT_PATH.parent / "associate_first_names.txt"
last_path = OUTPUT_PATH.parent / "associate_last_names.txt"
first_path.write_text("\n".join(sorted(firsts)) + "\n")
last_path.write_text("\n".join(sorted(lasts)) + "\n")
print(f"Wrote {len(firsts)} first names to {first_path}")
print(f"Wrote {len(lasts)} last names to {last_path}")
if __name__ == "__main__":
main()
+768
View File
@@ -0,0 +1,768 @@
abbe
accuser
ace
act
activities
ad
adam
adnan
adriana
adriel
aerin
aga
ahmed
al
alan
alastair
albert
alberto
alec
alejandra
alena
alesia
alex
alexander
alexandra
alexandria
alexia
alfred
alfredo
alice
alicia
aline
alison
alistar
alix
allen
amanda
amelia
amir
amy
ana
andre
andrea
andres
andrew
andré
andrés
andy
anil
anita
ann
anna
annabelle
annie
anonymous
anouk
anthony
antoine
antonio
arda
ari
ariane
ariel
arline
arnold
arpad
arthur
ashley
attorney
audrey
austin
autumn
avram
aw
bandar
barack
barbara
barbra
barbro
barnaby
baron
baroness
barron
barry
basillia
beef
bella
ben
benham
benjamin
bennett
bernard
bernie
beth
bill
billy
blaine
bob
bobbi
bobby
borge
boris
brad
bradley
bran
brendan
brent
brett
brian
brice
brock
brooke
bruce
bryan
burt
byron
børge
cameron
camille
caren
carl
carla
carlos
carluz
carly
carmen
carol
caroline
carolyn
carrie
case
casey
cassandra
cate
catherine
cathy
cecile
cecilia
celina
ceolilia
charisma
charles
charlie
chauntae
chelsea
cheri
chief
chori
chris
christian
christie
christina
christine
christof
christopher
chuck
cindy
clare
clarence
claudia
claudius
cledus
cmc
cocoa
colleen
connie
conrad
corina
cosima
cosmo
countess
court
courtney
craig
cresencia
cristalle
crown
cuthbert
cy
cynthia
cyrus
czi
dalai
dame
damian
dan
dana
daniel
danny
daphne
darren
darrin
dashawn
dave
david
day
dean
deb
debbie
debonnaire
deborah
debra
deepak
defense
delphine
demi
denis
denise
dennis
detective
diana
diane
dick
didier
diedri
dimitar
djamel
doj
domenico
don
donald
donatella
donna
donny
dorothy
dot
dottie
dotty
doug
douglas
dougle
drew
duchess
duke
dupson
dustin
earl
ed
eddie
edgar
edmund
edouard
eduardo
edward
efrain
ehud
eileen
eleanor
electronics
eli
elie
eliezer
elisa
elissa
elizabeth
elle
ellen
elon
emad
emma
emmy
eric
erika
escort
eva
evelyn
evening
ewan
executive
fabriame
facilities
faith
felicia
fidel
flavio
fleur
forensic
forest
forrest
francis
francisco
francois
frank
fred
frederic
french
freya
frédéric
garrett
gary
gavin
gensler
geoffrey
geor
george
gerald
gerard
gerardus
gerry
ghislaine
ghulam
gianni
ginger
ginny
giovanni
girl
giuseppe
glen
glenn
global
graydon
greg
gregory
griffin
gusneme
guy
gwendolyn
haddon
hakeem
haley
hans
hardeep
harry
harvey
hasnat
hassanal
heather
helena
henry
heriberto
hilian
holly
howard
hugh
hyatt
hyperion
ian
iggy
ignacio
igor
ilan
inca
inmate
ira
isabel
itzhak
ivan
ivana
ivanka
jack
jackie
jacob
jacqui
james
jamie
jan
jane
janice
jantelle
janusz
jared
jason
jay
jb
jd
jean
jeanne
jeannie
jeff
jeffery
jeffrey
jege
jen
jenkins
jennie
jennifer
jenny
jenson
jeremy
jerry
jes
jess
jessica
jibby
jim
jimmy
jo
joan
joanna
joe
joel
joey
johanna
john
joi
joichi
jon
jonathan
jools
jordana
joscha
jose
joseph
josh
joshua
josé
juan
judge
judy
julian
julie
juliette
juror
justice
justin
kamala
kandace
karen
karin
karv
karyna
katarina
kate
katherina
katherine
kathryn
kathy
katie
katielynn
katrina
kaytlyn
keith
kelly
kellyanne
ken
kenneth
kenny
kevin
kimbal
kimberly
king
kip
kit
kristy
kyle
lady
lamine
lana
lanna
lara
larry
laura
lauren
laurie
lawrence
leah
lee
lenny
leo
leon
leonard
leonardo
leonic
leopold
les
lesley
leslie
lester
leticia
lieut
lieutenant
lilly
linda
lisa
liz
lizzy
lloyd
local
lord
loretta
lorinda
lou
luciano
lynn
maggie
magistrate
mandy
manny
manuela
marc
marco
margaret
maria
mariana
marie
mark
martha
marti
martin
marvin
mary
maryon
masha
matt
matthew
maura
maurene
maurine
mbpv
medical
meg
megan
mehmet
melania
melanie
melinda
melissa
merwin
mglindallns
michael
michelle
mick
mike
mikey
miles
minnie
minor
mira
miroslav
misha
mitchell
mohamed
mohammed
moira
mona
morning
mort
mortimer
morton
mrs
murray
mylene
myron
nacho
nadia
nancy
naomi
nat
natalia
natalie
natalya
nathan
nathaniel
neil
nelson
neri
nicholas
nick
nicola
nicolas
nicole
nili
nina
noam
noel
nolan
norman
odis
olga
oliver
olivier
onel
operations
ops
orly
orville
oscar
pamela
passenger
pat
patient
patricia
patrick
patsy
patty
paul
paula
peggy
penny
pepe
perry
pete
peter
phil
philip
philippe
phillipe
pia
pierre
pimp
plourde
potential
preet
president
prince
princess
professor
pusha
ralph
ramon
ramona
rande
randy
ray
raymond
rebecca
rec
regina
reid
reyna
rfk
rhonda
ric
ricardo
riccardo
rich
richard
rick
rina
rinaldo
rob
robert
roberta
robin
ron
ronald
rosa
rosemary
rosie
roy
rupert
rusan
ruslana
ruth
salvatore
sam
sammy
samuel
sandra
sandy
sanford
sarah
savell
scott
scotty
sean
secret
sergei
sergey
seth
sgt
shannon
sharon
shaun
shawn
shayna
sheldon
shelley
shelly
sheridan
sherrie
shirley
shu
si
sigrid
simon
simona
sir
sis
solomon
sonya
sophie
stacey
stanley
stavros
stephanie
stephen
steve
steven
strauss
stuart
suann
sublimehottie
sultan
sumner
supervisors
susan
tancredi
tatiana
tazia
teala
ted
teddy
tenzin
teresa
terje
theodore
theresa
thierry
thomas
thorbjorn
thorbjørn
tiffany
tim
timmy
timothy
tina
todd
tom
tommy
tony
tori
tova
tovah
town
tracy
trevor
tucker
ugly
una
vahe
valdson
valentino
vanessa
vera
vi
vic
vick
vicky
victor
victoria
virginia
viscount
vitaly
vittorio
vivienne
vladimir
vor
wafic
wallace
walter
warden
warren
wayne
wendi
wendy
wilbur
will
william
willy
woody
yana
yehura
zach
zina
zipora
zubair
zurab
File diff suppressed because it is too large. Load diff