Векторизация списка строк с Word2Ve c для подачи в последовательный слой keras - PullRequest
0 голосов
/ 03 апреля 2020

Я пытаюсь создать специальную модель встраивания слов с помощью fastText, которая представляет мои данные (список предложений) в качестве векторов, чтобы я мог «подать» их в CNN Keras для обнаружения оскорбительного языка.

Мои токенизированные данные хранятся в следующем списке:

data = [['is',
      'this',
      'a',
      'news',
      'if',
      'you',
      'have',
      'no',
      'news',
      'than',
      'shutdown',
      'the',
      'channel'],
     ['if',
      'interest',
      'rate',
      'will',
      'hike',
      'by',
      'fed',
      'then',
      'what',
      'is',
      'the',
      'effect',
      'on',
      'nifty']]

В настоящее время я применяю модель fastText следующим образом:

model = fastText(data, size=100, window=5, min_count=5, workers=16, sg=0, negative=5)

И затем я выполняю:

model = FastText(sentences, min_count=1)

documents = []

for document in textList:
    word_vectors = []
    for word in document: 
        word_vectors.append(model.wv[word])
    documents.append(np.concatenate(word_vectors)

document_matrix = np.concatenate(documents)

Очевидно, что document_matrix не подходит в качестве входных данных для моей модели Keras:

from keras.models import Sequential
from keras import layers
from keras.layers import Dense, Activation

model = Sequential()
model.add(layers.Conv1D(filters=250, kernel_size = 4, padding = 'same', input_shape=( 1,))) 
model.add(layers.GlobalMaxPooling1D()) 
model.add(layers.Dense(250, activation='relu')) 
model.add(layers.Dense(3, activation='sigmoid')) 

У меня застряли идеи, как сделать вывод встраивания подходящим для ввода для Keras.

Большое спасибо заранее, ребята, вы лучшие!

Лиза

1 Ответ

0 голосов
/ 04 апреля 2020

Вы можете взять каждое представление слова из модели word2ve c с помощью model[YOURKEYWORD]. Некоторые вложения слов могут отсутствовать в вашей модели word2ve c, поэтому вы можете использовать try-catch в своем коде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...