Масовий аналіз текстів: 86 мов у конвеєрі
Каталог на сорок тисяч сторінок редактор прочитати не може, а вибірка з сорока каже лише про вибірку. Масовий аналіз текстів рахує весь експорт за ніч, сортує за класом складності й віддає редакторові список замість відчуття.
Код: ReadSightPy, ліцензія MIT.
readsight для Python 3.10 вимірює текст 86 мовами за 17 формулами, і він зібраний під задачу, де текст приходить із бази, а не з текстового поля.
Що конвеєр вимагає від лічильника
Три речі по порядку: те саме число двічі, відсутність мережі й швидкість, за якої робота закінчується до ранку.
Детермінованість дають дані: мовні файли й шаблони переносів TeX зафіксовані, скомпільовані шаблони лежать у кеші, нічого не завантажується. Швидкість у тому ж порядку, що й решта роботи: близько мілісекунди на текст у 45 слів, десять мілісекунд на збирання рушія з кешу і шістдесят на перше завантаження німецької.
На тлі всього експорту час читання бази все одно більший. Це правильна форма для компонента конвеєра.
Який звіт виходить
Таблиця, де на документ один рядок: мова, набір формул, клас, поріг для цієї аудиторії. Іспанській дістається одинадцять формул, німецькій вісім, тайській п’ять, і таблиця тримає їх окремо, а не усереднює в одне безглузде число.
Відсортуйте за класом усередині мови, і сто найгірших сторінок опиняться зверху. Цей список і є результат: редактор іде по ньому, а наступний прогін показує, чи зрушилося число.
Фільтр, який відпрацьовує себе
Найцінніше застосування це фільтр у конвеєрі перекладів. Порівняйте цільовий текст із вихідним і не пропускайте те, що стало важчим на два класи. Переклад, який технічно правильний і нечитабельний, проходить усі інші перевірки в ланцюжку.
Два класи це стартовий поріг, а не закон. Візьміть його зі свого корпусу й тримайте фіксованим, щоб число означало одне й те саме наступного кварталу.
Дві залежності, обидві названі
Пакету потрібні regex для класів Unicode-літер і platformdirs, щоб покласти кеш шаблонів у правильну теку на кожній операційній системі. Більше в рантаймі нічого.
Це усвідомлений бюджет. Кожна залежність у конвеєрі даних це те, що може зафіксувати версію, зламати перезбирання або зникнути з індексу коліс, і два відомі пакети це ціна, яку варто називати вголос.
Де це зупиняється
Він не відрізнить сторінку, яка погано доводить, від сторінки, яка доводить добре. Він не дивиться на підзаголовки, зображення й посилання, а його підрахунок складів іде за точками переносу TeX, що наближено за природою, і README це визнає.
Бал читабельності це ключ сортування. Він знаходить сторінки, яким потрібна людина, а людина вирішує, що з ними робити.
Що робити з першими ста результатами
Прочитайте десять із них до того, як надіслати список комусь іншому. Хвіст каталогу зазвичай складається зі сторінок, які ніхто не писав навмисно: старі сторінки послуг, продубльовані описи, імпорт, що приніс не той текст. Такі лікують видаленням або об’єднанням, а не редагуванням.
Решті дев’яноста потрібна людина, і звіт має казати, яка формула провалилася. Сторінка, що провалилася за довжиною речень, і сторінка, що провалилася за багатоскладовими словами, це дві різні правки.
З чого почати
Експортуйте тисячу документів, проганьте лічильник і подивіться на розподіл до того, як вибирати поріг. У каталозі зазвичай є довгий хвіст сторінок, які ніхто не писав навмисно, і це і є перші сто у списку.
Поріг вибирайте за розподілом, а не за бажанням: він має відсікати хвіст, а не половину каталогу.
Поруч: читабельність різними мовами про те, чим набори формул відрізняються за мовами, і читабельність тексту про самі формули.
