network = {
const dLinks = new Map();
for (let t of selected) {
console.log("tweet", t.entities)
for (let i = 0; i < t.entities?.hashtags.length; i += 1) {
for (let j = i + 1; j < t.entities.hashtags.length; j += 1) {
const key = getKey(
t.entities.hashtags[i].text.toLowerCase(),
t.entities.hashtags[j].text.toLowerCase()
);
if (!dLinks.has(key)) dLinks.set(key, 0);
dLinks.set(key, dLinks.get(key) + 1);
}
}
}
const dNodes = new Map();
let links = [];
for (let [l, v] of dLinks) {
if (v < minLinkValue) continue;
const [source, target] = l.split("~");
const s = findOrAdd(dNodes, source);
const t = findOrAdd(dNodes, target);
dNodes.set(source, ((s.value += 1), s));
dNodes.set(target, ((t.value += 1), t));
links.push({ source: s, target: t, value: v });
}
console.log(dNodes, dLinks)
const network = { nodes: Array.from(dNodes.values()), links };
netClustering.cluster(network.nodes, network.links);
return network;
}