Не совсем так. Имя - первое слово после "Miss", "Mrs", если в строке нет круглых скобок.
В целом самый простой вариант для этого задания - выкинуть все до точки, и посмотреть каких слов больше, не разбираясь имя или нет. 
Достаточно предположить, что самое распространённое имя встречается чаще самой распространённой фамилии :)
Что-то вроде:
female_names = ['Nasser, Mrs. Nicholas (Adele Achem)', 'Sandstrom, Miss. Marguerite Rut', 'Bonnell, Miss. Elizabeth']
names = {}
for name in female_names:
    for word in a.split('.')[1].replace('(', '').replace(')', '').split():
        names.setdefault(word)
        names[word] += 1