RUbert-tiny_custom / README.md
WpythonW's picture
Add new SentenceTransformer model.
5eaaf2d verified
|
raw
history blame
40.6 kB
metadata
base_model: cointegrated/rubert-tiny2
datasets: []
language: []
library_name: sentence-transformers
metrics:
  - cosine_accuracy@1
  - cosine_accuracy@3
  - cosine_precision@1
  - cosine_precision@3
  - cosine_recall@1
  - cosine_recall@3
  - cosine_ndcg@10
  - cosine_mrr@10
  - cosine_map@100
  - dot_accuracy@1
  - dot_accuracy@3
  - dot_precision@1
  - dot_precision@3
  - dot_recall@1
  - dot_recall@3
  - dot_ndcg@10
  - dot_mrr@10
  - dot_map@100
pipeline_tag: sentence-similarity
tags:
  - sentence-transformers
  - sentence-similarity
  - feature-extraction
  - generated_from_trainer
  - dataset_size:1647
  - loss:MultipleNegativesRankingLoss
widget:
  - source_sentence: не активна кнопка выполнить в задачах ,не уходят задачи из архива.
    sentences:
      - >-
        Пожалуйста, создайте заявку в разделе "Зарплатная карта", выбрав подтему
        "Изменение банковских реквизитов"
      - >-
        В соответствии со ст. 65 ТК РФ работник должен представить, а
        работодатель обязан потребовать документы, необходимые для заключения
        трудового договора. Военнообязанные и лица, подлежащие призыву на
        военную службу, при заключении трудового договора должны предъявить
        документы воинского учета. В силу Положения о воинском учете,
        утвержденного Постановлением Правительства РФ от 25 декабря 1998 г. N
        1541, основными документами воинского учета являются: для граждан,
        пребывающих в запасе, - военный билет (временное удостоверение, выданное
        взамен военного билета). Так как мужчины офицерских званий являются
        военнообязанными до 65-70 лет, считать кандидата невоеннообязанным,
        опираясь на данные возраста, нет возможности. Кандидат обязан
        предоставить военный билет с отметкой о снятии с учета или справку из
        военного комиссариата с соответствующей информацией. Инструкция и
        шаблоны доступны по ссылке https://company-x5.ru/cms/zayavkaskillaz
      - >-
        Первым делом, просьба очистить кэш/куки браузера (сочетание клавиш
        ctrl+shift+del, выбрать "Удалить: Всё", нажать ОК). Далее перезайти в
        ЛК. Если это не помогло просьба подать заявку, нажав ниже кнопку
        "Создать заявку" и выбрать соответствующую тему.
  - source_sentence: истекает СТД
    sentences:
      - >-
        Для продления срочного трудового договора создайте, пожалуйста, заявку
        на сотрудника по теме "Изменение режима характера работы", выбрав
        подтему "Продление СТД, перевод на время отсутствия основного
        работника/Перевод на бессрочный ТД"
      - >-
        В соответствии с ч. 4 ст. 153 ТК РФ по желанию сотрудника, который
        работал в выходной (нерабочий праздничный) день, ему может быть
        предоставлен другой день отдыха. В этом случае работа в выходной или
        нерабочий праздничный день оплачивается в одинарном размере, а день
        отдыха оплате не подлежит.
      - Отпуск ЧАЭС компенсируется только при увольнении.
  - source_sentence: В ЛК нет вкладки удаленная работа
    sentences:
      - >-
        Пожалуйста, обратитесь к непосредственному руководителю, чтобы он создал
        заявку в Личном кабинете по теме «Отмена/аннулирование мероприятия».
        После выполнения мероприятия Вы сможете создать заявку в Личном кабинете
        по теме «Отпуска и прочие отсутствия», подтема «Отгул за ранее
        отработанный выходной или праздничный день», указав новый период
        отсутствия.
      - >-
        Если руководитель не успел согласовать или не согласовать задачу по ЭЛН,
        БЛ автоматически согласовывается
      - >-
        Критерии доступности сервиса Удаленная Работа: 1.Сотрудник не на нулевой
        занятости: процент соединения (ИТ 1001) между штатной должностью и
        табельным номером на текущую дату больше 0; 2.Сотрудник на офисном
        графике работы: в ИТ 0007 Нормативное рабочее время на текущую дату
        установлен график, который в соответствии с Правилом ГРВ (таблица T508A)
        является офисным – поле KKRKH принимает одно из значений: {1; 2; 3; 4;
        6}; 3.У сотрудника есть руководитель: наличие на текущую дату соединения
        (ИТ 1001) B012 между ОЕ сотрудника и ШД руководителям или BZ10 между ШД
        сотрудника и ШД руководителя; 4.Уровень CEO- руководителя сотрудника
        позволяет принимать заявки на УР: на штатной должности руководителя
        сотрудника установленное на текущую дату значение атрибута (ИТ 1222)
        Z_PM_CEO Уровень подчиненности до СЕО по сценарию Z_PM Управление
        эффективностью должностей отсутствует в таблице ZHRT_ESS_REMAPP для
        формата сотрудника (на данный момент ограничение только на CEO и -1
        5.Сотруднику установлен признак «Удаленный офис»: на ШД сотрудника / на
        ОЕ сотрудника / на вышестоящей ОЕ (по пути анализа P-S-O-O) в ИТ 1010
        Комп/ВспомСредства подтипе 9021 Работа на дому установлено значение 002
        Удаленный офис. Если какой-то из критериев не выполняется, вкладка
        «удаленная работа» в личном кабинете будет не доступна. Для внесения
        изменений в систему SAP, необходимо обратиться к специалистам по кадрам.
  - source_sentence: >-
      Неправильно был выбран период и заявку на УР отклонили. Как создать новую
      заявку?
    sentences:
      - >-
        После отклонения заявки на УР, возможность создать новую возникает не
        мгновенно. Просьба перезайти в ЛК в конце рабочего дня, возможность
        создания заявки должна уже появиться
      - >-
        Для проведения перевода, пожалуйста, создайте заявку в разделе "Создать
        заявку на сотрудника", выберите блок "Изменения по сотрудникам", подтему
        "Перевод перемещение. Подробная информация по созданию заявки размещена
        в "Базе знаний ".
      - >-
        Прежде чем создавать заявку, пожалуйста попробуйте самостоятельно
        выпустить ЭЦП на странице "электронные подписи" в личном разделе ЛК
  - source_sentence: Какие документы нужны для приема иностранного гражданина?
    sentences:
      - >-
        Для открытия табеля создайте, пожалуйста, заявку в разделе "Заявки" по
        теме "Табель/график/рабочее время", выбрав подтему "Открытие табеля".
      - >-
        Для проведения приема необходимы документы: 1) Нотариально заверенный
        перевод паспорта на русский язык + паспорт; 2) СНИЛС или уведомление о
        регистрации в системе АДИ-РЕГ, где указаны полные ФИО, номер СНИЛС, дата
        рождения и место рождения кандидата (Уведомление можно получить в МФЦ
        или территориальном органе ПФР); 3) Вид на жительство либо иностранный
        паспорт с разрешением на временное проживание; 4) Миграционная карта (
        при наличии) ; 5) Расписка об отсутствии/подтверждении
        государственной/муниципальной службы; 6) Копия ТК или СТД-Р (если
        кандидат перешёл на электронную трудовую книжку у предыдущего
        работодателя). 7) Реквизиты карты Альфа-банк или реквизиты Сбербанка. 8)
        Актуальная прописка или свидетельство о временной регистрации по месту
        жительства (соответствующую субъекту трудоустройства). Срок окончания
        действия документов должен быть не меньше 60 дней от даты приема.
        Инструкция и шаблоны доступны по ссылке
        https://company-x5.ru/cms/zayavkaskillaz
      - >-
        Данная заявка была завершена т.к истек срок на согласование, Вам
        требуется оформить новую заявку, после чего она будет отправлена на
        согласование.
