Как мы все знаем, цифры могут быть записаны либо в цифрах, либо вызваны их именами. Хотя есть много примеров, которые можно найти, чтобы преобразовать 123 в сто двадцать три, я не мог найти хороших примеров того, как конвертировать их по-другому.
Некоторые из оговорок:
- кардинал/номинальный или порядковый: "один" и "первый"
- общие орфографические ошибки: "сорок" / "четыре"
- сотни/тысячи: 2100 → "двадцать сто", а также "две тысячи сто".
- разделители: "одиннадцать сотен пятьдесят два", но также "одиннадцатьсот пятидесяти" или "одиннадцатьсот пятьдесят два" и "ничего"
- коллоиализмы: "тридцать-то"
- фрагменты: "одна треть", "две пятых"
- общие имена: 'дюжина', 'половина'
И, возможно, возможны дополнительные предостережения, которые еще не перечислены. Предположим, что алгоритм должен быть очень надежным и даже понимать орфографические ошибки.
Какие поля/документы/исследования/алгоритмы следует читать, чтобы научиться писать все это? Где информация?
PS: Мой последний парсер должен понимать 3 разных языка: английский, русский и иврит. И, возможно, на более поздней стадии будет добавлено больше языков. На иврите также есть мужские/женские числа, такие как "один мужчина" и "одна женщина" имеют разные "один", "эхад" и "ахат". У русского также есть свои сложности.
Google отлично справляется с этим, например:
(возможно также обратное http://www.google.com/search?q=999999999999+in+english)