Модель T5-base и T5-large для создания ключевых слов из текста

2 мин
Автор PINTA IT
Модель T5-base и T5-large для создания ключевых слов из текста

Русскоязычная нейронная сеть - модель для извлечения ключевых слов из текста

Обученная модель T5-base и T5-large для создания ключевых слов из текста. Поддерживаемые языки: ru

Обучение: Для обучения моделей keyT5-base и keyT5-large вам понадобится таблица в формате csv, например:

Модели KeyT5 были обучены на ~7000 сжатых статей habr.com. data.csv collect.py  Исключительно поддерживает русский язык!

ИксД
Некоторый текст, который подается на входТекст, который должен выйти
Некоторый текст, который подается на входТекст, который должен выйти
GitHub - 0x7o/text2keywords: Trained T5 and T5-large model for creating keywords from text
Trained T5 and T5-large model for creating keywords from text - GitHub - 0x7o/text2keywords: Trained T5 and T5-large model for creating keywords from text
keyT5 или генерация ключевых слов из текста
Я попытался обучить русскоязычную модель ruT5-base и ruT5-large на задаче извлечения ключевых слов из текста.Github - text2keywordsHuggingFace - keyt5-base | ke...

Пример использования (код возвращает список с ключевыми словами, возможны дубликаты.

pip install transformers sentencepiece
from itertools import groupby
import torch
from transformers import T5ForConditionalGeneration, T5Tokenizer
model_name = "0x7194633/keyt5-large" # or 0x7194633/keyt5-base
tokenizer = T5Tokenizer.from_pretrained(model_name)
model = T5ForConditionalGeneration.from_pretrained(model_name)

def generate(text, **kwargs):
    inputs = tokenizer(text, return_tensors='pt')
    with torch.no_grad():
        hypotheses = model.generate(**inputs, num_beams=5, **kwargs)
    s = tokenizer.decode(hypotheses[0], skip_special_tokens=True)
    s = s.replace('; ', ';').replace(' ;', ';').lower().split(';')[:-1]
    s = [el for el, _ in groupby(s)]
    return s

article = """Reuters сообщил об отмене 3,6 тыс. авиарейсов из-за «омикрона» и погоды
Наибольшее число отмен авиарейсов 2 января пришлось на американские авиакомпании 
SkyWest и Southwest, у каждой — более 400 отмененных рейсов. При этом среди 
отмененных 2 января авиарейсов — более 2,1 тыс. рейсов в США. Также свыше 6400 
рейсов были задержаны."""

print(generate(article, top_p=1.0, max_length=64))  
# ['авиаперевозки', 'отмена авиарейсов', 'отмена рейсов', 'отмена авиарейсов', 'отмена рейсов', 'отмена авиарейсов']