model-index:
  - name: SentenceTransformer based on cointegrated/rubert-tiny2
    results:
      - task:
          type: information-retrieval
          name: Information Retrieval
        dataset:
          name: single answer eval
          type: single_answer_eval
        metrics:
          - type: cosine_accuracy@1
            value: 0.8087431693989071
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.9453551912568307
            name: Cosine Accuracy@3
          - type: cosine_precision@1
            value: 0.8087431693989071
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.3161303379882615
            name: Cosine Precision@3
          - type: cosine_recall@1
            value: 0.07638375252218604
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.08937707371222856
            name: Cosine Recall@3
          - type: cosine_ndcg@10
            value: 0.2021464725440391
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.8806447027303121
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.08687907308027706
            name: Cosine Map@100
          - type: dot_accuracy@1
            value: 0.8087431693989071
            name: Dot Accuracy@1
          - type: dot_accuracy@3
            value: 0.9453551912568307
            name: Dot Accuracy@3
          - type: dot_precision@1
            value: 0.8087431693989071
            name: Dot Precision@1
          - type: dot_precision@3
            value: 0.3161303379882615
            name: Dot Precision@3
          - type: dot_recall@1
            value: 0.07638375252218604
            name: Dot Recall@1
          - type: dot_recall@3
            value: 0.08937707371222856
            name: Dot Recall@3
          - type: dot_ndcg@10
            value: 0.2021464725440391
            name: Dot Ndcg@10
          - type: dot_mrr@10
            value: 0.8806447027303121
            name: Dot Mrr@10
          - type: dot_map@100
            value: 0.08687907308027706
            name: Dot Map@100

