{"id":13937296,"url":"https://github.com/infoculture/plainrussian","last_synced_at":"2025-07-19T23:31:28.072Z","repository":{"id":20539984,"uuid":"23819422","full_name":"infoculture/plainrussian","owner":"infoculture","description":"Plain Russian Language / Понятный (простой) русский язык.","archived":false,"fork":false,"pushed_at":"2024-03-11T17:13:37.000Z","size":470,"stargazers_count":146,"open_issues_count":4,"forks_count":23,"subscribers_count":17,"default_branch":"master","last_synced_at":"2024-08-08T23:26:49.370Z","etag":null,"topics":["coleman-liau","dale-chale","flesch-kinkaid","plain-russian","plainlanguage","readability","readability-api","readability-metrics"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/infoculture.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2014-09-09T04:31:42.000Z","updated_at":"2024-07-25T20:31:00.000Z","dependencies_parsed_at":"2024-05-02T23:03:46.044Z","dependency_job_id":"37970a12-5db1-4e52-bd8e-cf49e4644dd9","html_url":"https://github.com/infoculture/plainrussian","commit_stats":{"total_commits":10,"total_committers":1,"mean_commits":10.0,"dds":0.0,"last_synced_commit":"9be1fffcfe4b0443c16d745de5bd02c890bc37a1"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/infoculture%2Fplainrussian","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/infoculture%2Fplainrussian/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/infoculture%2Fplainrussian/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/infoculture%2Fplainrussian/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/infoculture","download_url":"https://codeload.github.com/infoculture/plainrussian/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226693903,"owners_count":17667757,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["coleman-liau","dale-chale","flesch-kinkaid","plain-russian","plainlanguage","readability","readability-api","readability-metrics"],"created_at":"2024-08-07T23:03:28.540Z","updated_at":"2024-11-27T05:31:04.413Z","avatar_url":"https://github.com/infoculture.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"Plain Russian Language / Понятный (простой) русский язык.\n============\n\n# Зачем всё это нужно\nОценка читаемости текстов необходима для автоматического определения сложности текстов на русском языке.\n\n# Что было сделано\nЕсть 5 американских алгоритмов оценки читаемости текстов, это:\n*  Flesch-Kinkaid - http://en.wikipedia.org/wiki/Flesch%E2%80%93Kincaid_readability_tests\n*  Dale-Chale readability formula - http://en.wikipedia.org/wiki/Dale%E2%80%93Chall_readability_formula\n*  Coleman-Liau index  - http://en.wikipedia.org/wiki/Coleman%E2%80%93Liau_index\n*  SMOG - http://en.wikipedia.org/wiki/SMOG\n*  Automated Readability Index - http://en.wikipedia.org/wiki/Automated_Readability_Index\n\nБыли накоплены тексты на русском языке с разметками по уровню чтения, это:\n*  тексты для внеклассного чтения;\n*  экспертно размеченные взрослые тексты;\n*  особо сложные тексты законов;\n*  и так далее.\n\nВсе алгоритмы были обучены под русский язык - специальным образом каждая формула была подобрана на основе обучающей выборки.\nДля всех формул были применены коэффициенты позволяющие применять их к русским текстам.\n\nНа базе этих формул был сделан специальный веб-сервис который позволяет передавать ему текст или ссылку и оценивать его на сложность.\n\n# Как работает API\n\nAPI доступно по ссылке и http://api.plainrussian.ru/api/1.0/ru/measure/\nи для его работы ему необходимо передать параметр url (для ссылки) или text (как текст).\n\nПараметр url передается при обращении через GET запрос, пример такого обращения выглядит вот так: \n- http://api.plainrussian.ru/api/1.0/ru/measure/?url=http://minsvyaz.ru/ru/news/index.php?id_4=44264\n\nвот с примером простого текста:\n- http://api.plainrussian.ru/api/1.0/ru/measure/?url=http://www.anekdot.ru/id/674877/\n\nили вот:\n- http://api.plainrussian.ru/api/1.0/ru/measure/?url=http://www.gosuslugi.ru/pgu/cms/content/isr/view/00000000000/290/309\u0026debug=1\n\nРезультат выглядит вот так:\n\n   `     `\n    `{`\n        `metrics: `\n        `{`\n            `wsyllabes: `\n            `{`\n            `1: 94,`\n            `2: 116,`\n            `3: 140,`\n            `4: 87,`\n            `5: 139,`\n            `6: 45,`\n            `7: 18,`\n            `8: 4,`\n            `15: 1`\n            `},`\n            `c_share: 32.142857142857146,`\n            `chars: 6000,`\n            `avg_slen: 46,`\n            `spaces: 510,`\n            `n_syllabes: 2232,`\n            `n_words: 644,`\n            `letters: 5170,`\n            `n_sentences: 14,`\n            `n_complex_words: 207,`\n            `n_simple_words: 437,`\n            `avg_syl: 3.4658385093167703`\n        `},`\n        `status: 0,`\n        `indexes: `\n        `{`\n            `grade_SMOG: \"Аспирантура, второе высшее образование, phD\",`\n            `grade_ari: \"Аспирантура, второе высшее образование, phD\",`\n            `index_fk: 33.342906832298134,`\n            `grade_cl: \"Аспирантура, второе высшее образование, phD\",`\n            `grade_fk: \"Аспирантура, второе высшее образование, phD\",`\n            `index_cl: 23.062857142857148,`\n            `grade_dc: \"Аспирантура, второе высшее образование, phD\",`\n            `index_dc: 30.300857142857147,`\n            `index_ari: 32.11796894409938,`\n            `index_SMOG: 34.046178356649776`\n        `}`\n    `}        `\n\nКроме того, вместо параметра url можно использовать text, чтобы при запросе передавался текст, а не гиперссылка на текст. Вместо GET-запроса имеет смысл использовать POST, чтобы обойти ограничение на размер URI.  \nПример того, как это выглядит в Python с использованием библиотеки requests:\n\n    import requests\n    text = \"Здесь может быть Ваш текст\"\n    response = requests.post(\"http://api.plainrussian.ru/api/1.0/ru/measure/\", data={\"text\":text})\n    response.json()\n\nПараметры означают:\n## indexes - набор индикаторов читаемости текста:\n* grade_SMOG - уровень образования необходимый для понимания текста по формуле SMOG, человеческим языком\n* grade_ari - уровень образования необходимый для понимания текста по формуле Automated Readability Index, человеческим языком\n* grade_cl - уровень образования необходимый для понимания текста по формуле Coleman-Liau, человеческим языком\n* grade_fk - уровень образования необходимый для понимания текста по формуле Flesch-Kinkaid, человеческим языком\n* grade_dc - уровень образования необходимый для понимания текста по формуле Dale-Chale, человеческим языком\n* index_SMOG - уровень образования необходимый для понимания текста по формуле SMOG, в годах обучения от 1 до бесконечности\n* index_ari - уровень образования необходимый для понимания текста по формуле Automated Readability Index, в годах обучения от 1 до бесконечности\n* index_cl - уровень образования необходимый для понимания текста по формуле Coleman-Liau, в годах обучения от 1 до бесконечности\n* index_fk - уровень образования необходимый для понимания текста по формуле Flesch-Kinkaid, в годах обучения от 1 до бесконечности\n* index_dc - уровень образования необходимый для понимания текста по формуле Dale-Chale, в годах обучения от 1 до бесконечности\n\n## metrics - набор расчетных показателей из текста\n*   chars - сколько всего знаков тексте\n*   spaces - сколько пробелов в тексте\n*   letters - сколько букв в тексте\n*   n_words - число слов\n*   n_sentences - число предложений\n*   n_complex_words - число слов с более чем 4-мя слогами\n*   n_simple_words - число слов до 4-х слогов включительно\n*   avg_slen - среднее число слов на предложение\n*   avg_syl - среднее число слогов на предложение\n*   c_share - процент сложных слов от общего числа\n*   w_syllabes - словарь из значений: число слогов и число слов с таким числом слогов в этом тексте\n\nЕсли передать параметр debug=1, то также вернется значение текста которое было передано. \n\nВот несколько примеров текстов на которых шло обучение.\n- Бианки \"Лесной дом\", 1-й класс - http://api.plainrussian.ru/api/1.0/ru/measure/?url=http://plainrussian.ru/textsbygrade/1/bianki_lesdom.txt\n- Астафьев \"Солдат\", 9-й класс - http://api.plainrussian.ru/api/1.0/ru/measure/?url=http://plainrussian.ru/textsbygrade/9/astafiev_soldier.txt\nи так много документов.\n\n\n\n* textmetric - библиотека кода для измерения простоты русского языка\n\n\nТекстовые файлы в textmetric - это специально подобранные тексты с предварительными возрастными пометками. Это позволяет разрабатывать собственные алгоритмы анализа читабельности, простоты, понятности текстов на базе этих метрик.\n\ntextmetric/metrics.csv - перечень метрик \n======================\n\n* filename - имя файла в папке textsbygrade\n* name - название текста\n* grade - год обучения необходимый для понимания текста, экспертная оценка\n* index_fk_rus - измерение сложности текста в годах обучения по формуле Flesch-Kinkaid \n* fk_grade_diff - разница в измерении сложности по формуле Flesch-Kinkaid и предустановленной экспертной оценкой\n* index_cl_rus - измерение сложности текста в годах обучения по формуле Coleman-Liau\n* cl_grade_diff - разница в измерении сложности по формуле Coleman-Liau и предустановленной экспертной оценкой\n* index_dc_rus - измерение сложности текста в годах обучения по формуле Dale-Chale\n* dc_grade_diff - разница в измерении сложности по формуле Dale-Chale и предустановленной экспертной оценкой\n* index_SMOG_rus - измерение сложности текста в годах обучения по формуле SMOG\n* SMOG_grade_diff - разница в измерении сложности по формуле SMOG и предустановленной экспертной оценкой\n* index_ari_rus - измерение сложности текста в годах обучения по формуле Automatic Readability Index\n* ari_grade_diff - разница в измерении сложности по формуле Automatic Readability Index и предустановленной экспертной оценкой\n* chars - число знаков в тексте\n* spaces - число пробелов\n* letters - число букв\n* n_syllabes - общее число слогов \n* n_words - общее число слов\n* n_complex_words - число сложных слов\n* n_simple_words - число простых слов\n* n_sentences - число предложений\n* c_share - доля сложных слов в процентах\n* avg_syl - среднее число слогов на слово\n* avg_slen - среднее число слов на слово\n* wsyllabes - словарь частоты слов по количеству слогов значений в формате { \"число слогов\" : \"число слов\"}\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finfoculture%2Fplainrussian","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finfoculture%2Fplainrussian","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finfoculture%2Fplainrussian/lists"}