Criar rede de coocorrência com Matlab
Dra. Verónica Espinoza, 2022. See More
O MATLAB permite manipulações de matrizes, plotagem de funções e dados, implementação de algoritmos, criação de interfaces de usuário e interface com programas escritos em outras linguagens [1]
Dado um corpus de documentos, uma rede de coocorrência é um grafo não direcionado, com nós correspondendo a palavras únicas em um vocabulário e arestas correspondendo à frequência de palavras coocorrendo em um documento. Use redes de coocorrência para visualizar e extrair informações das relações entre palavras em um corpus de documentos. Por exemplo, você pode usar uma rede de coocorrência para descobrir quais palavras geralmente aparecem com uma palavra especificada [2].
Arquivo usado para este exemplo
Do importador Twitter NodeXL [3, 4] extraí 1000 tweets usando a consulta #neuroscience . O arquivo com o qual trabalhei os tweets no Matlab dei o nome de neuroscience.xlsx conforme abaixo.
Você pode preparar seu arquivo Excel como mostrado acima não apenas com informações do Twitter, mas com informações de outras redes sociais, como comentários do Tik Toc, Instagram, Reddit ou qualquer outro texto que venha de outras fontes.
Vamos começar!
Importar dados de texto
Extraia os dados de texto no arquivo neuroscience.xlsxusando readtable. Leia os dados usando a readtablefunção e extraia os dados de texto da TextDatacoluna. (Para este exemplo, foi usado o Matlab versão R2022a) .
filename = "neuroscience.xlsx";
tbl = readtable(filename,'TextType','string');
textData = tbl.TextData;
textData(1:5)
Torne o texto tokenizado, converta-o em minúsculas e remova as palavras de parada.
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).
Abaixo estão mais exemplos de subgráficos usando a função vizinhos da consulta #neuroscience (veja detalhes acima)
As palavras para a elaboração desses subgráficos foram: “memória”, “vias”, “droga”, “arterial”, “córtex” e “serotonina”.
Obrigado por ler
Meu Twitter
REFERÊNCIAS
1. MATLAB. In: Wikipédia [Internet]. 2022 [citado em 2022, 26 de dezembro]. Disponível a partir de:https://en.wikipedia.org/w/index.php?title=MATLAB&oldid=1128376172
2. Criar rede de coocorrência — MATLAB & Simulink — MathWorks [Internet]. [citado em 25 de dezembro de 2022]. Disponível a partir de:https://es.mathworks.com/help/textanalytics/ug/create-co-occurrence-network.html
3. Verónica Dr. NodeXL: A análise de rede pode ser simplificada! [Internet]. Médio. 2022 [citado em 2022, 26 de dezembro]. Disponível a partir de:https:///@vespinozag/nodexl-network-analysis-can-be-made-simpler-876ce07d46f2
4. Fundação de pesquisa de mídia social [Internet]. Fundação de pesquisa de mídia social. [citado em 26 de dezembro de 2022]. Disponível a partir de:https://www.smrfoundation.org/





































![O que é uma lista vinculada, afinal? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)