SentenceTransformer based on cointegrated/rubert-tiny2

This is a sentence-transformers model finetuned from cointegrated/rubert-tiny2. It maps sentences & paragraphs to a 312-dimensional dense vector space and can be used for semantic textual similarity, semantic search, paraphrase mining, text classification, clustering, and more.

Model Details

Model Description

  • Model Type: Sentence Transformer
  • Base model: cointegrated/rubert-tiny2
  • Maximum Sequence Length: 2048 tokens
  • Output Dimensionality: 312 tokens
  • Similarity Function: Cosine Similarity

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 2048, 'do_lower_case': False}) with Transformer model: BertModel 
  (1): Pooling({'word_embedding_dimension': 312, 'pooling_mode_cls_token': True, 'pooling_mode_mean_tokens': False, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False, 'pooling_mode_weightedmean_tokens': False, 'pooling_mode_lasttoken': False, 'include_prompt': True})
  (2): Normalize()
)

Usage

Direct Usage (Sentence Transformers)

First install the Sentence Transformers library:

pip install -U sentence-transformers

Then you can load this model and run inference.

from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("WpythonW/RUbert-tiny_custom")
# Run inference
sentences = [
    'Какие документы нужны для приема иностранного гражданина?',
    'Для проведения приема необходимы документы: 1) Нотариально заверенный перевод паспорта на русский язык + паспорт; 2) СНИЛС или уведомление о регистрации в системе АДИ-РЕГ, где указаны полные ФИО, номер СНИЛС, дата рождения и место рождения кандидата (Уведомление можно получить в МФЦ или территориальном органе ПФР); 3) Вид на жительство либо иностранный паспорт с разрешением на временное проживание; 4) Миграционная карта ( при наличии) ; 5) Расписка об отсутствии/подтверждении государственной/муниципальной службы; 6) Копия ТК или СТД-Р (если кандидат перешёл на электронную трудовую книжку у предыдущего работодателя). 7) Реквизиты карты Альфа-банк или реквизиты Сбербанка. 8) Актуальная прописка или свидетельство о временной регистрации по месту жительства (соответствующую субъекту трудоустройства). Срок окончания действия документов должен быть не меньше 60 дней от даты приема. Инструкция и шаблоны доступны по ссылке https://company-x5.ru/cms/zayavkaskillaz',
    'Для открытия табеля создайте, пожалуйста, заявку в разделе "Заявки" по теме "Табель/график/рабочее время", выбрав подтему "Открытие табеля".',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 312]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]

Evaluation

Metrics

Information Retrieval

