Pull to refresh
19
0
Send message

Что новенького по сущностям? Новости последней конференции EMNLP

Reading time9 min
Views1.7K

В ноябре 2021 проходила конференция  EMNLP — одно из главных мероприятий для тех, кто занимается NLP. Хоть команде Домклик и не удалось провести отвязную неделю в Доминикане, я и мои коллеги смогли поучаствовать в конференции удалённо. Как рассказывают сами организаторы, претенденты на участие со всего мира весь 2021 год присылали свои статьи. Из 1500 полученных работ отобрали около 400, чтобы допущенные участники сделали десятиминутную видеопрезентацию. В итоге зрители в течение пяти дней непрерывно и концентрированно получают информацию о том, куда продвинулась наука обработки естественного языка.

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

Читать далее
Total votes 43: ↑42 and ↓1+46
Comments1

Обзор методов создания эмбедингов предложений, Часть2

Reading time20 min
Views6.4K

Здравствуйте, продолжение статьи про методы создания эмбедингов предложений. В этом гайде мало слов и много кода, готово для Ctrl+с, Ctrl+v, улучшений и дальнейших тестов.


Часть1 обязательна для ознакомления


4. BERT


from deeppavlov.core.common.file import read_json
from deeppavlov import build_model, configs
from deeppavlov.models.embedders.elmo_embedder import ELMoEmbedder
# ссылка для скачивания моделей http://docs.deeppavlov.ai/en/master/features/pretrained_vectors.html

4.1 rubert_cased_L-12_H-768_A-12_pt


class RU_BERT_CLASS:
    def __init__(self, name):
        bert_config = read_json(configs.embedder.bert_embedder)
        bert_config['metadata']['variables']['BERT_PATH'] = os.path.join('./.', name)
        self.m = build_model(bert_config)

    def vectorizer(self, sentences):
        return [sentence.split() for sentence in sentences]

    def predict(self, tokens):
        _, _, _, _, sent_max_embs, sent_mean_embs, _ = self.m(tokens)
        return sent_mean_embs

bert = RU_BERT_CLASS('rubert_cased_L-12_H-768_A-12_pt')
get_similarity_values = similarity_values_wrapper(bert.predict, bert.vectorizer, distance_function=cosine_distances)
evaluate(get_similarity_values, 'rubert')

'rubert: 2895.7'

Читать дальше →
Total votes 4: ↑4 and ↓0+4
Comments7

Обзор методов создания эмбедингов предложений, Часть1

Reading time18 min
Views11K

Представте себе, как было бы удобно, написать предложение и найти похожее к нему по смыслу. Для этого нужно уметь векторизовать всё предложение, что может быть очень не тривиальной задачей.


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


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


Например две фразы 'эпл лучше самсунг' от 'самсунг лучше эпл', должны быть на противоположном конце по одному из значений вектора, но при этом совпадать по другим.


Можно привести аналогию с картинкой ниже. По шкале от кекса до собаки они находятся на разных концах, а по количеству чёрных точек и цвету объекта на одном.


https://cdn-media-1.freecodecamp.org/images/1*bt-E2YcPafjiPbZFDMMmNQ.jpeg

Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments3

Улучшения для генеративно-состязательных сетей (GAN)

Reading time8 min
Views3.7K
Для прикладных задач, редко когда требуется искусственная генерация данных. Тем не менее алгоритм состязательной-генеративной модели (GAN) поражает и даёт возможность создавать сервисы рисования и даже фотографию не существующего человека.
На Хабре есть несколько статей разбора алгоритма с теоретической точки зрения. Здесь я бы хотел сконцентрироваться на коде, а именно заострить внимание на улучшениях и трюках, которые сделают процесс обучения быстрее, более контролируемым и улучшают качество генерируемых примеров.

За основу взят пример из документации tensorflow и код на keras. Они оба отлично работают, но как убедитесь ниже, не идеальны. Идеи для улучшения в основном взяты из статьи Tips for GAN и из исследования по улучшению GAN.

Подготовка


Для работы потребуется всего 2 библиотеки: numpy и tensorflow и несколько библиотек для отрисовки GIF изображения прямо в jupyter notebook.
Читать дальше →
Total votes 3: ↑3 and ↓0+3
Comments0

Information

Rating
Does not participate
Works in
Registered
Activity