# para obter os grafos de todas as emoções acdc_rede_emocoes.pl -c que cria matriz matrizmatriz lexico # criar os tamanhos dos nós a partir do léxico grep -v TE lexicoEmos | grep -v DESAP | grep -v cjt > lexicoEmosTodos.R acdc_igraph_calcula_pesos.pl < lexicoEmosTodos.R > comEmosTodosPesos # para fazer as figuras de coocorrência require(igraph) lista<-read.table("matrizTODOS") G<-graph_from_edgelist(as.matrix(subset(lista,TRUE,1:2)), directed=FALSE) E(G)$weight <- lista$V3 source("comEmosTodosPesos") png("emosTodos.png") par(mar=c(0.5,0.5,0.5,0.5)+0.1) plot(G, layout=layout.random, edge.width=20*E(G)$weight/max(E(G)$weight)) dev.off() lista<-read.table("matrizLITERATECA") G<-graph_from_edgelist(as.matrix(subset(lista,TRUE,1:2)), directed=FALSE) E(G)$weight <- lista$V3 source("comEmosLiteratecaPesos") png("emosLit.png") par(mar=c(0.5,0.5,0.5,0.5)+0.1) plot(G, layout=layout.random, edge.width=20*E(G)$weight/max(E(G)$weight)) dev.off() # para obter os grafos das palavras de um dado grupo de emoção Criar no CQP os léxicos: cqp -e [no corpus]> TODOS; TODOS> set as off; TODOS> [sema=".*emo:amor.*"]; groupLast1281610 matches. Use 'cat' to show. TODOS> group Last match lema > "listaLemasAmorTodos" [sema=".*emo:desespero.*"] TODOS> group Last match lema > "listaLemasDesesperoTodos" # editar para ficarem na forma palTABfreq # e refazer os números e criar os pesos cat listaLemasAmorTodos | acdc_melhora_lista_freq_lemas.pl > listaAmorIni acdc_igraph_calcula_pesos.pl < listaAmorIni > comAmorTodosPesos iconv -f iso-8859-1 -t utf8 comAmorTodosPesos > comAmorTodosPesos.R # criar o grafo # já tendo os ficheiros listaDesespero e listaAmor, editados a partir da procura no AC/DC acdc_rede_emocoes_palavras.pl -c LITERATECA -f Desespero acdc_rede_emocoes_palavras.pl -c TODOS -f Amor # que cria a matrizTODOSAmor iconv -f iso-8859-1 -t utf8 matrizTODOSAmor > matrizTodosAmor.R iconv -f iso-8859-1 -t utf8 matrizmatrizTODOSAmor.R > matrizmatrizTodosAmor.R iconv -f iso-8859-1 -t utf8 matrizTODOSDesespero > matrizTodosDesespero.R iconv -f iso-8859-1 -t utf8 matrizmatrizTODOSDesespero.R > matrizmatrizTodosDesespero.R iconv -f iso-8859-1 -t utf8 matrizLITERATECAAmor > matrizLitAmor.R iconv -f iso-8859-1 -t utf8 matrizmatrizLITERATECAAmor.R > matrizmatrizLitAmor.R iconv -f iso-8859-1 -t utf8 matrizLITERATECADesespero > matrizLitDesespero.R iconv -f iso-8859-1 -t utf8 matrizmatrizLITERATECADesespero.R > matrizmatrizLitDesespero.R # no R require(igraph) lista<-read.table("matrizTodosAmor.R") G<-graph_from_edgelist(as.matrix(subset(lista,TRUE,1:2)), directed=FALSE) E(G)$weight <- lista$V3 source("comAmorTodosPesos.R") png("amorTodos.png") par(mar=c(0.5,0.5,0.5,0.5)+0.1) plot(G, layout=layout.random, edge.width=20*E(G)$weight/max(E(G)$weight)) dev.off() lista<-read.table("matrizLitAmor.R") G<-graph_from_edgelist(as.matrix(subset(lista,TRUE,1:2)), directed=FALSE) E(G)$weight <- lista$V3 source("comAmorLitPesos.R") png("amorLit.png") par(mar=c(0.5,0.5,0.5,0.5)+0.1) plot(G, layout=layout.random, edge.width=20*E(G)$weight/max(E(G)$weight)) dev.off() lista<-read.table("matrizTodosDesespero.R") G<-graph_from_edgelist(as.matrix(subset(lista,TRUE,1:2)), directed=FALSE) E(G)$weight <- lista$V3 source("comDesesperoTodosPesos.R") png("desesperoTodos.png") par(mar=c(0.5,0.5,0.5,0.5)+0.1) plot(G, layout=layout.random, edge.width=20*E(G)$weight/max(E(G)$weight)) dev.off() lista<-read.table("matrizLitDesespero.R") G<-graph_from_edgelist(as.matrix(subset(lista,TRUE,1:2)), directed=FALSE) E(G)$weight <- lista$V3 source("comDesesperoLitPesos.R") png("desesperoLit.png") par(mar=c(0.5,0.5,0.5,0.5)+0.1) plot(G, layout=layout.random, edge.width=20*E(G)$weight/max(E(G)$weight)) dev.off() # clustering geral matTodos<-read.table("matrizmatriz2TODOS.R", row.names=1) matTodos<-matTodos+0.00001 for (i in 1:26) { print (i); for (j in 1:26) { print(rownames(matTodos)[i]); print(colnames(matTodos)[j]); print (tamanhoEmo$tam[i]); print (tamanhoEmo$tam[j]); print (min(tamanhoEmo$tam[i],tamanhoEmo$tam[j])); print (matTodos[i,j]/min(tamanhoEmo$tam[i],tamanhoEmo$tam[j]));matTodosNovo[i,j]<-matTodos[i,j]/min(tamanhoEmo$tam[i],tamanhoEmo$tam[j])}} matTodosNovo=matrix(nrow=26,ncol=26) colnames(matTodosNovo)<-colnames(matTodos) rownames(matTodosNovo)<-rownames(matTodos) for (i in 1:26) {for (j in 1:26) {matTodosNovo[i,j]<-matTodos[i,j]/min(tamanhoEmo$tam[i],tamanhoEmo$tam[j])}} matTodos<-matTodosNovo nmat<-1/matTodos emosTodos.dist<-as.dist(nmat) emosTodos2dim.mds<-cmdscale(emosTodos.dist, k=2) ola<-data.frame(emosTodos2dim.mds) png("todosmds.png",height=15,width=15,units="cm", res=600 ) plot(ola$X1,ola$X2, type="n", xlab="dimension 1", ylab="dimension 2",main="Multidimensional scaling of emotion groups by co-occurrence") text(ola$X1,ola$X2, row.names(ola), cex=0.6) dev.off() emosTodos3dim.mds<-cmdscale(emosTodos.dist, k=3) ola<-data.frame(emosTodos3dim.mds) png("todos3mds.png",height=15,width=15,units="cm", res=600 ) plot(ola$X2,ola$X3, type="n", xlab="dimension 2", ylab="dimension 3",main="Multidimensional scaling of emotion groups by co-occurrence") text(ola$X2,ola$X3, row.names(ola))#, cex=0.6) dev.off() #dendograma png("clustTodos.png") plot(hclust(emosTodos.dist,method="ward.D2")) dev.off() png("clustTodos2met.png", height=10,width=30,units="cm", res=1000) par(mfrow=c(1,2)) plot(hclust(emosTodos.dist,method="complete"),main="Method: complete") plot(hclust(emosTodos.dist,method="ward.D2"),main="Method: ward.D2") dev.off() # para tratar do clustering matTodosAmor<-read.table("matrizmatrizTodosAmor.R", row.names=1) amorTodos<-as.dist(1/(matTodosAmor+.00001)) plot(hclust(amorTodos)) # para tratar do multidimensional scaling library(languageR) matriz <- read.table("matrizmatrizLitDesespero.R",row.names=1) matriz <- matriz +0.00001 nmat<- 1/matriz emos.dist<-as.dist(nmat) emos2dim.mds<-cmdscale(emos.dist, k=2) ola<-data.frame(emos2dim.mds) plot(ola$X1,ola$X2, type="n", xlab="dimension 1", ylab="dimension 2",main="Multidmensional scaling of emotion groups by co-occurrence") text(ola$X1,ola$X2, row.names(ola)) emos3dim.mds<-cmdscale(emos.dist, k=3) ola<-data.frame(emos3dim.mds) png("mds3AmorTodos.png", height=10,width=30,units="cm", res=1000) par(mfrow=c(1,3)) plot(ola$X1,ola$X2, type="n", xlab="dimension 1", ylab="dimension 2") text(ola$X1,ola$X2, row.names(ola)) plot(ola$X1,ola$X3, type="n", xlab="dimension 1", ylab="dimension 3") text(ola$X1,ola$X3, row.names(ola)) plot(ola$X2,ola$X3, type="n", xlab="dimension 2", ylab="dimension 3") text(ola$X2,ola$X3, row.names(ola)) dev.off()