Metric Value
cosine_accuracy@1 0.8087
cosine_accuracy@3 0.9454
cosine_precision@1 0.8087
cosine_precision@3 0.3161
cosine_recall@1 0.0764
cosine_recall@3 0.0894
cosine_ndcg@10 0.2021
cosine_mrr@10 0.8806
cosine_map@100 0.0869
dot_accuracy@1 0.8087
dot_accuracy@3 0.9454
dot_precision@1 0.8087
dot_precision@3 0.3161
dot_recall@1 0.0764
dot_recall@3 0.0894
dot_ndcg@10 0.2021
dot_mrr@10 0.8806
dot_map@100 0.0869

Training Details

Training Dataset

Unnamed Dataset

  • Size: 1,647 training samples
  • Columns: anchor and positive
  • Approximate statistics based on the first 1000 samples:
    anchor positive
    type string string
    details
    • min: 3 tokens
    • mean: 11.46 tokens
    • max: 54 tokens
    • min: 7 tokens
    • mean: 62.33 tokens
    • max: 371 tokens
  • Samples:
    anchor positive
    Какие документы необходимо предоставить при приеме беженцев? Вариант 1: 1) действующее удостоверение беженца: документ, удостоверяющий личность на территории РФ; 2) регистрация по месту пребывания; 3) СНИЛС (при наличии); 4) трудовая книжка и/или сведения о трудовой деятельности (при наличии трудового стажа). Вариант 2: 1) действующее свидетельство о предоставлении временного убежища: документ, удостоверяющий личность на территории РФ; 2) может быть предоставлен паспорт, но основанием для трудоустройства будет именно свидетельство; 3) регистрация по месту пребывания; 4) СНИЛС (при наличии); 5) трудовая книжка и/или сведения о трудовой деятельности (при наличии трудового стажа). Вариант 3: 1) паспорт гражданина Украины, Донецкой Народной Республики или Луганской Народной Республики; 2) документ, подтверждающий прохождение дактилоскопии и фотографирования. Данные должны совпадать с данными в паспорте; 3) регистрация по месту пребывания; 4) СНИЛС (при наличии); 5) трудовая книжка и/или сведения о трудовой деятельности (при наличии трудового стажа); 6) документ, подтверждающий время пребывания на территории РФ*. Вариант 4: 1) действующий паспорт гражданина Украины/ЛНР/ДНР; 2) действующий патент (указанная в нем территория действия соответствует региону трудоустройства)/РВП/ВНЖ; 3) миграционная карта; 4) регистрация по месту пребывания; 5) СНИЛС (при наличии); 6) трудовая книжка и/или сведения о трудовой деятельности (при наличии трудового стажа); 7) для ИГ с РВП или ВНЖ документ, подтверждающий время пребывания на территории РФ*. Вариант 5: При наличии у кандидата паспорта гражданина РФ трудоустройство осуществляется по стандартной процедуре приема на работу граждан РФ. Инструкция и шаблоны доступны по ссылке https://company-x5.ru/cms/zayavkaskillaz
    Что такое МЧД и зачем она нужна? Ранее, если для подписания документов требовалась квалифицированная электронная подпись, то применялась усиленная квалифицированная электронная подпись юридического лица – УКЭП ЮЛ. Особенность этой электронной подписи (ЭП) состояла в том, что владельцем сертификата была указана организация наряду с сотрудником. Если упростить, то такую ЭП можно представить как подпись и печать на любом бумажном документе. С 01.09.2023 в силу вступили правки в Федеральный закон РФ № 63‑ФЗ «Об электронной подписи». Суть этих правок в следующем: · выпуск УКЭП ЮЛ возможен только для Генеральных директоров компании и только в удостоверяющем центре Федеральной налоговой службы · если сотруднику для электронного подписания необходима квалифицированная ЭП, то он должен применять усиленную квалифицированную электронную подпись физического лица – УКЭП ФЛ и машиночитаемую доверенность – МЧД. Т.е. по аналогии с печатью и подписью на бумаге: УКЭП ФЛ – собственноручная подпись, МЧД – печать, которая подтверждает полномочия подписанта. · все УКЭП ЮЛ, выпущенные до 01.09.2023 действуют до конца своего срока (1 год).Детально о УКЭП ФЛ можно прочитать тут: https://company-x5.ru/cms/UC6 МЧД – машиночитаемая доверенность (довер​енность в машиночитаемом виде), выпускаемая в xml-формате, подписанная представителем ЮЛ: в нашем случае – Генеральным директором.
    скидка сотрудника По карте программы лояльности Х5 (ПЛ) для сотрудника в магазинах «Пятёрочка» действует скидка на следующих условиях:
    Скидка 5% на весь чек (включая сезонные и промо акции), за исключением готовой еды, табачной продукции, алкогольной продукции по МРЦ (минимальной розничной цене).
    Скидка 20% на готовую еду, включая: всю кулинарию, хлеб и выпечку из пекарни, напитки из зоны самообслуживания (горячий кофе/чай и свежевыжатый апельсиновый сок) – данная категория не должна быть выбрана в качестве «Любимой категории».
    Скидка предоставляется на первые 2 покупки, совершенные с применением карты лояльности в день (с 3-его чека в сутки скидка сотрудника не применяется).
    Скидка применяется как на классических кассах, так и на кассах самообслуживания.
    Доступно списание баллов ПЛ в чеке с примененной скидкой сотрудника (с прокатыванием физической карты или сканированием штрих-кода, открытого в мобильном приложении «Пятёрочка» на своём мобильном устройстве).
    Стандартные правила ПЛ по начислению и списанию баллов.
    В магазинах «Перекрёсток» по картам сотрудников «Пятёрочки» работает единая программа лояльности, скидка сотрудника «Пятёрочки» не применяется.
    Скидка не действует на онлайн-заказы.
    Скидка 10% при заказе товаров в мобильном приложении Пятёрочки «Доставка» по промо-коду X5RETAILTEAM_1.
  • Loss: MultipleNegativesRankingLoss with these parameters:
    {
        "scale": 20.0,
        "similarity_fct": "cos_sim"
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: steps
  • per_device_train_batch_size: 512
  • num_train_epochs: 50
  • load_best_model_at_end: True

All Hyperparameters

Click to expand
  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: steps
  • prediction_loss_only: True
  • per_device_train_batch_size: 512
  • per_device_eval_batch_size: 8
  • per_gpu_train_batch_size: None
  • per_gpu_eval_batch_size: None
  • gradient_accumulation_steps: 1
  • eval_accumulation_steps: None
  • torch_empty_cache_steps: None
  • learning_rate: 5e-05
  • weight_decay: 0.0
  • adam_beta1: 0.9
  • adam_beta2: 0.999
  • adam_epsilon: 1e-08
  • max_grad_norm: 1.0
  • num_train_epochs: 50
  • max_steps: -1
  • lr_scheduler_type: linear
  • lr_scheduler_kwargs: {}
  • warmup_ratio: 0.0
  • warmup_steps: 0
  • log_level: passive
  • log_level_replica: warning
  • log_on_each_node: True
  • logging_nan_inf_filter: True
  • save_safetensors: True
  • save_on_each_node: False
  • save_only_model: False
  • restore_callback_states_from_checkpoint: False
  • no_cuda: False
  • use_cpu: False
  • use_mps_device: False
  • seed: 42
  • data_seed: None
  • jit_mode_eval: False
  • use_ipex: False
  • bf16: False
  • fp16: False
  • fp16_opt_level: O1
  • half_precision_backend: auto
  • bf16_full_eval: False
  • fp16_full_eval: False
  • tf32: None
  • local_rank: 0
  • ddp_backend: None
  • tpu_num_cores: None
  • tpu_metrics_debug: False
  • debug: []
  • dataloader_drop_last: False
  • dataloader_num_workers: 0
  • dataloader_prefetch_factor: None
  • past_index: -1
  • disable_tqdm: False
  • remove_unused_columns: True
  • label_names: None
  • load_best_model_at_end: True
  • ignore_data_skip: False
  • fsdp: []
  • fsdp_min_num_params: 0
  • fsdp_config: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}
  • fsdp_transformer_layer_cls_to_wrap: None
  • accelerator_config: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}
  • deepspeed: None
  • label_smoothing_factor: 0.0
  • optim: adamw_torch
  • optim_args: None
  • adafactor: False
  • group_by_length: False
  • length_column_name: length
  • ddp_find_unused_parameters: None
  • ddp_bucket_cap_mb: None
  • ddp_broadcast_buffers: False
  • dataloader_pin_memory: True
  • dataloader_persistent_workers: False
  • skip_memory_metrics: True
  • use_legacy_prediction_loop: False
  • push_to_hub: False
  • resume_from_checkpoint: None
  • hub_model_id: None
  • hub_strategy: every_save
  • hub_private_repo: False
  • hub_always_push: False
  • gradient_checkpointing: False
  • gradient_checkpointing_kwargs: None
  • include_inputs_for_metrics: False
  • eval_do_concat_batches: True
  • fp16_backend: auto
  • push_to_hub_model_id: None
  • push_to_hub_organization: None
  • mp_parameters:
  • auto_find_batch_size: False
  • full_determinism: False
  • torchdynamo: None
  • ray_scope: last
  • ddp_timeout: 1800
  • torch_compile: False
  • torch_compile_backend: None
  • torch_compile_mode: None
  • dispatch_batches: None
  • split_batches: None
  • include_tokens_per_second: False
  • include_num_input_tokens_seen: False
  • neftune_noise_alpha: None
  • optim_target_modules: None
  • batch_eval_metrics: False
  • eval_on_start: False
  • eval_use_gather_object: False
  • batch_sampler: batch_sampler
  • multi_dataset_batch_sampler: proportional

