A solvable machine learning problem is a prediction task where humans can answer the questions, most cases have a correct answer, and a machine is not expected to substantially outperform a trained human expert. section 8.2
Test a proposed task against three conditions:
- Can a human imagine answering the questions? section 8.2
- Does a correct answer exist for most cases? section 8.2
- Would expert human performance set a realistic upper benchmark? section 8.2
Predicting nationality from surnames
Surname nationality is imperfect but potentially solvable: people can make guesses, most labeled examples have a target nationality, and a well-built RNN pipeline may approach or exceed trained-expert accuracy. Ambiguous names such as Michel, Abel, and Martin reveal why certainty is impossible. section 8.2
>>> from nlpia2.string_normalizers import Asciifier
>>> asciify = Asciifier()
>>> asciify("O’Néàl")
"O'Neal"
>>> asciify("Çetin")
'Cetin'
Normalize surnames before classification by converting characters such as “O’Néàl” and “Çetin” to ASCII forms. section 8.2
