Смещение word2vec в сторону специального корпуса

Я новичок в stackoverflow. Пожалуйста, простите мой плохой английский.

Я использую word2vec в школьном проекте. Я хочу работать с корпусом для конкретной предметной области (например, с учебником по физике) для создания векторов слов с помощью Word2Vec. Эта автономная версия не дает хороших результатов из-за меньшего размера корпуса. Это особенно больно, поскольку мы хотим оценивать слова, которые вполне могут находиться за пределами словарного запаса учебника.

Мы хотим, чтобы учебник закодировал предметно-зависимые отношения и семантическую «близость». «Квант» и «Гейзенберг» особенно близки в этом учебнике, например. что может не относиться к фоновому корпусу. Для обработки общих слов (например, «любой») нам понадобится базовая фоновая модель (например, та, что предоставлена ​​Google на сайте word2vec).

Есть ли способ заменить фоновую модель, используя наш новый корпус? Просто тренировки на корпусе и т. Д. Не работают.

Есть ли попытки объединить векторные представления из двух корпусов - общего и частного? Я не нашел ни одного в своих поисках.


person SachMB    schedule 05.06.2015    source источник
comment
Я не совсем понимаю, что вы имеете в виду под весом и предвзятостью. Если вы хотите, чтобы ваш новый корпус производил более сильное впечатление в модели, возможно, одним из способов добиться этого является самонастройка. Или, другими словами, вы тренируете какое-то предложение более одного раза. Другим решением может быть изменение скорости обучения model.alpha = model.alpha * bias. Но это может иметь другие эффекты в зависимости от корпуса.   -  person Mehdi    schedule 08.06.2015


Ответы (1)


Давайте поговорим о gensim, раз уж вы пометили этим свой вопрос. Вы можете загрузить предварительно обученную модель в Python с помощью gensim. Затем вы продолжаете его тренировать. Было бы полезно?

# load from previous gensim file:
model = gensim.models.Word2Vec.load(fname)
# or from word2vec c format:
# model = gensim.models.Word2Vec.load_word2vec_format('/path/vectors.bin', binary=True)

# continue training:
model.train(other_sentences)
model.save(fname)
person Mehdi    schedule 05.06.2015
comment
Я уже пробовал это, но добавление новых документов в корпус ведет себя так же, как если бы я обучался всему набору старых и новых документов вместе. Я хочу иметь больший вес (или предвзятость?) В отношении нового пакета документов. - person SachMB; 07.06.2015