Training Logs

Epoch Step Training Loss single_answer_eval_cosine_map@100
2.5 5 4.3172 0.0670
5.0 10 4.1303 0.0694
7.5 15 4.1359 0.0709
10.0 20 4.0041 0.0717
12.5 25 4.046 0.0725
15.0 30 3.9099 0.0728
2.5 5 3.8625 0.0746
5.0 10 3.7396 0.0770
7.5 15 3.7788 0.0782
10.0 20 3.6576 0.0793
12.5 25 3.6948 0.0807
15.0 30 3.5424 0.0818
17.5 35 3.6012 0.0824
20.0 40 3.4924 0.0832
22.5 45 3.5435 0.0838
25.0 50 3.4052 0.0843
27.5 55 3.4728 0.0847
30.0 60 3.366 0.0851
32.5 65 3.4351 0.0857
35.0 70 3.3192 0.0861
37.5 75 3.427 0.0864
40.0 80 3.2997 0.0865
42.5 85 3.4185 0.0866
45.0 90 3.2749 0.0867
47.5 95 3.3777 0.0869
50.0 100 3.2882 0.0869
  • The bold row denotes the saved checkpoint.

Framework Versions

  • Python: 3.10.14
  • Sentence Transformers: 3.0.1
  • Transformers: 4.44.0
  • PyTorch: 2.4.0
  • Accelerate: 0.34.2
  • Datasets: 2.21.0
  • Tokenizers: 0.19.1

Citation

BibTeX

Sentence Transformers

@inproceedings{reimers-2019-sentence-bert,
    title = "Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks",
    author = "Reimers, Nils and Gurevych, Iryna",
    booktitle = "Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing",
    month = "11",
    year = "2019",
    publisher = "Association for Computational Linguistics",
    url = "https://arxiv.org/abs/1908.10084",
}

MultipleNegativesRankingLoss

@misc{henderson2017efficient,
    title={Efficient Natural Language Response Suggestion for Smart Reply}, 
    author={Matthew Henderson and Rami Al-Rfou and Brian Strope and Yun-hsuan Sung and Laszlo Lukacs and Ruiqi Guo and Sanjiv Kumar and Balint Miklos and Ray Kurzweil},
    year={2017},
    eprint={1705.00652},
    archivePrefix={arXiv},
    primaryClass={cs.CL}
}