Использование контейнеров ключей RSA в качестве генератора ключей для AES - могу ли я сделать это лучше?

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

В gensim есть класс, называемый TranslationMatrix, который реализует метод learn-a-projection-between-two-spaces, используемый для машинного перевода между естественными языками в одной из ранних статей word2vec. Для этого требуется, чтобы некоторые слова, которые вы указываете, должны иметь эквивалентные векторы - набор привязки / набора ссылок, а затем другие слова найдут свои позиции по отношению к ним. Существует демо-версия его использования в ноутбуках документации gensim:

https://github.com/RaRe-Technologies/gensim/blob/develop/docs/notebooks/translation_matrix.ipynb

Но есть и другие методы, которые вы могли бы также рассмотреть:

  • transform & amp; вместо этого объединяют учебные корпуса, чтобы сохранить некоторые слова, которые одинаковы во всех корпусах (например, очень частые слова), но делают разные интересные слова для каждого сегмента. Например, вы можете оставлять слова «горячие» и «холодные» неизменными, но вместо слов «тамале» или «кататься на лыжах» следует использовать такие версии подкорпуса, как «tamale (A)», «tamale (B)», катание на лыжах (A) "," катание на лыжах (B) ". Перемешайте все данные вместе для обучения в один сеанс, затем проверьте расстояния / направления между «tamale (A)» и «tamale (B)», поскольку каждый из них обучается только их соответствующим подмножествам данных. (По-прежнему важно иметь много «якорных» слов, разделяемых между разными наборами, чтобы заставить корреляцию этих слов и, следовательно, общее влияние / значение для переменных слов.)
  • создать модель для все данные, с одним вектором на слово. Сохраните эту модель в стороне. Затем перезагрузите его и попробуйте переучивать его только подмножествами всех данных. Проверьте, сколько слов движется, когда тренируется только по сегментам. (Это может снова помочь сопоставимости держать определенные заметные якорные слова постоянными. В model.trainables есть экспериментальное свойство с окончанием имени _lockf, которое позволяет масштабировать обновления для каждого слова. Если вы установите его значения равным 0.0, вместо определенных по умолчанию 1.0 для определенных слотов слов эти слова не могут быть дополнительно обновлены. Поэтому после повторной загрузки модели вы можете «заморозить» ваши опорные слова, установив их значения _lockf равными 0.0, чтобы только другие слова обновляются по второстепенному обучению, и , они все еще связаны с координатами, которые имеют смысл в отношении неподвижных якорных слов. Читайте исходный код , чтобы лучше понять как работает _lockf.)

1
задан Mythikos 19 January 2019 в 00:27
поделиться