Size: a a a

Natural Language Processing

2021 May 31

AZ

Andrey Zakharov in Natural Language Processing
попробуйте word movers distance на эмбеддингах
источник

TM

Toemik Mnemonic in Natural Language Processing
спасибо, пойду изучу. Вы предлагаете их использовать вместо косинусного расстояния т.к он может показать себя лучше или дополнить им?
источник

EE

Eugene Eremin in Natural Language Processing
c 3.7 python встал без проблем
источник

A

Alex in Natural Language Processing
Здравствуйте. Кто-нибудь сталкивался с задачей перефраза? На вход абзац текста, на выходе этот же текст, но перефразированы ключевые моменты. Что лучше использовать? Смотрю в сторону моделей t5 и других трансформеров. Может быть есть уже что-то готовое, с чем можно поиграться?
источник

IN

Ilya Nikitin in Natural Language Processing
Хозяйке на заметку: если вам нужно относительно качественно перефразировать предложение, можно сделать это методом back-translation: перевести его русского на английский и назад на русский.
Чтобы не получить на выходе то же самое предложение, можно запретить модели-переводчику воспроизводить n-граммы (токенные), встречавшиеся в исходном предложении.
Кажется, получается дёшево и сердито.
import torch
from transformers import FSMTModel, FSMTTokenizer, FSMTForConditionalGeneration
tokenizer = FSMTTokenizer.from_pretrained("facebook/wmt19-en-ru")
model = FSMTForConditionalGeneration.from_pretrained("facebook/wmt19-en-ru")
inverse_tokenizer = FSMTTokenizer.from_pretrained("facebook/wmt19-ru-en")
inverse_model = FSMTForConditionalGeneration.from_pretrained("facebook/wmt19-ru-en")
model.cuda();
inverse_model.cuda();

def paraphrase(text, gram=4, num_beams=5, **kwargs):
   """ Generate a paraphrase using back translation.
   Parameter `gram` denotes size of token n-grams of the original sentence that cannot appear in the paraphrase.
   """
   input_ids = inverse_tokenizer.encode(text, return_tensors="pt")
   with torch.no_grad():
       outputs = inverse_model.generate(input_ids.to(inverse_model.device), num_beams=num_beams, **kwargs)
   other_lang = inverse_tokenizer.decode(outputs[0], skip_special_tokens=True)
   # print(other_lang)
   input_ids = input_ids[0, :-1].tolist()
   bad_word_ids = [input_ids[i:(i+gram)] for i in range(len(input_ids)-gram)]
   input_ids = tokenizer.encode(other_lang, return_tensors="pt")
   with torch.no_grad():
       outputs = model.generate(input_ids.to(model.device), num_beams=num_beams, bad_words_ids=bad_word_ids, **kwargs)
   decoded = tokenizer.decode(outputs[0], skip_special_tokens=True)
   return decoded
   
text = 'Женщина-дайвер исчезла в Черном море во время научных работ на побережье Анапы.'
print(paraphrase(text, gram=3, do_sample=False))
# Женщина-водолаз пропала в акватории Черного моря, когда выполняла исследовательские работы у берегов Анапы.
# Wall time: 699 ms
источник

РН

Роман Некрасов... in Natural Language Processing
Артëм, генерация лингвистических фичей для нелинейной модели тупиковый путь. Ищите новые выходы в виде архитектур и типов моделей. Могу посоветовать модели hierarchical attention networks или классический BERT
источник

TM

Toemik Mnemonic in Natural Language Processing
звучит логично, спасибо. попробуем применить WMD, если не поможем придется сдаваться BERT'у
источник

РН

Роман Некрасов... in Natural Language Processing
Bert сильно раскручен в медиа. Я на днях пробовал HAN (hierarchical attention networks) на обученных Glove (можно взять предобученные). Доволен результатом. В любом случае вам нужно свой опыт набирать.
источник

A

Alex in Natural Language Processing
Отличная мысль!
источник
2021 June 01

VM

Victor Maslov in Natural Language Processing
есть ли какая-нибудь рекомендованная специализированная тулза для исправления ошибок? например, чтобы пройтись ею по чат-логам, в коих опечатки и грамматические ошибки, прежде чем скормить их чему-то другому, что будет на них учиться
источник

KL

Kir L in Natural Language Processing
обычно рекомендуют jamspell или яндекс спеллер. У последнего есть ограничения на какое-то количество реплик в сутки.
источник

A

Andrey in Natural Language Processing
источник

VM

Victor Maslov in Natural Language Processing
круто, если верить ридми
$ curl "http://localhost:8080/fix?text=I am the begt spell cherken"
I am the best spell checker
источник

SS

Sergey Sikorskiy in Natural Language Processing
источник

B

Banof in Natural Language Processing
🔫 Jothe кикнут — вернуть этого пользователя можно только разбаном в настройках чата.

Проголосовавшие за кик:
@LoneGeek, @stringersolo, @ksioucha, @nekrasov_anton, Andrey
При поддержке Золота Бородача
источник

SS

Sergey Sikorskiy in Natural Language Processing
источник

B

Banof in Natural Language Processing
🔫 Gift кикнут — вернуть этого пользователя можно только разбаном в настройках чата.

Проголосовавшие за кик:
@LoneGeek, @stringersolo, n 1994, @ksioucha, @nekrasov_anton
При поддержке Золота Бородача
источник

A

Alexander in Natural Language Processing
Как проще всего загрузить предобученную русскую модель word2vec? Например для Gensim(или под любую другую библиотеку)? есть примеры кода? Спасибо
источник

K

Ksenia in Natural Language Processing
источник

A

Alexander in Natural Language Processing
Это в общем виде, здесь не говорится где взять саму предобученную русскую модель. Есть модели на сайте русвекторс, но не очень понятно куда их подгружать после скачивания.
источник