Как мне построить график, чтобы увидеть матрицу подобия для суммирования с помощью алгоритма TextRank

#nlp #unsupervised-learning #pagerank #summarization #textrank

Вопрос:

Я использую алгоритм TextRan для обобщения выводимого текста.Я использовал модель перчаток для встраивания слов. Я написал код, который может нарисовать график, чтобы отобразить, как матрица подобия.Хотя я получаю один и тот же сводный текст каждый раз, когда запускаю код, каждый раз я вижу другой рисунок графика. В чем причина этого? Это проблема или это нормально? Если это проблема, как я могу предложить решение? Если у вас есть информация, я был бы признателен, если бы вы ответили.

 def GloveİleSentenceEmbed(sentence_list,sentence_stem):
  word_embeddings = {} 
  f = open('/content/drive/MyDrive/MetinAnalizi/glove.6B.100d.txt', encoding='utf-8')
  for line in f:
    values = line.split()
    word = values[0]
    coefs = np.asarray(values[1:], dtype='float32')
    word_embeddings[word] = coefs
  f.close()
  sentence_vectors = []  
  for i in sentence_stem:
    if len(i) != 0:
      v = sum([word_embeddings.get(w, np.zeros((100,))) for w in i])/(len(i) 0.001)
    else:   
      v = np.zeros((100,))
    sentence_vectors.append(v)
  return sentence_vectors

def SimilariytMatrix(sentence_list,sentence_vectors):
  similarity_matrix=np.zeros([len(sentence_list), len(sentence_list)])
  for i in range(len(sentence_list)):
    for j in range(len(sentence_list)):
      if (i!=j):
         similarity_matrix[i][j] = cosine_similarity(sentence_vectors[i].reshape(1,100), sentence_vectors[j].reshape(1,100))[0,0]
  similarity_matrix = np.round(similarity_matrix,3)
  return similarity_matrix

def PageRankAlgorithm(similarity_matrix,sentence_list):
    nx_graph = nx.from_numpy_array(similarity_matrix)
    plt.figure(figsize=(10, 10))
    pos = nx.spring_layout(nx_graph)
    nx.draw(nx_graph, with_labels=True, font_weight='bold')
    plt.show()
 

введите описание изображения здесь

Комментарии:

1. Как вы отображаете графики ? В чем различия между графиками? Как в этом случае используются вложения слов ?

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

3. Согласно документации , вы можете попытаться установить фиксированное начальное значение, чтобы посмотреть, решит ли оно вашу проблему. Или используйте неслучайную раскладку.