• Stars
    star
    134
  • Rank 264,589 (Top 6 %)
  • Language
    Python
  • License
    Creative Commons ...
  • Created almost 10 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Plain Russian Language / Понятный (простой) русский язык.

Plain Russian Language / Понятный (простой) русский язык.

Зачем всё это нужно

Оценка читаемости текстов необходима для автоматического определения сложности текстов на русском языке.

Что было сделано

Есть 5 американских алгоритмов оценки читаемости текстов, это:

Были накоплены тексты на русском языке с разметками по уровню чтения, это:

  • тексты для внеклассного чтения;
  • экспертно размеченные взрослые тексты;
  • особо сложные тексты законов;
  • и так далее.

Все алгоритмы были обучены под русский язык - специальным образом каждая формула была подобрана на основе обучающей выборки. Для всех формул были применены коэффициенты позволяющие применять их к русским текстам.

На базе этих формул был сделан специальный веб-сервис который позволяет передавать ему текст или ссылку и оценивать его на сложность.

Как работает API

API доступно по ссылке и http://api.plainrussian.ru/api/1.0/ru/measure/ и для его работы ему необходимо передать параметр url (для ссылки) или text (как текст).

Параметр url передается при обращении через GET запрос, пример такого обращения выглядит вот так:

вот с примером простого текста:

или вот:

Результат выглядит вот так:

{ metrics: { wsyllabes: { 1: 94, 2: 116, 3: 140, 4: 87, 5: 139, 6: 45, 7: 18, 8: 4, 15: 1 }, c_share: 32.142857142857146, chars: 6000, avg_slen: 46, spaces: 510, n_syllabes: 2232, n_words: 644, letters: 5170, n_sentences: 14, n_complex_words: 207, n_simple_words: 437, avg_syl: 3.4658385093167703 }, status: 0, indexes: { grade_SMOG: "Аспирантура, второе высшее образование, phD", grade_ari: "Аспирантура, второе высшее образование, phD", index_fk: 33.342906832298134, grade_cl: "Аспирантура, второе высшее образование, phD", grade_fk: "Аспирантура, второе высшее образование, phD", index_cl: 23.062857142857148, grade_dc: "Аспирантура, второе высшее образование, phD", index_dc: 30.300857142857147, index_ari: 32.11796894409938, index_SMOG: 34.046178356649776 } }

Кроме того, вместо параметра url можно использовать text, чтобы при запросе передавался текст, а не гиперссылка на текст. Вместо GET-запроса имеет смысл использовать POST, чтобы обойти ограничение на размер URI.
Пример того, как это выглядит в Python с использованием библиотеки requests:

import requests
text = "Здесь может быть Ваш текст"
response = requests.post("http://api.plainrussian.ru/api/1.0/ru/measure/", data={"text":text})
response.json()

Параметры означают:

indexes - набор индикаторов читаемости текста:

  • grade_SMOG - уровень образования необходимый для понимания текста по формуле SMOG, человеческим языком
  • grade_ari - уровень образования необходимый для понимания текста по формуле Automated Readability Index, человеческим языком
  • grade_cl - уровень образования необходимый для понимания текста по формуле Coleman-Liau, человеческим языком
  • grade_fk - уровень образования необходимый для понимания текста по формуле Flesch-Kinkaid, человеческим языком
  • grade_dc - уровень образования необходимый для понимания текста по формуле Dale-Chale, человеческим языком
  • index_SMOG - уровень образования необходимый для понимания текста по формуле SMOG, в годах обучения от 1 до бесконечности
  • index_ari - уровень образования необходимый для понимания текста по формуле Automated Readability Index, в годах обучения от 1 до бесконечности
  • index_cl - уровень образования необходимый для понимания текста по формуле Coleman-Liau, в годах обучения от 1 до бесконечности
  • index_fk - уровень образования необходимый для понимания текста по формуле Flesch-Kinkaid, в годах обучения от 1 до бесконечности
  • index_dc - уровень образования необходимый для понимания текста по формуле Dale-Chale, в годах обучения от 1 до бесконечности

metrics - набор расчетных показателей из текста

  • chars - сколько всего знаков тексте
  • spaces - сколько пробелов в тексте
  • letters - сколько букв в тексте
  • n_words - число слов
  • n_sentences - число предложений
  • n_complex_words - число слов с более чем 4-мя слогами
  • n_simple_words - число слов до 4-х слогов включительно
  • avg_slen - среднее число слов на предложение
  • avg_syl - среднее число слогов на предложение
  • c_share - процент сложных слов от общего числа
  • w_syllabes - словарь из значений: число слогов и число слов с таким числом слогов в этом тексте

Если передать параметр debug=1, то также вернется значение текста которое было передано.

Вот несколько примеров текстов на которых шло обучение.

  • textmetric - библиотека кода для измерения простоты русского языка

Текстовые файлы в textmetric - это специально подобранные тексты с предварительными возрастными пометками. Это позволяет разрабатывать собственные алгоритмы анализа читабельности, простоты, понятности текстов на базе этих метрик.

