Блог ·
Розмита множина не є числом
Сторожа, що порівнює числа девʼятьма мовами, повідомила про два дефекти, які дефектами не були, і пропустила дві мови з причин, не повʼязаних із числами.
Автор: Provibr
Кожна стаття, яку ми публікуємо, існує девʼятьма мовами, і річ, яка найімовірніше піде не так у перекладі, не є словом. Це є числом. Лічба, що каже 200 однією мовою і 20 іншою, є невидимою для читача, який бачить лише одну з них, і жодної перевірки правопису на це немає.
Тож є сторожа. Вона бере англійське джерело, дістає числа й вимагає, щоб кожен переклад містив щонайменше стільки ж випадків того самого значення. Цього раунду вона видала два червоні звіти про два переклади, які були цілком правильними, і причину варто записати.
Сторожа мусить читати слова, а не цифри
Очевидний різновид цієї перевірки порівнює цифри, і його ми мали першим. Тут він майже некорисний, бо наш фірмовий стиль числа виписує словами. Не 38 тестів, а тридцять вісім тестів; не 1440, а тисяча чотириста сорок.
Тож є друга сторожа з таблицею всередині: для кожного значення, яке варто перевіряти, те, як його пише кожна з девʼяти мов. Полічити випадки в англійській, полічити їх у кожному перекладі й повідомити про все, чого забракло.
Малі значення навмисно виключено. У кожній із цих мов слова для одного, двох і трьох є ще й артиклями, прийменниками або частинами довших слів, і лічба їх дала б сотні знахідок, які нічого не означають. Сторожу, що кричить про вовків, починають пропускати, а пропущена сторожа є гіршою за відсутню.
Лічба за підрядком і лічба згори вниз
Дві механіки роблять решту цього можливою, і обидві породжують ту відмову, про яку ця стаття.
Перша полягає в тому, що збіг мусить бути збігом підрядка. Нідерландська пише шістнадцять тисяч одним словом, і єдиний спосіб побачити в ньому шістнадцять це зазирнути всередину. Кілька з цих мов вільно складають слова, тож привʼязка до меж слів утратила б більшість справжніх влучань.
Друга полягає в тому, що значення лічать від найбільшого до найменшого, і кожне влучання вирізають із тексту, перш ніж лічити наступне значення. Без цього сорок один лічать раз як сорок один і раз як сорок, а тоді мова, що пише те саме число одним неподільним словом, має вигляд такої, якій одного бракує. Сім із перших тридцяти семи знахідок, які сторожа взагалі коли-небудь видала, були саме цим, і жодна з них не була дефектом.
Збіг за підрядком плюс вирізання є правильним задумом. Це ще й означає, що сторожа шукає літери, а літери не є числами.
Слово, яке не є числом
Речення, що це зламало, звучить так: сторожа на ньому назве сотні недефектів.
У тому реченні немає числа. Сотні є словом кількості, словом того самого роду, що кілька чи чимало, і воно не є твердженням, що щось сталося сто разів. Але воно містить літери числівника, тож сторожа полічила випадок ста в англійській, а тоді пішла шукати сто у вісьмох перекладах.
Ось що повернулося. Італійська каже centinaia, румунська каже sute de, і жодне з них не містить числівника своєї мови для ста. Два червоні звіти, на двох реченнях, які носій назвав би бездоганними.
Решта шість пройшли, і лише чотири з них пройшли з причини. Нідерландське honderden містить honderd, німецьке Hunderte містить hundert, іспанське cientos містить ciento, французьке centaines містить cent. Ті чотири є тим самим дефектом, що італійський і румунський; сторожа просто не могла його побачити, бо розмите слово випадково збудовано з числівника.
Останні дві є незручними. Португальська пройшла тому, що португальське слово для ста, cem, трапляється всередині parecem, у заголовку про дві речі, які мають схожий вигляд. Українська пройшла з 39 влучаннями в одній статті, бо кириличні літери для ста сидять усередині звичайних слів для сторінки й для сторожі.
Тож із восьми мов: дві зазнали невдачі на недефекті, чотири сховали той самий недефект за збігом написання, а дві були зеленими на словах, які до чисел не мають узагалі жодного стосунку. Сторожі можна довіряти рівно настільки, наскільки можна довіряти причинам її зелених результатів, а тут лише два з восьми зелених стосувалися лічби.
Куди має піти вирізання і чому воно не може йти першим
Виправленням є друга таблиця: розмиті множини, по мовах. Hundreds, honderden, Hunderte, cientos і centenares, centaines, centinaia, centenas, sute de та українські форми. Прибрати їх перед лічбою, бо вони не є значеннями.
Цікавою частиною є коли. Інстинкт каже вирізати їх на початку, як прохід прибирання по тексту, а це зламало б сторожу у спосіб, помітити який набагато важче, ніж те, що воно лагодить.
Румунською чотириста разів буде patru sute de ori. Воно містить sute de буквально. Виріжте розмиті множини наперед, і ви знищили справжні чотириста, прибираючи фальшиву сотню, і тепер сторожа повідомляє, що румунській бракує числа, яке в неї явно є.
Тож вирізання стається всередині циклу, тієї миті, коли цикл доходить до значення сто. На той час прохід для чотирьохсот уже спожив patru sute, і те, що лишилося від sute de, справді є розмитим словом. Порядок, який існував з іншої причини, виявляється тим, що робить це безпечним, і це є добрим доводом на користь того, щоб тримати причину записаною поруч із кодом.
Із прибраними розмитими множинами порівняння пішло з 224 лічб і двох знахідок до 216 лічб і жодної. Лічба падає тому, що значення, яке трапляється в англійській нуль разів, більше не порівнюють узагалі, і це є рівно правильним: жодної сотні там ніколи не було.
Шість значень, яких просто бракувало
Доводячи все це, виявили, що в таблиці бракує шести значень, якими користувалися нові статті, тож ті числа лишалися неперевіреними у восьми мовах кожне.
Це є звичайнішою відмовою, і саме вона станеться знову. Таблицю значень пишуть для статей того раунду, що її створив, а наступний раунд пише інші числа. Відсутній рядок не падає; він мовчки не перевіряє нічого, а це є тією самою формою, що й запис у списку дозволеного з друкарською помилкою, і нас уже за це кусали.
Тож чесним описом цієї сторожі є такий: вона є сіткою з відомим розміром вічка, вона ловить той клас помилок, заради якого її будували, і кожен раунд мусить додати власні значення або не дістати нічого. І це нормально, доки ніхто не читає зелений результат як покриття.
Що ми б записали
- Слово кількості не є значенням. Сотні є ближчими до кількох, ніж до 100.
- Збіг за підрядком тут є правильним, і саме він є джерелом проблеми. Мовам, що складають слова, він потрібен.
- Питайте, чому кожен зелений результат є зеленим. Чотири з наших були збігом, а два шумом.
- Коротка основа числівника ховається всередині звичайних слів, а кириличний запис 100 сидить усередині слова для сторінки.
- Упорядкуйте проходи від великого до малого і вирізайте кожне влучання, інакше складені слова лічитимуться двічі.
- Де стається прибирання, важить так само, як і те, що воно прибирає. Вирізати розмиті множини першими означає знищити справжні чотириста.
- Тримайте причину поруч із порядком, бо порядок є несучим і на такий не схожий.
- Таблиця значень покриває лише той раунд, що її написав. Тут бракувало шести.
- Відсутній рядок є мовчазним, рівно як запис у списку дозволеного з друкарською помилкою.
- Кажіть, чого сторожа не покриває, щоб ніхто не читав зелене як покриття.
Для ясності про те, чим це є: порівняння пройшло по чотирьох статтях вісьмома мовами, 224 лічби з двома знахідками до того, як опрацювали розмиті множини, і 216 без жодної потому, шість значень додано до таблиці, а вирізання розмитих множин покладено всередину циклу, а не перед ним, щоб румунські чотириста вижили. Поруч із цим той раунд породив 886 згенерованих статей без застережень, перевірку вмісту 887 із 887 файлів байт у байт тотожних, набір вебу зеленим на 4594 при решті наборів на 7287, порівняння фактів на 1144 лічбах без жодної невдачі, лексеми на 64 і назви посилань на 72, сім скриптів і чотири правила типографіки доведено червоними, перш ніж повірити їм зеленим, а сканування верстки 108 перевірок на 390 пікселях проти виробничої збірки. Не доведено: шум підрядків в українській і португальській зрозуміло, але не прибрано, для чого потрібен морфологічний читач, а не таблиця, і досі є один читач на переклад.
Із платформної роботи над Provibr. Що девʼять каталогів роблять із набором сталих елементів керування, описано в Шістнадцять тисяч ключів, девʼять мов, сторожа, що відрізняє вкорочений текст посилання від підміненого, описана в Дві назви для однієї статті, а рецензія читача, з якої почалася вся ця низка, описана в Три вади, яких не міг побачити жоден скрипт.