Создайте совместную сеть с Matlab

Dec 27 2022
Доктор Вероника Эспиноза, 2022 г.

Доктор Вероника Эспиноза, 2022 г.

Сеть от автора

MATLAB позволяет работать с матрицами, отображать функции и данные, реализовывать алгоритмы, создавать пользовательские интерфейсы и взаимодействовать с программами, написанными на других языках [1].

Для корпуса документов сеть совпадений представляет собой неориентированный граф, узлы которого соответствуют уникальным словам в словаре, а ребра соответствуют частоте слов, встречающихся одновременно в документе. Используйте сети совпадения для визуализации и извлечения информации об отношениях между словами в корпусе документов. Например, вы можете использовать сеть совпадений, чтобы узнать, какие слова обычно встречаются с указанным словом [2].

Файл, используемый для этого примера

Из импортера Twitter NodeXL [3, 4] я извлек 1000 твитов, используя запрос #neuroscience . Файл, с которым я работал над твитами в Matlab, я назвал neuroscience.xlsx , как показано ниже.

Рисунок 1.- файл neuroscience.xls (подготовлен автором)

Вы можете подготовить файл Excel, как показано выше, не только с информацией из Twitter, но и с информацией из других социальных сетей, например, комментариями из Tik Toc, Instagram, Reddit или любым другим текстом из других источников.

Начнем!

Импорт текстовых данных

Извлеките текстовые данные из файла neuroscience.xlsxс помощью readtable. Считайте данные с помощью readtableфункции и извлеките текстовые данные из TextDataстолбца. (Для этого примера использовалась версия Matlab R2022a) .

filename = "neuroscience.xlsx";
tbl = readtable(filename,'TextType','string');
textData = tbl.TextData;

textData(1:5)

      
                

Разметьте текст, преобразуйте его в нижний регистр и удалите стоп-слова.

documents = tokenizedDocument(textData);
documents = lower(documents);
documents = removeStopWords(documents);

bag = bagOfWords(documents);
counts = bag.Counts;

cooccurrence = counts.'*counts;

G = graph(cooccurrence,bag.Vocabulary,'omitselfloops');

LWidths = 5*G.Edges.Weight/max(G.Edges.Weight);

plot(G,'LineWidth',LWidths)
title("Co-occurence Network #neuroscience")

      
                
Figure 2. #neuroscience network (by the author)

word = "neurons"

      
                
idx = find(bag.Vocabulary == word); nbrs = neighbors(G,idx); bag.Vocabulary(nbrs)'

H = subgraph(G,[idx; nbrs]);

LWidths = 5*H.Edges.Weight/max(H.Edges.Weight);
plot(H,'LineWidth',LWidths)
title("Co-occurence Network - Word: """ + word + """");

      
                
Figure 3. “neurons” subgraph (by the author).

Рис. 4. Пример подграфа «память» с использованием функции Neighbours (автор).

Ниже приведены дополнительные примеры подграфов с использованием функции Neighbours из запроса #neuroscience (подробности см. выше).

Словами для разработки этих подграфов были: «память», «пути», «лекарство», «артериальный», «кора» и «серотонин».

Рис. 5. Галерея подграфов с использованием функции Neighbours из запроса #neuroscience (автор).

Спасибо за прочтение

Мой твиттер

ИСПОЛЬЗОВАННАЯ ЛИТЕРАТУРА

1. МАТЛАБ. В: Википедия [Интернет]. 2022 г. [цитировано 26 декабря 2022 г.]. Доступна с:https://en.wikipedia.org/w/index.php?title=MATLAB&oldid=1128376172

2. Создайте сеть совместного появления — MATLAB и Simulink — MathWorks [Интернет]. [цитировано 25 декабря 2022 г.]. Доступна с:https://es.mathworks.com/help/textanalytics/ug/create-co-occurrence-network.html

3. Вероника Dr. NodeXL: Сетевой анализ можно сделать проще! [Интернет]. Середина. 2022 г. [цитировано 26 декабря 2022 г.]. Доступна с:https:///@vespinozag/nodexl-network-analysis-can-be-made-simpler-876ce07d46f2

4. Фонд исследования социальных сетей [Интернет]. Фонд исследования социальных сетей. [цитировано 26 декабря 2022 г.]. Доступна с:https://www.smrfoundation.org/