Word2vec Цне сюжет - PullRequest
       8

Word2vec Цне сюжет

0 голосов
/ 24 мая 2018

Я пытаюсь визуализировать word2vec, который я создал из корпуса amazon reviews ..... Я выбрал около 5 тыс. Положительных и 5 тыс. Отрицательных строк… В столбце «Оценка» указывается, являются ли отзывы положительными или отрицательными .... Вот мойкод: **

For avg w2v i did this…(list of sent contains the avg w2v for each review)
w2v_model=gensim.models.Word2Vec(list_of_sent,min_count=5,size=50, workers=4)
Y = w2v_model[w2v_model.wv.vocab]
tsne = TSNE(n_components=2, perplexity = 30)
tsne_data = tsne.fit_transform(Y)

**

Теперь я хочу построить их в соответствии со счетом, то есть синими точками для положительного и красным для отрицательного ....... я не знаюне знаю, как это сделать !! ..... Буду признателен за любую помощь ..

Ответы [ 2 ]

0 голосов
/ 24 мая 2018

Вы сопоставили свой набор данных с 2-мя измерениями, поэтому набор данных можно преобразовать в 3 столбца, где ваши x, y будут взяты из t-SNE и столбца положительных и отрицательных категорий

Вы можетепостройте то же самое, используя Scatterplot от Matplotlib

0 голосов
/ 24 мая 2018

Если я правильно понимаю, вы в основном хотите создать диаграмму рассеяния X = TSNE Компонент 1, Y = TSNE Компонент 2 и закрасить целевой переменной (положительной или отрицательной)

Следующий пример кода достигает этого::

tsneDf = pd.DataFrame(data = tsne_data ,columns = ['TSNE component 1', 
'TSNE component 2'])
 #Create a dataframe of TSNE Compoenent and the Score Column
finalDf = pd.concat([tsneDf, df[['ScoreColumn']]], axis = 1)

#Now we jsut plot a scatter plot
fig = plt.figure(figsize = (8,8))
ax = fig.add_subplot(1,1,1) 
ax.set_xlabel('TSNE Component 1', fontsize = 15)
ax.set_ylabel('TSNE Component 2', fontsize = 15)
ax.set_title('2 component TSNE', fontsize = 20)

#In this example 0:Negative and 1:Positive and we map respective colour
targets = [0, 1] 
colors = ['r', 'g']
for target, color in zip(targets,colors):
indicesToKeep = finalDf['ScoreColumn'] == target
ax.scatter(finalDf.loc[indicesToKeep, 'TSNE component 1']
           , finalDf.loc[indicesToKeep, 'TSNE component 2']
           , c = color
           , s = 25,alpha=0.4)
ax.legend(targets)
ax.grid()

Образец Результат выглядит следующим образом (для моих данных) enter image description here

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