textmetric/metrics.csv - перечень метрик

  • filename - имя файла в папке textsbygrade
  • name - название текста
  • grade - год обучения необходимый для понимания текста, экспертная оценка
  • index_fk_rus - измерение сложности текста в годах обучения по формуле Flesch-Kinkaid
  • fk_grade_diff - разница в измерении сложности по формуле Flesch-Kinkaid и предустановленной экспертной оценкой
  • index_cl_rus - измерение сложности текста в годах обучения по формуле Coleman-Liau
  • cl_grade_diff - разница в измерении сложности по формуле Coleman-Liau и предустановленной экспертной оценкой
  • index_dc_rus - измерение сложности текста в годах обучения по формуле Dale-Chale
  • dc_grade_diff - разница в измерении сложности по формуле Dale-Chale и предустановленной экспертной оценкой
  • index_SMOG_rus - измерение сложности текста в годах обучения по формуле SMOG
  • SMOG_grade_diff - разница в измерении сложности по формуле SMOG и предустановленной экспертной оценкой
  • index_ari_rus - измерение сложности текста в годах обучения по формуле Automatic Readability Index
  • ari_grade_diff - разница в измерении сложности по формуле Automatic Readability Index и предустановленной экспертной оценкой
  • chars - число знаков в тексте
  • spaces - число пробелов
  • letters - число букв
  • n_syllabes - общее число слогов
  • n_words - общее число слов
  • n_complex_words - число сложных слов
  • n_simple_words - число простых слов
  • n_sentences - число предложений
  • c_share - доля сложных слов в процентах
  • avg_syl - среднее число слогов на слово
  • avg_slen - среднее число слов на слово
  • wsyllabes - словарь частоты слов по количеству слогов значений в формате { "число слогов" : "число слов"}

More Repositories

1

awesome-opendata-rus

Opendata resources in Russian / Открытые данные на русском языке
192
star
2

awesome-datajournalism

Awesome list for data journalists and future data journalists
173
star
3

datatasks

Задачи для волонтеров/стажеров/всех желающих по работе с открытыми, большими данными. А также всеми иными задачами связанными с темами краудсорсинга, понятного языка и электронной архивации
74
star
4

govdomains

Создание реестра всех доменных имён Российской Федерации относящихся к органам власти, государственным учреждениям, а также региональным и муниципальным властям.
Ruby
48
star
5

awesome-gov-opensource-russia

Awesome list of Russian government open source projects (not only Github)
19
star
6

mosopendata

Parser and data from data.mos.ru. / Парсер и данные для портала открытых данных Москвы data.mos.ru
Python
17
star
7

awesome-openbudget

Awesome open budget list (russian lang)
14
star
8

data-audit-gov-hackathon

Хакатон Счетной палаты
9
star
9

opengosduma

Открытые данные и код с результатами анализа деятельности депутатов госдумы / Russian federal parliamentary data analysis project
Python
9
star
10

mskodd2017

Open Data Day and hackathon in Moscow 2017
9
star
11

hubofdata

Hub of open data for Russia and other cyrillic countries / Хаб открытых данных на русском языке
Batchfile
8
star
12

transport-data

Транспортные данные в Российской Федерации
7
star
13

suddata

Re-processed data from DIYJustice project - Arbitr, Mirsud and sud data of Russian federation
Perl
6
star
14

scrapetasks

Задачи сообщества по сбору и извлечению данных из официальных источников / Community tasks to collect open data from official sources. ПЕРЕНЕСЕНО: задачи перемещены в репозиторий hubofdata
6
star
15

blindprocurement

Blind Procurement. Code to find corrupted procurement in Russia. Слепые закупки. Код алгоритмов выявления искажения анонсов госзакупок так чтобы их не могли находить "чужие" поставщики
Python
6
star
16

ruregions

Registry of all Russian regions and regional metadata like codes, borders, macro and subregions and e.t.c.
5
star
17

mosfindata

Данные, задачи и полезные ссылки для участников хакатона Депфина Москвы 20-21 октября 2018
5
star
18

awesome-culture-opendata

Awesome list about open data culture. All resources, persons and etc.
5
star
19

crimestathack

Хакатон по криминальной статистике 22-23 октября. Данные и подсказки
4
star
20

preserved-russia

Russia data and documents digital preservation project
4
star
21

ruegovontologies

Russian government RDF/OWL description
Web Ontology Language
4
star
22

publicdata

Russian NGO sector hackathon datasets. PublicData
4
star
23

openpolice

Open police project is about collecting, processing and reusing russian police data
JavaScript
3
star
24

ru-datamaps

Data discovery mappings for Russian open government datav / Карты обнаружения и поиска данных для российских наборов данных
3
star
25

ogd_sitemon

OpenGovData.ru site monitoring project.
3
star
26

budgetapps

Материалы и задачи для конкурса BudgetApps, хакатонов в рамках конкурса и так далее
3
star
27

ruhistorydata

Russian historical database from different sources / База российских исторических данных
Python
3
star
28

russian2fa

Портал с сервисами для двухфакторной авторизации для российских (и русскоязычных) сервисов. Адаптация 2FA для России
JavaScript
3
star
29

moscowpolicedata

Crowdcollected moscow police open data
2
star
30

mediahack2016

Хакатон 27-28 февраля материалы
2
star
31

lawmon

Russian lawmaking datasets from Law Monitoring project
Python
2
star
32

nationaldigitalarchive

Russian national digital archive
HTML
2
star
33

openngo-data-reference

Описание открытых данных портала "Открытые НКО" (https://openngo.ru/)
2
star
34

budgetdata

Russian budget open data for reuse
1
star
35

opengovfinancesbook

Open Government finances in Russia Handbook
1
star
36

kremlin.io

Kremlin.io code and data repository
1
star
37

rustore-privacy

Rustore privacy analysis
Python
1
star
38

datacatalogs-ru

Repository of the Russian and Russia-related open data catalog
JavaScript
1
star
39

pushkinmuseumdata

Data from the Pushkin Museum
Python
1
star
40

openelections

DEPRECATED. Открытые данные по выборам (актуальность на 2011 год)
Python
1
star
41

opencustoms

Russian federal customs service open data / Открытые данные Федеральной таможенной службы
1
star
42

gosuslugi_2011

DEPRECATED: Данные и код для их сбора с портала Госуслуг (gosuslugi.ru) за 2011 год
Python
1
star