A couple of rules here are not firing - it seems to be the use of == rather than in that's the problem. If you change this:
elif token[0][-1:] == ["a", "â", "e", "ê", "i", "î", "o", "ô", "u", "û", "w", "ŵ", "y", "ŷ"]:
readings = lookup_multiple_readings(["{}f".format(token[0])])
reading_string += format_multireading_lookup(readings, token[0], token[1])
if len(readings) > 0:
count_readings = True
elif token[0][-1:] == ["b", "c", "d", "f", "g", "h", "j", "l", "m", "n", "p", "r", "s", "t"] or token[0][-2:] == ["ch", "dd", "ff", "ng", "ll", "ph", "rh", "th"]:
readings = lookup_multiple_readings(["{}r".format(token[0]), "{}l".format(token[0])])
reading_string += format_multireading_lookup(readings, token[0], token[1])
if len(readings) > 0:
count_readings = True
elif token[0][-1:] in ["a", "â", "e", "ê", "i", "î", "o", "ô", "u", "û", "w", "ŵ", "y", "ŷ"]:
readings = lookup_multiple_readings(["{}f".format(token[0])])
reading_string += format_multireading_lookup(readings, token[0], token[1])
if len(readings) > 0:
count_readings = True
elif token[0][-1:] in ["b", "c", "d", "f", "g", "h", "j", "l", "m", "n", "p", "r", "s", "t"] or token[0][-2:] in ["ch", "dd", "ff", "ng", "ll", "ph", "rh", "th"]:
readings = lookup_multiple_readings(["{}r".format(token[0]), "{}l".format(token[0])])
reading_string += format_multireading_lookup(readings, token[0], token[1])
if len(readings) > 0:
count_readings = True
it should work.
I've also tried out adding a rule to look for an -au ending where an unknown word ends with -e or -a (both are extremely common colloquially - the former is typically southern, the latter typically northern, e.g. "gorau" becomes "gore" or "gorau"). It works well on my data - might be worth adding to your postagger? (Has to go before the first rule mentioned above, of course, or it will be superseded by it and never fire.)
elif token[0][-1:] in ["e", "a"]:
readings = lookup_multiple_readings(["{}au".format(token[0][0:-1])])
reading_string += format_multireading_lookup(readings, token[0], token[1])
if len(readings) > 0:
count_readings = True