base on null # The Graph Mining Library The mission of the [Google Graph Mining team](https://research.google/teams/graph-mining/) is to build the most scalable library for graph algorithms and analysis and apply it to a multitude of Google products. In particular, we develop tools for building similarity graphs, clustering, node classification, node embedding, training graph neural networks, graph visualization, diverse sampling and similarity ranking. For more information, see our [NeurIPS'20 workshop](https://gm-neurips-2020.github.io/). This repository currently contains a collection of clustering algorithms. For our Graph Neural Network (GNN) framework, see [TF-GNN](https://github.com/tensorflow/gnn) (part of the [TensorFlow project](https://github.com/tensorflow)). ## Clustering This repository contains shared memory parallel clustering algorithms which scale to graphs with tens of billions of edges, as well as several sequential algorithms. The parallel algorithms are based on the following research papers: * [Hierarchical Agglomerative Graph Clustering in Poly-Logarithmic Depth](https://papers.nips.cc/paper_files/paper/2022/hash/909de96145d97514b143dfde03e6cd2b-Abstract-Conference.html), Laxman Dhulipala, David Eisenstat, Jakub Lacki, Vahab Mirrokni, Jessica Shi, NeurIPS'22. See https://github.com/google/graph-mining/tree/main/in_memory/clustering/hac * [Scalable community detection via parallel correlation clustering](https://dl.acm.org/doi/abs/10.14778/3476249.3476282), Jessica Shi, Laxman Dhulipala, David Eisenstat, Jakub Łącki, Vahab Mirrokni, VLDB'21. See https://github.com/google/graph-mining/tree/main/in_memory/clustering/correlation * [Affinity Clustering: Hierarchical Clustering at Scale](https://papers.nips.cc/paper_files/paper/2017/hash/2e1b24a664f5e9c18f407b2f9c73e821-Abstract.html), Mohammadhossein Bateni, Soheil Behnezhad, Mahsa Derakhshan, MohammadTaghi Hajiaghayi, Raimondas Kiveris, Silvio Lattanzi, Vahab Mirrokni, NeurIPS'17 (the paper describes a MapReduce algorithm). See https://github.com/google/graph-mining/tree/main/in_memory/clustering/affinity * [Distributed Balanced Partitioning via Linear Embedding](https://dl.acm.org/doi/10.1145/2835776.2835829), Kevin Aydin, MohammadHossein Bateni, Vahab Mirrokni, WSDM'16 (the paper describes a MapReduce algorithm). See https://github.com/google/graph-mining/tree/main/in_memory/clustering/parline This is not an officially supported Google product. For questions/comments, please create an issue on this repository. ## Quickstart 1. Install [Bazel](https://bazel.build/) 2. Run the example: `bazel run //examples:quickstart` ", Assign "at most 3 tags" to the expected json: {"id":"3031","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"