Word2Ve c - Как я могу хранить и извлекать дополнительную информацию о каждом экземпляре корпуса? - PullRequest
2 голосов
/ 27 января 2020

Мне нужно объединить Word2Ve c с моей CNN моделью. Для этого мне нужно сохранить флаг (достаточно двоичного) для каждого предложения, поскольку в моем корпусе есть два типа ( aka целевых классов) предложений. Итак, мне нужно получить этот флаг каждого вектора после создания. Как я могу хранить и извлекать эту информацию во входных предложениях Word2Vec, так как они нужны мне обоим для обучения моей глубокой нейронной сети?

ps Я использую Gensim реализацию Word2Vec .

ps В моем корпусе есть 6,925 предложений, а Word2Vec производит 5260 векторов.

Редактировать: Подробнее относительно моего корпуса (по запросу):

Структура корпуса выглядит следующим образом:

  1. предложений (метка: positive) - A Python список

    • Feature-A: Строка
    • Feature-B: Строка
    • Feature-C: Строка
  2. предложения (метка: negative) - A Python список

    • Feature-A: Строка
    • Feature-B: Строка
    • Feature-C: Строка

Тогда все предложения были даны как входные данные для Word2Vec.

word2vec = Word2Vec(all_sentences, min_count=1)

Я накормлю свой CNN с выдержкой ed функции (в данном случае vocabulary) и targets предложений. Итак, мне нужны и эти ярлыки предложений.

1 Ответ

0 голосов
/ 27 января 2020

Поскольку модель Word2Vec не сохраняет представления отдельных обучающих текстов, это полностью зависит от вас в вашем собственном коде Python.

Это не похоже на большие данные. (Для типичных Word2Vec целей довольно просто иметь конечный словарь из 5260 слов.)

Если каждый текст (он же «предложение») очень длинный, вы можете даже просто использовать диктовку Python где каждый ключ - полная строка предложения, а значение - ваш флаг.

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

На самом деле, если есть канонический порядок исходников ваших 6 925 текстов, вы можете просто получить список flags с 6 925 элементами в порядке, где каждый элемент является вашим флагом. Когда вам нужно узнать статус текста с позиции n, вы просто смотрите на flags[n].

(Чтобы сделать более конкретные c предложения, вам нужно будет добавить больше информации об исходном источнике данных и точно, когда и почему вам нужно будет проверить это дополнительное свойство позже.)

...