IlyaGusev's picture
Update README.md
c0718e3
metadata
language:
  - ru
tags:
  - summarization
  - token-classification
  - t5
datasets:
  - IlyaGusev/gazeta
license: apache-2.0
inference: false
widget:
  - text: >-
      С 1 сентября в России вступают в силу поправки в закон «О банкротстве» —
      теперь должники смогут освобождаться от непосильных обязательств во
      внесудебном порядке, если сумма задолженности составляет не менее 50 тыс.
      рублей и не превышает 500 тыс. рублей без учета штрафов, пени, процентов
      за просрочку платежа и прочих имущественных или финансовых санкций.[SEP]У
      физлиц и индивидуальных предпринимателей появилась возможность пройти
      процедуру банкротства без участия суда и финансового управляющего —
      достаточно подать соответствующее заявление через МФЦ.[SEP]Сумму
      задолженности и список всех известных заявителю кредиторов нужно
      предоставить самостоятельно.[SEP]Если все условия соблюдены, сведения
      внесут в Единый федеральный реестр в течение трех рабочих дней.[SEP]При
      этом на момент подачи заявления в отношении заявителя должно быть окончено
      исполнительное производство с возвращением исполнительного документа
      взыскателю.[SEP]Это значит, что у потенциального банкрота не должно быть
      имущества, которое можно взыскать.[SEP]Кроме того, в отношении гражданина
      не должно быть возбуждено другое исполнительное производство.[SEP]В период
      всей процедуры заявитель не сможет брать займы, кредиты, выдавать
      поручительства, совершать иные обеспечительные сделки.[SEP]Внесудебное
      банкротство будет длиться шесть месяцев, в течение которых также будет
      действовать мораторий на удовлетворение требований кредиторов, отмеченных
      в заявлении должника, и мораторий об уплате обязательных
      платежей.[SEP]Кроме того, прекращается начисление неустоек и иных
      финансовых санкций; имущественные взыскания (кроме алиментов) также будут
      приостановлены.[SEP]По завершению процедуры заявителя освободят от
      дальнейшего выполнения требований кредиторов, указанных в заявлении о
      признании его банкротом, а эта задолженность признается безнадежной.[SEP]В
      прошлом месяце стало известно, что за первое полугодие 2020 года
      российские суды признали банкротами 42,7 тыс. граждан (в том числе
      индивидуальных предпринимателей) — по данным единого реестра «Федресурс»,
      это на 47,2% больше показателя аналогичного периода 2019 года.[SEP]Рост
      числа обанкротившихся граждан во втором квартале по сравнению с первым
      замедлился — такая динамика обусловлена тем, что в период ограничений с 19
      марта по 11 мая суды редко рассматривали банкротные дела компаний и
      меньше, чем обычно, в отношении граждан, объяснял руководитель проекта
      «Федресурс» Алексей Юхнин.[SEP]
    example_title: Новости

RuBERTExtSumGazeta

Model description

Model for extractive summarization based on rubert-base-cased

Intended uses & limitations

How to use

Colab: link

import razdel
from transformers import AutoTokenizer, BertForTokenClassification

model_name = "IlyaGusev/rubert_ext_sum_gazeta"

tokenizer = AutoTokenizer.from_pretrained(model_name)
sep_token = tokenizer.sep_token
sep_token_id = tokenizer.sep_token_id

model = BertForTokenClassification.from_pretrained(model_name)

article_text = "..."
sentences = [s.text for s in razdel.sentenize(article_text)]
article_text = sep_token.join(sentences)

inputs = tokenizer(
    [article_text],
    max_length=500,
    padding="max_length",
    truncation=True,
    return_tensors="pt",
)
sep_mask = inputs["input_ids"][0] == sep_token_id

# Fix token_type_ids
current_token_type_id = 0 
for pos, input_id in enumerate(inputs["input_ids"][0]):
    inputs["token_type_ids"][0][pos] = current_token_type_id
    if input_id == sep_token_id:
        current_token_type_id = 1 - current_token_type_id

# Infer model
with torch.no_grad(): 
    outputs = model(**inputs) 
logits = outputs.logits[0, :, 1]

# Choose sentences 
logits = logits[sep_mask]
logits, indices = logits.sort(descending=True)
logits, indices = logits.cpu().tolist(), indices.cpu().tolist()
pairs = list(zip(logits, indices))
pairs = pairs[:3]
indices = list(sorted([idx for _, idx in pairs]))
summary = " ".join([sentences[idx] for idx in indices])
print(summary)

Limitations and bias

  • The model should work well with Gazeta.ru articles, but for any other agencies it can suffer from domain shift

Training data

Training procedure

TBD

Eval results

TBD

Evaluation: https://github.com/IlyaGusev/summarus/blob/master/evaluate.py

Flags: --language ru --tokenize-after --lower