Skip to content

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

License

Notifications You must be signed in to change notification settings

infoculture/plainrussian

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 - словарь частоты слов по количеству слогов значений в формате { "число слогов" : "число слов"}