{"_id":"chinese-whispers","_rev":"27-8719902df4229d3ffdbb676d3e3e251f","name":"chinese-whispers","description":"Chinese Whispers Algorithm","dist-tags":{"latest":"0.2.11","next":"0.3.9"},"versions":{"0.0.5":{"name":"chinese-whispers","version":"0.0.5","description":"Chinese Whispers Algorithm","main":"bundles/chinese-whispers.umd.js","types":"dist/index.d.ts","scripts":{"build":"tsc --module es6","clean":"shx rm -fr dist/*","dist":"npm run clean && npm run build && npm run rollup && npm run dist:es6to5","dist:es6to5":"tsc --out ./bundles/chinese-whispers.umd.js --target es5 --allowJs bundles/chinese-whispers.es6.umd.js --lib es6,dom","demo":"npm run example:demo","example:demo":"ts-node examples/demo","lint":"npm run lint:ts","lint:ts":"tslint --version && tslint --project tsconfig.json --type-check --exclude \"dist/\" \"{bin,examples,src,tests}/**/*.ts\" && npm run clean && tsc --noEmit","rollup":"rollup -c","test":"tap \"src/**/*.spec.ts\" \"test/**/*.spec.ts\"","test:npm":"export TMPDIR=/tmp/chinese-whispers-npm.$$ && mkdir $TMPDIR && npm pack && mv chinese-whispers-*.*.*.tgz $TMPDIR && cp examples/demo.js $TMPDIR && cd $TMPDIR && npm init -y && npm install chinese-whispers-*.*.*.tgz && node demo.js","test:unit":"tap -R tap test/unit/**/*.spec.ts"},"repository":{"type":"git","url":"git+https://github.com/zixia/chinese-whispers.git"},"keywords":["chinese","whispers","algorithm","cluster","knn"],"author":{"name":"Huan LI","email":"zixia@zixia.net"},"license":"Apache-2.0","bugs":{"url":"https://github.com/zixia/chinese-whispers/issues"},"homepage":"https://github.com/zixia/chinese-whispers#readme","dependencies":{"jsnetworkx":"^0.3.4","knuth-shuffle":"^1.0.1","numjs":"^0.14.2"},"devDependencies":{"@types/node":"^8.0.25","@types/numjs":"^0.14.2","rollup":"^0.49.2","shx":"^0.2.2","tap":"^10.7.2","ts-node":"^3.3.0","tslint":"^5.7.0","tslint-jsdoc-rules":"^0.1.2","typescript":"^2.4.2"},"files":["package.json","README.md","CHANGELOG.md","LICENSE","bundles/","src/","dist/"],"gitHead":"11478168697362332f15fa15bbab8149d8b0079b","_id":"chinese-whispers@0.0.5","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"zixia","email":"zixia@zixia.net"},"dist":{"integrity":"sha512-v3zerkraf6ffYP6WO0C/t1XkFwUUgynPJD3CATtub6uQIA2j4ZrPjY+Eqh7jTNSjRQhdmGvt9MKazJHKzsWQYg==","shasum":"ee8a10fe17f006ea85a0847ef3fcf717b326db03","tarball":"https://registry.npmjs.org/chinese-whispers/-/chinese-whispers-0.0.5.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAY96AbZs6DTo+gbCoE6vK8FFDWiQO6bTzM7cIpilhR6AiAG5eA+J4jBvpVWEqUX4uPrbu7PS584rF/K4H1mMRlSsw=="}]},"maintainers":[{"name":"zixia","email":"zixia@zixia.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/chinese-whispers-0.0.5.tgz_1504629300727_0.40737425605766475"},"directories":{}},"0.0.10":{"name":"chinese-whispers","version":"0.0.10","description":"Chinese Whispers Algorithm","main":"bundles/chinese-whispers.umd.js","types":"dist/index.d.ts","scripts":{"build":"tsc --module es6","clean":"shx rm -fr dist/*","dist":"npm run clean && npm run build && npm run rollup && npm run dist:es6to5","dist:es6to5":"tsc --out ./bundles/chinese-whispers.umd.js --target es5 --allowJs bundles/chinese-whispers.es6.umd.js --lib es6,dom","demo":"npm run example:demo","example:demo":"ts-node examples/demo","lint":"npm run lint:ts","lint:ts":"tslint --version && tslint --project tsconfig.json --type-check --exclude \"dist/\" \"{bin,examples,src,tests}/**/*.ts\" && npm run clean && tsc --noEmit","rollup":"rollup -c","test":"tap \"src/**/*.spec.ts\" \"test/**/*.spec.ts\"","test:npm":"npm run dist && export TMPDIR=/tmp/chinese-whispers-npm.$$ && mkdir $TMPDIR && npm pack && mv chinese-whispers-*.*.*.tgz $TMPDIR && cp tests/fixtures/smoke-testing.js $TMPDIR && cd $TMPDIR && npm init -y && npm install chinese-whispers-*.*.*.tgz && node smoke-testing.js","test:unit":"tap -R tap test/unit/**/*.spec.ts"},"repository":{"type":"git","url":"git+https://github.com/zixia/chinese-whispers.git"},"keywords":["chinese","whispers","algorithm","cluster","knn"],"author":{"name":"Huan LI","email":"zixia@zixia.net"},"license":"Apache-2.0","bugs":{"url":"https://github.com/zixia/chinese-whispers/issues"},"homepage":"https://github.com/zixia/chinese-whispers#readme","dependencies":{"jsnetworkx":"^0.3.4","knuth-shuffle":"^1.0.1","numjs":"^0.14.2"},"devDependencies":{"@types/node":"^8.0.25","@types/numjs":"^0.14.2","rollup":"^0.49.2","shx":"^0.2.2","tap":"^10.7.2","ts-node":"^3.3.0","tslint":"^5.7.0","tslint-jsdoc-rules":"^0.1.2","typescript":"^2.4.2"},"files":["package.json","README.md","CHANGELOG.md","LICENSE","bundles/","src/","dist/"],"gitHead":"77c54a4c02da02d20afa7589b976dc3f1636bd6b","_id":"chinese-whispers@0.0.10","_shasum":"e05decbd57dfc34f39a90561082b16c98bd16787","_from":".","_npmVersion":"4.2.0","_nodeVersion":"7.10.1","_npmUser":{"name":"zixia","email":"zixia@zixia.net"},"dist":{"shasum":"e05decbd57dfc34f39a90561082b16c98bd16787","tarball":"https://registry.npmjs.org/chinese-whispers/-/chinese-whispers-0.0.10.tgz","integrity":"sha512-Kb2v0Tt1od1a+6I0UJ5W9Jd61oeEhspz424NTU0TgnCWbABvCzmy98JkBGmvxez7JNCiKwh17fcANIX4OC7Z0Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC87yVbAHG87xncDdVrVSTUl+twWzgiozzEpp0MvKoSSgIgMCYnmCm/+5rOm8xbD44jDFPzlYED4yKvLUfish8CJLA="}]},"maintainers":[{"name":"zixia","email":"zixia@zixia.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/chinese-whispers-0.0.10.tgz_1504634066598_0.18035901384428144"},"directories":{}},"0.0.11":{"name":"chinese-whispers","version":"0.0.11","description":"Chinese Whispers Algorithm","main":"bundles/chinese-whispers.umd.js","types":"dist/index.d.ts","scripts":{"build":"tsc --module es6","clean":"shx rm -fr dist/*","dist":"npm run clean && npm run build && npm run rollup && npm run dist:es6to5","dist:es6to5":"tsc --out ./bundles/chinese-whispers.umd.js --target es5 --allowJs bundles/chinese-whispers.es6.umd.js --lib es6,dom","demo":"npm run example:demo","example:demo":"ts-node examples/demo","lint":"npm run lint:ts","lint:ts":"tslint --version && tslint --project tsconfig.json --type-check --exclude \"dist/\" \"{bin,examples,src,tests}/**/*.ts\" && npm run clean && tsc --noEmit","rollup":"rollup -c","test":"tap \"src/**/*.spec.ts\" \"test/**/*.spec.ts\"","test:npm":"npm run dist && export TMPDIR=/tmp/chinese-whispers-npm.$$ && mkdir $TMPDIR && npm pack && mv chinese-whispers-*.*.*.tgz $TMPDIR && cp tests/fixtures/smoke-testing.js $TMPDIR && cd $TMPDIR && npm init -y && npm install chinese-whispers-*.*.*.tgz && node smoke-testing.js","test:unit":"tap -R tap test/unit/**/*.spec.ts"},"repository":{"type":"git","url":"git+https://github.com/zixia/chinese-whispers.git"},"keywords":["chinese","whispers","algorithm","cluster","knn"],"author":{"name":"Huan LI","email":"zixia@zixia.net"},"license":"Apache-2.0","bugs":{"url":"https://github.com/zixia/chinese-whispers/issues"},"homepage":"https://github.com/zixia/chinese-whispers#readme","dependencies":{"jsnetworkx":"^0.3.4","knuth-shuffle":"^1.0.1","numjs":"^0.14.2"},"devDependencies":{"@types/node":"^8.0.25","@types/numjs":"^0.14.2","rollup":"^0.49.2","shx":"^0.2.2","tap":"^10.7.2","ts-node":"^3.3.0","tslint":"^5.7.0","tslint-jsdoc-rules":"^0.1.2","typescript":"^2.4.2"},"files":["package.json","README.md","CHANGELOG.md","LICENSE","bundles/","src/","dist/"],"gitHead":"c3f6c7de96c1b00b25b6ef3b5612c9a80904fb41","_id":"chinese-whispers@0.0.11","_shasum":"8330b37f2f69e6a5b7486bb9bf8a0e2c8bc2c916","_from":".","_npmVersion":"4.2.0","_nodeVersion":"7.10.1","_npmUser":{"name":"zixia","email":"zixia@zixia.net"},"dist":{"shasum":"8330b37f2f69e6a5b7486bb9bf8a0e2c8bc2c916","tarball":"https://registry.npmjs.org/chinese-whispers/-/chinese-whispers-0.0.11.tgz","integrity":"sha512-lSXIJgPPh9nRO2frJp+Nm9X8kQeMhHSaMZDcNOc892zTLPWc+WWMODueDcd1VohhOoaC1XM0DlJKEl26axEgoQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDvgtQUapKpJ9vDaGjUykyu5Jlj5sN3bNjg4U5D6CbO7wIgYI1QvmyU/zEKn7XbqfWgL3soiSHqC5nZC3AEocJtn98="}]},"maintainers":[{"name":"zixia","email":"zixia@zixia.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/chinese-whispers-0.0.11.tgz_1504636014795_0.44241545908153057"},"directories":{}},"0.0.12":{"name":"chinese-whispers","version":"0.0.12","description":"Chinese Whispers Algorithm","main":"bundles/chinese-whispers.umd.js","types":"dist/index.d.ts","scripts":{"build":"tsc --module es6","clean":"shx rm -fr dist/*","dist":"npm run clean && npm run build && npm run rollup && npm run dist:es6to5","dist:es6to5":"tsc --out ./bundles/chinese-whispers.umd.js --target es5 --allowJs bundles/chinese-whispers.es6.umd.js --lib es6,dom","demo":"npm run example:demo","example:demo":"ts-node examples/demo","lint":"npm run lint:ts","lint:ts":"tslint --version && tslint --project tsconfig.json --type-check --exclude \"dist/\" \"{bin,examples,src,tests}/**/*.ts\" && npm run clean && tsc --noEmit","rollup":"rollup -c","test":"tap \"src/**/*.spec.ts\" \"test/**/*.spec.ts\"","test:npm":"npm run dist && export TMPDIR=/tmp/chinese-whispers-npm.$$ && mkdir $TMPDIR && npm pack && mv chinese-whispers-*.*.*.tgz $TMPDIR && cp tests/fixtures/smoke-testing.js $TMPDIR && cd $TMPDIR && npm init -y && npm install chinese-whispers-*.*.*.tgz && node smoke-testing.js","test:unit":"tap -R tap test/unit/**/*.spec.ts"},"repository":{"type":"git","url":"git+https://github.com/zixia/chinese-whispers.git"},"keywords":["chinese","whispers","algorithm","cluster","knn"],"author":{"name":"Huan LI","email":"zixia@zixia.net"},"license":"Apache-2.0","bugs":{"url":"https://github.com/zixia/chinese-whispers/issues"},"homepage":"https://github.com/zixia/chinese-whispers#readme","dependencies":{"jsnetworkx":"^0.3.4","knuth-shuffle":"^1.0.1","numjs":"^0.14.2"},"devDependencies":{"@types/node":"^8.0.25","@types/numjs":"^0.14.2","rollup":"^0.49.2","shx":"^0.2.2","tap":"^10.7.2","ts-node":"^3.3.0","tslint":"^5.7.0","tslint-jsdoc-rules":"^0.1.2","typescript":"^2.4.2"},"files":["package.json","README.md","CHANGELOG.md","LICENSE","bundles/","src/","dist/"],"gitHead":"03302a8070489bd04bf1f7b787dab3394ea35345","_id":"chinese-whispers@0.0.12","_shasum":"7ea69d2d3a7fe4c4d3c1ab69f4bc50342454265c","_from":".","_npmVersion":"4.2.0","_nodeVersion":"7.10.1","_npmUser":{"name":"zixia","email":"zixia@zixia.net"},"dist":{"shasum":"7ea69d2d3a7fe4c4d3c1ab69f4bc50342454265c","tarball":"https://registry.npmjs.org/chinese-whispers/-/chinese-whispers-0.0.12.tgz","integrity":"sha512-hALfBz/+vMvW798Xx2iSy6L1MoaW98kQK9+AQAgOmeyL0ds1seiYjmpLTNUoUXNB1FP3ChakuOgoUb3nGuprXQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCbxyNAvU0DYxeuki0dwiIM2A4hr6Q/LEJfiafX70xpPQIhAMbaHr2sLyJlBmgjzXIKCnoDxZklrb6kO+nc4MAhvbWI"}]},"maintainers":[{"name":"zixia","email":"zixia@zixia.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/chinese-whispers-0.0.12.tgz_1504636469357_0.01953583466820419"},"directories":{}},"0.0.13":{"name":"chinese-whispers","version":"0.0.13","description":"Chinese Whispers Algorithm","main":"bundles/chinese-whispers.umd.js","types":"dist/index.d.ts","scripts":{"build":"tsc --module es6","clean":"shx rm -fr dist/*","dist":"npm run clean && npm run build && npm run rollup && npm run dist:es6to5","dist:es6to5":"tsc --out ./bundles/chinese-whispers.umd.js --target es5 --allowJs bundles/chinese-whispers.es6.umd.js --lib es6,dom","demo":"npm run example:demo","example:demo":"ts-node examples/demo","lint":"npm run lint:ts","lint:ts":"tslint --version && tslint --project tsconfig.json --type-check --exclude \"dist/\" \"{bin,examples,src,tests}/**/*.ts\" && npm run clean && tsc --noEmit","rollup":"rollup -c","test":"tap \"src/**/*.spec.ts\" \"test/**/*.spec.ts\"","test:npm":"npm run dist && export TMPDIR=/tmp/chinese-whispers-npm.$$ && mkdir $TMPDIR && npm pack && mv chinese-whispers-*.*.*.tgz $TMPDIR && cp tests/fixtures/smoke-testing.js $TMPDIR && cd $TMPDIR && npm init -y && npm install chinese-whispers-*.*.*.tgz && node smoke-testing.js","test:unit":"tap -R tap test/unit/**/*.spec.ts"},"repository":{"type":"git","url":"git+https://github.com/zixia/chinese-whispers.git"},"keywords":["chinese","whispers","algorithm","cluster","knn"],"author":{"name":"Huan LI","email":"zixia@zixia.net"},"license":"Apache-2.0","bugs":{"url":"https://github.com/zixia/chinese-whispers/issues"},"homepage":"https://github.com/zixia/chinese-whispers#readme","dependencies":{"jsnetworkx":"^0.3.4","knuth-shuffle":"^1.0.1","numjs":"^0.14.2"},"devDependencies":{"@types/node":"^8.0.25","@types/numjs":"^0.14.2","rollup":"^0.49.2","shx":"^0.2.2","tap":"^10.7.2","ts-node":"^3.3.0","tslint":"^5.7.0","tslint-jsdoc-rules":"^0.1.2","typescript":"^2.4.2"},"files":["package.json","README.md","CHANGELOG.md","LICENSE","bundles/","src/","dist/"],"gitHead":"223e2beeb6aeeda2e6591f94780386bee6cf665c","_id":"chinese-whispers@0.0.13","_shasum":"30ee1ea7e5986052b44e96036b9933d22fcdc51e","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.11.2","_npmUser":{"name":"zixia","email":"zixia@zixia.net"},"dist":{"shasum":"30ee1ea7e5986052b44e96036b9933d22fcdc51e","tarball":"https://registry.npmjs.org/chinese-whispers/-/chinese-whispers-0.0.13.tgz","integrity":"sha512-D5AaqtdmcZgXY5vDYmaQrxDgySNDpMfqNxXeKAnpPJ9FNizEXkVn4yBrk5+BlJMLROGpG007J7m231kaGNWLgg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFWZ9t1s1dgwyJ338gQN4FFCafVsEoAYlno5eSblQ9sbAiBbotn+9h+aOGxmEVrQw1DQRg3lLPBS+VodzPFViIxazg=="}]},"maintainers":[{"name":"zixia","email":"zixia@zixia.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/chinese-whispers-0.0.13.tgz_1504636851871_0.709876368753612"},"directories":{}},"0.0.14":{"name":"chinese-whispers","version":"0.0.14","description":"Chinese Whispers Algorithm","main":"bundles/chinese-whispers.umd.js","types":"dist/index.d.ts","scripts":{"build":"tsc --module es6","clean":"shx rm -fr dist/*","dist":"npm run clean && npm run build && npm run rollup && npm run dist:es6to5","dist:es6to5":"tsc --out ./bundles/chinese-whispers.umd.js --target es5 --allowJs bundles/chinese-whispers.es6.umd.js --lib es6,dom","demo":"npm run example:demo","example:demo":"ts-node examples/demo","lint":"npm run lint:ts","lint:ts":"tslint --version && tslint --project tsconfig.json --type-check --exclude \"dist/\" \"{bin,examples,src,tests}/**/*.ts\" && npm run clean && tsc --noEmit","rollup":"rollup -c","test":"tap \"src/**/*.spec.ts\" \"test/**/*.spec.ts\"","test:npm":"npm run dist && export TMPDIR=/tmp/chinese-whispers-npm.$$ && mkdir $TMPDIR && npm pack && mv chinese-whispers-*.*.*.tgz $TMPDIR && cp tests/fixtures/smoke-testing.js $TMPDIR && cd $TMPDIR && npm init -y && npm install chinese-whispers-*.*.*.tgz && node smoke-testing.js","test:unit":"tap -R tap test/unit/**/*.spec.ts"},"repository":{"type":"git","url":"git+https://github.com/zixia/chinese-whispers.git"},"keywords":["chinese","whispers","algorithm","cluster","knn"],"author":{"name":"Huan LI","email":"zixia@zixia.net"},"license":"Apache-2.0","bugs":{"url":"https://github.com/zixia/chinese-whispers/issues"},"homepage":"https://github.com/zixia/chinese-whispers#readme","dependencies":{"jsnetworkx":"^0.3.4","knuth-shuffle":"^1.0.1","numjs":"^0.14.2"},"devDependencies":{"@types/node":"^8.0.25","@types/numjs":"^0.14.2","rollup":"^0.49.2","shx":"^0.2.2","tap":"^10.7.2","ts-node":"^3.3.0","tslint":"^5.7.0","tslint-jsdoc-rules":"^0.1.2","typescript":"^2.4.2"},"files":["package.json","README.md","CHANGELOG.md","LICENSE","bundles/","src/","dist/"],"gitHead":"3306bacb2368de9d618094544fda5d2aa3d47035","_id":"chinese-whispers@0.0.14","_shasum":"b9e75d4c8ab0582c26e0f9dc2c07180ef25434f9","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.11.2","_npmUser":{"name":"zixia","email":"zixia@zixia.net"},"dist":{"shasum":"b9e75d4c8ab0582c26e0f9dc2c07180ef25434f9","tarball":"https://registry.npmjs.org/chinese-whispers/-/chinese-whispers-0.0.14.tgz","integrity":"sha512-9Txz1T5UiP37eM7pKGhTR1CR9XQE0lhumNojeb7krYV1wfg68z5cIpBuhpFDfna6PyQi4tK+goAgV1ZEKnWFhQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDRc50ivNVloyXNzSiOtv5isf18vbVj6CtB8ujH/2BdNgIhAOCD+XuIqgi1FFZkP7cVFnOnRLpTCJEECvg1gU6DTL9t"}]},"maintainers":[{"name":"zixia","email":"zixia@zixia.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/chinese-whispers-0.0.14.tgz_1504637288495_0.8671716791577637"},"directories":{}},"0.0.15":{"name":"chinese-whispers","version":"0.0.15","description":"Chinese Whispers Algorithm","main":"bundles/chinese-whispers.umd.js","types":"dist/index.d.ts","scripts":{"build":"tsc --module es6","clean":"shx rm -fr dist/*","dist":"npm run clean && npm run build && npm run rollup && npm run dist:es6to5","dist:es6to5":"tsc --out ./bundles/chinese-whispers.umd.js --target es5 --allowJs bundles/chinese-whispers.es6.umd.js --lib es6,dom","demo":"npm run example:demo","example:demo":"ts-node examples/demo","lint":"npm run lint:ts","lint:ts":"tslint --version && tslint --project tsconfig.json --type-check --exclude \"dist/\" \"{bin,examples,src,tests}/**/*.ts\" && npm run clean && tsc --noEmit","rollup":"rollup -c","test":"tap \"src/**/*.spec.ts\" \"test/**/*.spec.ts\"","test:npm":"npm run dist && export TMPDIR=/tmp/chinese-whispers-npm.$$ && mkdir $TMPDIR && npm pack && mv chinese-whispers-*.*.*.tgz $TMPDIR && cp tests/fixtures/smoke-testing.js $TMPDIR && cd $TMPDIR && npm init -y && npm install chinese-whispers-*.*.*.tgz && node smoke-testing.js","test:unit":"tap -R tap test/unit/**/*.spec.ts"},"repository":{"type":"git","url":"git+https://github.com/zixia/chinese-whispers.git"},"keywords":["chinese","whispers","algorithm","cluster","knn"],"author":{"name":"Huan LI","email":"zixia@zixia.net"},"license":"Apache-2.0","bugs":{"url":"https://github.com/zixia/chinese-whispers/issues"},"homepage":"https://github.com/zixia/chinese-whispers#readme","dependencies":{"jsnetworkx":"^0.3.4","knuth-shuffle":"^1.0.1","numjs":"^0.14.2"},"devDependencies":{"@types/node":"^8.0.25","@types/numjs":"^0.14.2","rollup":"^0.49.2","shx":"^0.2.2","tap":"^10.7.2","ts-node":"^3.3.0","tslint":"^5.7.0","tslint-jsdoc-rules":"^0.1.2","typescript":"^2.4.2"},"files":["package.json","README.md","CHANGELOG.md","LICENSE","bundles/","src/","dist/"],"gitHead":"8596c123fa2863b1bca080619682d1c289f50044","_id":"chinese-whispers@0.0.15","_shasum":"34400c8d7b0d432fd412c9368c592490cb1cbba8","_from":".","_npmVersion":"4.2.0","_nodeVersion":"7.10.1","_npmUser":{"name":"zixia","email":"zixia@zixia.net"},"dist":{"shasum":"34400c8d7b0d432fd412c9368c592490cb1cbba8","tarball":"https://registry.npmjs.org/chinese-whispers/-/chinese-whispers-0.0.15.tgz","integrity":"sha512-ncCbihw0RRw6POHKJDtiVLJOY6ML0aeJoo6+xPKurPmTeStBW01V8i0Sv0Z8fPizcs+L9X2v6nvXx+EGq6SSCg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC4Iu2Pho8r2QFcuEsFDqWYWPnBvhKC35X6fCk7Q4BR1AiAsVMKcXjChIIth9kAQRfLSm3HY1hC1O4rRmbhoslGgOg=="}]},"maintainers":[{"name":"zixia","email":"zixia@zixia.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/chinese-whispers-0.0.15.tgz_1504638209558_0.587559760781005"},"directories":{}},"0.1.1":{"name":"chinese-whispers","version":"0.1.1","description":"Chinese Whispers Algorithm","main":"bundles/chinese-whispers.umd.js","types":"dist/index.d.ts","scripts":{"build":"tsc --module es6","clean":"shx rm -fr dist/*","dist":"npm run clean && npm run build && npm run rollup && npm run dist:es6to5","dist:es6to5":"tsc --out ./bundles/chinese-whispers.umd.js --target es5 --allowJs bundles/chinese-whispers.es6.umd.js --lib es6,dom","demo":"npm run example:demo","example:demo":"ts-node examples/demo","lint":"npm run lint:ts","lint:ts":"tslint --version && tslint --project tsconfig.json --type-check --exclude \"dist/\" \"{bin,examples,src,tests}/**/*.ts\" && npm run clean && tsc --noEmit","rollup":"rollup -c","test":"tap \"src/**/*.spec.ts\" \"test/**/*.spec.ts\"","test:npm":"npm run dist && export TMPDIR=/tmp/chinese-whispers-npm.$$ && mkdir $TMPDIR && npm pack && mv chinese-whispers-*.*.*.tgz $TMPDIR && cp tests/fixtures/smoke-testing.js $TMPDIR && cd $TMPDIR && npm init -y && npm install chinese-whispers-*.*.*.tgz && node smoke-testing.js","test:unit":"tap -R tap test/unit/**/*.spec.ts"},"repository":{"type":"git","url":"git+https://github.com/zixia/chinese-whispers.git"},"keywords":["chinese","whispers","algorithm","cluster","knn"],"author":{"name":"Huan LI","email":"zixia@zixia.net"},"license":"Apache-2.0","bugs":{"url":"https://github.com/zixia/chinese-whispers/issues"},"homepage":"https://github.com/zixia/chinese-whispers#readme","dependencies":{"jsnetworkx":"^0.3.4","knuth-shuffle":"^1.0.1","numjs":"^0.14.2"},"devDependencies":{"@types/node":"^8.0.25","@types/numjs":"^0.14.2","rollup":"^0.49.2","shx":"^0.2.2","tap":"^10.7.2","ts-node":"^3.3.0","tslint":"^5.7.0","tslint-jsdoc-rules":"^0.1.2","typescript":"^2.4.2"},"files":["package.json","README.md","CHANGELOG.md","LICENSE","bundles/","src/","dist/"],"gitHead":"48171516e9fa865e82703aeec44ca23bf734a5e3","_id":"chinese-whispers@0.1.1","_shasum":"8eeb32bed91ba64d4ee19e8ed6720b1e165260bd","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.11.2","_npmUser":{"name":"zixia","email":"zixia@zixia.net"},"dist":{"shasum":"8eeb32bed91ba64d4ee19e8ed6720b1e165260bd","tarball":"https://registry.npmjs.org/chinese-whispers/-/chinese-whispers-0.1.1.tgz","integrity":"sha512-7ESwL1qg43Mds0prlCZWGumnP++J8vdr9awqQnRMP/jJ1Qvw/0P0tr5tufVVvRIK9Mba7/DM2irDaN3cIK5pZQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD75DTos+9DaPdz66Ts4bxgYJFsVaLkuTGZC2WNd2l7fgIhAIm8A7mLpvdgIFnSJ4MRXxHZG2WapGtzAVNeiUf5I64l"}]},"maintainers":[{"name":"zixia","email":"zixia@zixia.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/chinese-whispers-0.1.1.tgz_1504638282681_0.4343088462483138"},"directories":{}},"0.1.2":{"name":"chinese-whispers","version":"0.1.2","description":"Chinese Whispers Algorithm","main":"bundles/chinese-whispers.umd.js","types":"dist/index.d.ts","scripts":{"build":"tsc --module es6","clean":"shx rm -fr dist/*","dist":"npm run clean && npm run build && npm run rollup && npm run dist:es6to5","dist:es6to5":"tsc --out ./bundles/chinese-whispers.umd.js --target es5 --allowJs bundles/chinese-whispers.es6.umd.js --lib es6,dom","demo":"npm run example:demo","example:demo":"ts-node examples/demo","lint":"npm run lint:ts","lint:ts":"tslint --version && tslint --project tsconfig.json --type-check --exclude \"dist/\" \"{bin,examples,src,tests}/**/*.ts\" && npm run clean && tsc --noEmit","rollup":"rollup -c","test":"tap \"src/**/*.spec.ts\" \"test/**/*.spec.ts\"","test:npm":"npm run dist && export TMPDIR=/tmp/chinese-whispers-npm.$$ && mkdir $TMPDIR && npm pack && mv chinese-whispers-*.*.*.tgz $TMPDIR && cp tests/fixtures/smoke-testing.js $TMPDIR && cd $TMPDIR && npm init -y && npm install chinese-whispers-*.*.*.tgz && node smoke-testing.js","test:unit":"tap -R tap test/unit/**/*.spec.ts"},"repository":{"type":"git","url":"git+https://github.com/zixia/chinese-whispers.git"},"keywords":["chinese","whispers","algorithm","cluster","knn"],"author":{"name":"Huan LI","email":"zixia@zixia.net"},"license":"Apache-2.0","bugs":{"url":"https://github.com/zixia/chinese-whispers/issues"},"homepage":"https://github.com/zixia/chinese-whispers#readme","dependencies":{"jsnetworkx":"^0.3.4","knuth-shuffle":"^1.0.1","numjs":"^0.14.2"},"devDependencies":{"@types/node":"^8.0.25","@types/numjs":"^0.14.2","rollup":"^0.49.2","shx":"^0.2.2","tap":"^10.7.2","ts-node":"^3.3.0","tslint":"^5.7.0","tslint-jsdoc-rules":"^0.1.2","typescript":"^2.4.2"},"files":["package.json","README.md","CHANGELOG.md","LICENSE","bundles/","src/","dist/"],"gitHead":"200dcf600530c4828b6533c510758067ace4215b","_id":"chinese-whispers@0.1.2","_shasum":"06de6cf2263dffa65a8c239d0ea1b0fdef781573","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.11.2","_npmUser":{"name":"zixia","email":"zixia@zixia.net"},"dist":{"shasum":"06de6cf2263dffa65a8c239d0ea1b0fdef781573","tarball":"https://registry.npmjs.org/chinese-whispers/-/chinese-whispers-0.1.2.tgz","integrity":"sha512-EEWak/y77bsMhWmMVJ9it7HbYYJqqea7l+j5cHeBy2fE4bjSEeE1uyywr48O4c5RpX1VaK12xAR4swufren9Jw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCSaLLhPrW84M3k86uw4mB/zZEZhV4eUQ6pBZxGtY45/wIhAKwP7Iu8X9TsGLKwrK9xv8Rj/Ab3ZifkXT5my0Uj0ZHX"}]},"maintainers":[{"name":"zixia","email":"zixia@zixia.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/chinese-whispers-0.1.2.tgz_1504638422929_0.8240434278268367"},"directories":{}},"0.1.3":{"name":"chinese-whispers","version":"0.1.3","description":"Chinese Whispers Algorithm","main":"bundles/chinese-whispers.umd.js","types":"dist/index.d.ts","scripts":{"build":"tsc --module es6","clean":"shx rm -fr dist/*","dist":"npm run clean && npm run build && npm run rollup && npm run dist:es6to5","dist:es6to5":"tsc --out ./bundles/chinese-whispers.umd.js --target es5 --allowJs bundles/chinese-whispers.es6.umd.js --lib es6,dom","demo":"npm run example:demo","example:demo":"ts-node examples/demo","lint":"npm run lint:ts","lint:ts":"tslint --version && tslint --project tsconfig.json --type-check --exclude \"dist/\" \"{bin,examples,src,tests}/**/*.ts\" && npm run clean && tsc --noEmit","rollup":"rollup -c","test":"tap \"src/**/*.spec.ts\" \"test/**/*.spec.ts\"","test:npm":"npm run dist && export TMPDIR=/tmp/chinese-whispers-npm.$$ && mkdir $TMPDIR && npm pack && mv chinese-whispers-*.*.*.tgz $TMPDIR && cp tests/fixtures/smoke-testing.js $TMPDIR && cd $TMPDIR && npm init -y && npm install chinese-whispers-*.*.*.tgz && node smoke-testing.js","test:unit":"tap -R tap test/unit/**/*.spec.ts"},"repository":{"type":"git","url":"git+https://github.com/zixia/chinese-whispers.git"},"keywords":["chinese","whispers","algorithm","cluster","knn"],"author":{"name":"Huan LI","email":"zixia@zixia.net"},"license":"Apache-2.0","bugs":{"url":"https://github.com/zixia/chinese-whispers/issues"},"homepage":"https://github.com/zixia/chinese-whispers#readme","dependencies":{"jsnetworkx":"^0.3.4","knuth-shuffle":"^1.0.1","numjs":"^0.14.2"},"devDependencies":{"@types/node":"^8.0.25","@types/numjs":"^0.14.2","rollup":"^0.49.2","shx":"^0.2.2","tap":"^10.7.2","ts-node":"^3.3.0","tslint":"^5.7.0","tslint-jsdoc-rules":"^0.1.2","typescript":"^2.4.2"},"files":["package.json","README.md","CHANGELOG.md","LICENSE","bundles/","src/","dist/"],"gitHead":"3b87578419743fa2a32e4a24a3384ec556be93b8","_id":"chinese-whispers@0.1.3","_shasum":"5a636c89eff896a2d77caf0f8a5e1486198fd534","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.11.3","_npmUser":{"name":"zixia","email":"zixia@zixia.net"},"dist":{"shasum":"5a636c89eff896a2d77caf0f8a5e1486198fd534","tarball":"https://registry.npmjs.org/chinese-whispers/-/chinese-whispers-0.1.3.tgz","integrity":"sha512-odvmONYJnzhzBraqszl4ba90H7kvlwIkuK3Nut6aQEt62P1gCYo/KgwVueivPGGQ5yQlMGwRa9CSQxszhw4uOQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEjeaIzm5Om6KgJ07xk9OzShexfSzHwx0L5WGx3l3wXKAiB2dWZIDt65WPVh3+5ZkCF7f3UVRQDSRFDYnn0CpfnPqg=="}]},"maintainers":[{"name":"zixia","email":"zixia@zixia.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/chinese-whispers-0.1.3.tgz_1504663225237_0.6425523695070297"},"directories":{}},"0.1.4":{"name":"chinese-whispers","version":"0.1.4","description":"Chinese Whispers Algorithm","main":"bundles/chinese-whispers.umd.js","types":"dist/index.d.ts","scripts":{"build":"tsc --module es6","clean":"shx rm -fr dist/*","dist":"npm run clean && npm run build && npm run rollup && npm run dist:es6to5","dist:es6to5":"tsc --out ./bundles/chinese-whispers.umd.js --target es5 --allowJs bundles/chinese-whispers.es6.umd.js --lib es6,dom","demo":"npm run example:demo","example:demo":"ts-node examples/demo","lint":"npm run lint:ts","lint:ts":"tslint --version && tslint --project tsconfig.json --type-check --exclude \"dist/\" \"{bin,examples,src,tests}/**/*.ts\" && npm run clean && tsc --noEmit","rollup":"rollup -c","test":"tap \"src/**/*.spec.ts\" \"test/**/*.spec.ts\"","test:npm":"npm run dist && export TMPDIR=/tmp/chinese-whispers-npm.$$ && mkdir $TMPDIR && npm pack && mv chinese-whispers-*.*.*.tgz $TMPDIR && cp tests/fixtures/smoke-testing.js $TMPDIR && cd $TMPDIR && npm init -y && npm install chinese-whispers-*.*.*.tgz && node smoke-testing.js","test:unit":"tap -R tap test/unit/**/*.spec.ts"},"repository":{"type":"git","url":"git+https://github.com/zixia/chinese-whispers.git"},"keywords":["chinese","whispers","algorithm","cluster","knn"],"author":{"name":"Huan LI","email":"zixia@zixia.net"},"license":"Apache-2.0","bugs":{"url":"https://github.com/zixia/chinese-whispers/issues"},"homepage":"https://github.com/zixia/chinese-whispers#readme","dependencies":{"jsnetworkx":"^0.3.4","knuth-shuffle":"^1.0.1","numjs":"^0.14.2"},"devDependencies":{"@types/node":"^8.0.25","@types/numjs":"^0.14.2","rollup":"^0.49.2","shx":"^0.2.2","tap":"^10.7.2","ts-node":"^3.3.0","tslint":"^5.7.0","tslint-jsdoc-rules":"^0.1.2","typescript":"^2.4.2"},"files":["package.json","README.md","CHANGELOG.md","LICENSE","bundles/","src/","dist/"],"gitHead":"4469b93d49ff50f91a8f9e13e1e1ecb95cb89e5b","_id":"chinese-whispers@0.1.4","_shasum":"2ccd8029121e3f540b699c16f0f1a009c5e5ef4d","_from":".","_npmVersion":"4.2.0","_nodeVersion":"7.10.1","_npmUser":{"name":"zixia","email":"zixia@zixia.net"},"dist":{"shasum":"2ccd8029121e3f540b699c16f0f1a009c5e5ef4d","tarball":"https://registry.npmjs.org/chinese-whispers/-/chinese-whispers-0.1.4.tgz","integrity":"sha512-9aeXSy7WuN6HVErfcWpOBVbIrNXurYqcFgGykafRQE1SYYaiPkSUxwacIOD37FBy2yFyvIkHqdl+FcoI0DvwEQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHNVDCLL9HjpXABI20QC2Ksm1jHSU/QGPLl2kpGWDJ0gAiA6Ad8EhKY2JbVe18Kh/Yz7z4OQL87/sw+/lcMtwMa+Wg=="}]},"maintainers":[{"name":"zixia","email":"zixia@zixia.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/chinese-whispers-0.1.4.tgz_1504706003952_0.659684443846345"},"directories":{}},"0.1.5":{"name":"chinese-whispers","version":"0.1.5","description":"Chinese Whispers Algorithm","main":"bundles/chinese-whispers.umd.js","types":"dist/index.d.ts","scripts":{"build":"tsc --module es6","clean":"shx rm -fr dist/*","dist":"npm run clean && npm run build && npm run rollup && npm run dist:es6to5","dist:es6to5":"tsc --out ./bundles/chinese-whispers.umd.js --target es5 --allowJs bundles/chinese-whispers.es6.umd.js --lib es6,dom","demo":"npm run example:demo","example:demo":"ts-node examples/demo","lint":"npm run lint:ts","lint:ts":"tslint --version && tslint --project tsconfig.json --type-check --exclude \"dist/\" \"{bin,examples,src,tests}/**/*.ts\" && npm run clean && tsc --noEmit","rollup":"rollup -c","test":"tap \"src/**/*.spec.ts\" \"test/**/*.spec.ts\"","test:npm":"npm run dist && export TMPDIR=/tmp/chinese-whispers-npm.$$ && mkdir $TMPDIR && npm pack && mv chinese-whispers-*.*.*.tgz $TMPDIR && cp tests/fixtures/smoke-testing.js $TMPDIR && cd $TMPDIR && npm init -y && npm install chinese-whispers-*.*.*.tgz && node smoke-testing.js","test:unit":"tap -R tap test/unit/**/*.spec.ts"},"repository":{"type":"git","url":"git+https://github.com/zixia/chinese-whispers.git"},"keywords":["chinese","whispers","algorithm","cluster","knn"],"author":{"name":"Huan LI","email":"zixia@zixia.net"},"license":"Apache-2.0","bugs":{"url":"https://github.com/zixia/chinese-whispers/issues"},"homepage":"https://github.com/zixia/chinese-whispers#readme","dependencies":{"jsnetworkx":"^0.3.4","knuth-shuffle":"^1.0.1","numjs":"^0.14.2"},"devDependencies":{"@types/node":"^8.0.25","@types/numjs":"^0.14.2","rollup":"^0.49.2","shx":"^0.2.2","tap":"^10.7.2","ts-node":"^3.3.0","tslint":"^5.7.0","tslint-jsdoc-rules":"^0.1.2","typescript":"^2.4.2"},"files":["package.json","README.md","CHANGELOG.md","LICENSE","bundles/","src/","dist/"],"gitHead":"aadd5da082d7d1406dd2bac49d9560401fb6ac1e","_id":"chinese-whispers@0.1.5","_shasum":"ec81875241f83faaca21b91f513f0055beeb9892","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.11.3","_npmUser":{"name":"zixia","email":"zixia@zixia.net"},"dist":{"shasum":"ec81875241f83faaca21b91f513f0055beeb9892","tarball":"https://registry.npmjs.org/chinese-whispers/-/chinese-whispers-0.1.5.tgz","integrity":"sha512-7EllN8+QvM/2LPs80UVG+CrO4F66y/H3Tv9UZpM8Lkv5Od3Tla1w9ypGlZnSknzZWI6x8g4dNp6hwIxoyUswLA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDny21XkonOYtB4YmZhwWh7tbiilGroHuyEm89bmEe9lgIhAJY6PYR7uJHv9RlGkLHXgWXQCnYGAwRn/yXsFgq+TkGn"}]},"maintainers":[{"name":"zixia","email":"zixia@zixia.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/chinese-whispers-0.1.5.tgz_1504714136512_0.9873849507421255"},"directories":{}},"0.2.5":{"name":"chinese-whispers","version":"0.2.5","description":"Chinese Whispers Algorithm","main":"bundles/chinese-whispers.umd.js","types":"dist/index.d.ts","scripts":{"build":"tsc --module es6","clean":"shx rm -fr dist/*","dist":"npm run clean && npm run build && npm run rollup && npm run dist:es6to5","dist:es6to5":"tsc --out ./bundles/chinese-whispers.umd.js --target es5 --allowJs bundles/chinese-whispers.es6.umd.js --lib es6,dom","demo":"npm run example:demo","example:demo":"ts-node examples/demo","lint":"npm run lint:ts","lint:ts":"tslint --project tsconfig.json && npm run clean && tsc --noEmit","pack":"npm pack","rollup":"rollup -c","test":"tap \"src/**/*.spec.ts\" \"test/**/*.spec.ts\"","test:pack":"bash -x scripts/npm-pack-testing.sh","test:unit":"tap -R tap test/unit/**/*.spec.ts"},"repository":{"type":"git","url":"git+https://github.com/zixia/chinese-whispers.git"},"keywords":["chinese","whispers","algorithm","cluster","knn"],"author":{"name":"Huan LI","email":"zixia@zixia.net"},"license":"Apache-2.0","bugs":{"url":"https://github.com/zixia/chinese-whispers/issues"},"homepage":"https://github.com/zixia/chinese-whispers#readme","dependencies":{"jsnetworkx":"^0.3.4","knuth-shuffle":"^1.0.1","numjs":"^0.14.2"},"devDependencies":{"@types/node":"^8.0.25","@types/numjs":"^0.14.2","@types/semver":"^5.5.0","git-scripts":"^0.2.1","rollup":"^0.49.2","semver":"^5.5.0","shx":"^0.2.2","tap":"^10.7.2","ts-node":"^7.0.0","tslint":"^5.7.0","tslint-config-standard":"^7.1.0","tslint-jsdoc-rules":"^0.1.2","typescript":"^3.1.0-dev.20180802"},"git":{"scripts":{"pre-push":"./scripts/pre-push.sh"}},"files":["package.json","README.md","CHANGELOG.md","LICENSE","bundles/","src/","dist/"],"gitHead":"e294e3f1fc318629c5053e3a1024bc5568134f20","_id":"chinese-whispers@0.2.5","_npmVersion":"6.2.0","_nodeVersion":"10.8.0","_npmUser":{"name":"zixia","email":"zixia@zixia.net"},"dist":{"integrity":"sha512-1+wtr98q10McK3v1pYB1HqTv8p4kwMM1w4msS1jx5yn/ibhxVbkzVl4Su5TqauvBqdCYcvPrP/u/6ao1qTRTEw==","shasum":"51b1d45c008a5984674f2ed5b181807eec591b05","tarball":"https://registry.npmjs.org/chinese-whispers/-/chinese-whispers-0.2.5.tgz","fileCount":20,"unpackedSize":83121,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbZJcfCRA9TVsSAnZWagAARFoP/2R9iRn6kQiOKnw3H+OI\nIGDVex13G6aXnFwrnul5iaeSsI0u5pVM+bIMgD8KLzSbbg0iQyZ94qsDfCm2\nE8jjdbXrHTZeSIVPkRWMIoD6tQDklstept1BKBNyK+QVpEgNnfP9rBDn/Dea\nJAeZf7I/ugTOL2c6GoXKcWJ+JqNRnWRfFD1urZ6DA/LY4DOvQB/to0ZtPh2a\ndrbzmCNimfwv+vtivtcuOn6mXBxM7mILuJlIIleC9HOB6orFUdtowH7Hwpb/\nt2kOdpGyFxlVEoXJpEO0UduPwEzAXnWPmWGbpO6GW/jCtBJtCXFxXzhI6Bm+\nzewrWZ8rkcfWw4J8M5WJqFifccaRrKY8R9zr1unznNu+kSgQWd53yrD1fxuK\nAtyy3KLT2p6gA72El2H1I28KhzA/ylwdio9GiRjLs4jh/613U9FQC/lfMtf9\n/WPq+Yq3WbKMBu0tx+TvFnMy496nYLVqCdWQUdhp62TveehuNOOH0MTOZMaB\nst9We/gwHpYE5Sp/WdUw7qfsaX2si9TblIZ6uzyiuURJ8Jdw2my2/sCl7QWo\neCHKMzpnpc5wK/25I3RsA2hsXCQ4LF8CeBxNrQSF7Nrj8tsfGw3drOU4x9vS\naFpGG4Tz7cLeMhyHt4ljAEkOI1Os2sicAsGI91ZxNQtAjyfgESXTzHI2PjEG\nMIWt\r\n=iWqz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDMKvu5rfJk0zi+sAKtvBCtziCmwMH6JP0GYQpxFjbCZwIgbPFI26ABEoj95AB/wx19sX6TBWxBB9bhV/oJMwZMnWs="}]},"maintainers":[{"name":"zixia","email":"zixia@zixia.net"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/chinese-whispers_0.2.5_1533318943026_0.9995803476165068"},"_hasShrinkwrap":false},"0.2.6":{"name":"chinese-whispers","version":"0.2.6","description":"Chinese Whispers Algorithm","main":"bundles/chinese-whispers.umd.js","types":"dist/index.d.ts","scripts":{"build":"tsc --module es6","clean":"shx rm -fr dist/*","dist":"npm run clean && npm run build && npm run rollup && npm run dist:es6to5","dist:es6to5":"tsc --out ./bundles/chinese-whispers.umd.js --target es5 --allowJs bundles/chinese-whispers.es6.umd.js --lib es6,dom","demo":"npm run example:demo","example:demo":"ts-node examples/demo","lint":"npm run lint:ts","lint:ts":"tslint --project tsconfig.json && npm run clean && tsc --noEmit","pack":"npm pack","rollup":"rollup -c","test":"tap \"src/**/*.spec.ts\" \"test/**/*.spec.ts\"","test:pack":"bash -x scripts/npm-pack-testing.sh","test:unit":"tap -R tap test/unit/**/*.spec.ts"},"repository":{"type":"git","url":"git+https://github.com/huan/chinese-whispers.git"},"keywords":["chinese","whispers","algorithm","cluster","knn"],"author":{"name":"Huan LI","email":"zixia@zixia.net"},"license":"Apache-2.0","bugs":{"url":"https://github.com/huan/chinese-whispers/issues"},"homepage":"https://github.com/huan/chinese-whispers#readme","dependencies":{"jsnetworkx":"^0.3.4","knuth-shuffle":"^1.0.1","numjs":"^0.16.0"},"devDependencies":{"@types/node":"^10.7.0","@types/numjs":"^0.14.2","@types/semver":"^5.5.0","git-scripts":"^0.2.1","rollup":"^0.65.2","semver":"^5.5.0","shx":"^0.3.2","tap":"^12.0.1","ts-node":"^7.0.0","tslint":"^5.7.0","tslint-config-standard":"^8.0.1","tslint-jsdoc-rules":"^0.1.2","typescript":"^3.1.0-dev.20180802"},"git":{"scripts":{"pre-push":"./scripts/pre-push.sh"}},"gitHead":"930bd1ef81190240e28fa9d71f49f752a544afc6","_id":"chinese-whispers@0.2.6","_npmVersion":"6.4.1","_nodeVersion":"10.13.0","_npmUser":{"name":"zixia","email":"zixia@zixia.net"},"dist":{"integrity":"sha512-NBgNDEizIH29ikxkVTOcE3iQezmmmP8mkSZZlOT/haip2fFIjEO9nkrl8oh4T9FFPhBFurl2WEXjHHfB7Y+ZSA==","shasum":"e4ee5541bb32ce0360319183db68019274dd6b47","tarball":"https://registry.npmjs.org/chinese-whispers/-/chinese-whispers-0.2.6.tgz","fileCount":20,"unpackedSize":84567,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb/W5eCRA9TVsSAnZWagAAUOcQAJsgDsqt3SztI81YPWcM\n2EtYfgBTE0hVeEfPI6V7BLBMqQ1yAaTQfe91CR2gyTzqCYfCl6bwXoE+YTmv\nDqhJlUgTcsZE/0vhdi91M4MHAjfk0O1HmqEYfPlUtl4AiP4NKBnJYyOpld3P\n4vGdNhlQp8HUg2gMW1D/YfkjS1NHVM5bAxZ2+qJINu5613lXih8JV8c7QqW9\n5ItAksvHX9z0iahebdrIZZueIm7ZiyDqjxC56GsW+keLeBFWZJNefCpdFHgr\nTPBqtNEGNe41kdd64UjI01up8WHLdZzQs89aO2oUfClb3B6QtFO9ot0y4WCT\nbqtBAD+5eNkEGZYU/qXlIqhDJ4OZ9CHDOtayqxvKgVyzIEWPyLnp3OeXHYkZ\nQKdXz7gXu0p2IjnO3ZevzRH+ERCNUAuhKcaT0gx3XQ+F9MYJeSyWnEwbMIax\nZvHH/Jml77FnhfkA9HtdxXwU5r+2SP6P8WRLYJq73tg8RLE4jgIoQO0FIlK6\n1h4PSkKwkd+AnzW8Kdigfa4BPP/0rfNiHm46hFD7L74JZE09BAtUsT+VRau2\nGwcclIPeJ1dKhTqfbJyVAgLthW9bE4eBkGpII4Bpc7Zrmgw9piaU4w0JPYQY\n4/CvsKTeVHxR5WALhvjH88a8+JJEtfBDWPaPwqwNk6Zy815LtZ5wDbdtxx69\nMB+U\r\n=3j4t\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHemxXxn0/ZD7cFFfqXehe/3KspX6p5iN5daJpv6AhZyAiEAzK0TaSSTaDsRYA/W56UlKSsgO4jXyEFC2v2nZRT+unU="}]},"maintainers":[{"name":"zixia","email":"zixia@zixia.net"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/chinese-whispers_0.2.6_1543335518069_0.9546682201213126"},"_hasShrinkwrap":false},"0.2.7":{"name":"chinese-whispers","version":"0.2.7","description":"Chinese Whispers Algorithm","main":"bundles/chinese-whispers.umd.js","types":"dist/index.d.ts","scripts":{"build":"tsc --module es6","clean":"shx rm -fr dist/*","dist":"npm run clean && npm run build && npm run rollup && npm run dist:es6to5","dist:es6to5":"tsc --out ./bundles/chinese-whispers.umd.js --target es5 --allowJs bundles/chinese-whispers.es6.umd.js --lib es6,dom","demo":"npm run example:demo","example:demo":"ts-node examples/demo","lint":"npm run lint:ts","lint:ts":"tslint --project tsconfig.json && npm run clean && tsc --noEmit","pack":"npm pack","rollup":"rollup -c","test":"tap \"src/**/*.spec.ts\" \"test/**/*.spec.ts\"","test:pack":"bash -x scripts/npm-pack-testing.sh","test:unit":"tap -R tap test/unit/**/*.spec.ts"},"repository":{"type":"git","url":"git+https://github.com/huan/chinese-whispers.git"},"keywords":["chinese","whispers","algorithm","cluster","knn"],"author":{"name":"Huan LI","email":"zixia@zixia.net"},"license":"Apache-2.0","bugs":{"url":"https://github.com/huan/chinese-whispers/issues"},"homepage":"https://github.com/huan/chinese-whispers#readme","dependencies":{"jsnetworkx":"^0.3.4","knuth-shuffle":"^1.0.1","numjs":"^0.16.0"},"devDependencies":{"@types/node":"^10.7.0","@types/numjs":"^0.14.2","@types/semver":"^5.5.0","git-scripts":"^0.2.1","rollup":"^0.65.2","semver":"^5.5.0","shx":"^0.3.2","tap":"^12.0.1","ts-node":"^7.0.0","tslint":"^5.7.0","tslint-config-standard":"^8.0.1","tslint-jsdoc-rules":"^0.1.2","typescript":"^3.1.0-dev.20180802"},"git":{"scripts":{"pre-push":"./scripts/pre-push.sh"}},"gitHead":"2e6dce4cc45b0ca62a1c69a2ad3e42270b5cd37d","_id":"chinese-whispers@0.2.7","_npmVersion":"6.4.1","_nodeVersion":"10.13.0","_npmUser":{"name":"zixia","email":"zixia@zixia.net"},"dist":{"integrity":"sha512-m/47OOqeL1rn49M2smqGRSE3XepxsJAJGWqm1D7tTEqBcAAk8F1kY6zaHTjkZXmVp2hBBNFP4sCDijfeSsHfdw==","shasum":"a46896f7cd1d16d313881f124aef5ce445fb5fd4","tarball":"https://registry.npmjs.org/chinese-whispers/-/chinese-whispers-0.2.7.tgz","fileCount":20,"unpackedSize":84566,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb/W9GCRA9TVsSAnZWagAAxN4P/00XzQstrtSKLqPSEObx\nGJkycXGa+O7t0Zt2363WHl5cBFkR6Qx8hTy53LDvApf62UtS0dHce5yuOzXK\nOBlG76A7eMtFGnaGBC48noPnSYELlY3q2sjmcSqyjlLr1y908IWfFrQmSdAF\ndxwFCA+9OcL9OGpE8lmr6AR51ETItbeOINI7LvXLM67qtvaPUImyMHNw7OHC\nwsqEiUBVOgDhdXCgh7ACvfFjmZjSugtj9kH2vXWgcI+xnhei6L7DAAZ75sYx\nj6ekHJhr4L7gxbX4J6IHCODRfJP0RcLOibLt81B8MO8K/FWjINWPZwZ0AZmH\nIUkpgk2/oDqlQ7Q/6ACzq/mDRkPlBWybMlqy29GqspKSAR9NfEkmwrt0FEDN\n0T8J6kcxE/6ySDTKeHIPHDgtCLvMBu3rhbTfiVv4y5MsLqFozsyYKYOqw9Bi\navc7rrli4H2YX3JOm7ALrrNh7Tdajgd7smK9aBSojIOg2ZDBrNjVHcNUbo6C\naFsz3x4cLIjz5gPTL71K61DamVVjeJQ/80oMusiDjedxnyCI6bo0GxYlolTO\nRTuPwfkySk9gO3h+0UBnh9RFA51UyW013Zor2wZU/+jv7WAABJDyCA24/h0C\nno94VoTQwDlV6D0CfBWNIzYEsfbXcOAzvosoNoStDzMMV6x71ZFfjc1ogsWk\nTuJv\r\n=c2oc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFokauYGVWOvIGui29DLIRldZ9zng8DoblHIWErmhXQdAiBSUELz3oHrkTZ3/oOR0TScWKVxmUI54Pz5372Wvncdqg=="}]},"maintainers":[{"name":"zixia","email":"zixia@zixia.net"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/chinese-whispers_0.2.7_1543335749782_0.9902672135238646"},"_hasShrinkwrap":false},"0.2.8":{"name":"chinese-whispers","version":"0.2.8","description":"Chinese Whispers Algorithm","main":"bundles/chinese-whispers.umd.js","types":"dist/index.d.ts","scripts":{"build":"tsc --module es6","clean":"shx rm -fr dist/*","dist":"npm run clean && npm run build && npm run rollup && npm run dist:es6to5","dist:es6to5":"tsc --out ./bundles/chinese-whispers.umd.js --target es5 --allowJs bundles/chinese-whispers.es6.umd.js --lib es6,dom","demo":"npm run example:demo","example:demo":"ts-node examples/demo","lint":"npm run lint:ts","lint:ts":"tslint --project tsconfig.json && npm run clean && tsc --noEmit","pack":"npm pack","rollup":"rollup -c","test":"tap \"src/**/*.spec.ts\" \"test/**/*.spec.ts\"","test:pack":"bash -x scripts/npm-pack-testing.sh","test:unit":"tap -R tap test/unit/**/*.spec.ts"},"repository":{"type":"git","url":"git+https://github.com/huan/chinese-whispers.git"},"keywords":["chinese","whispers","algorithm","cluster","knn"],"author":{"name":"Huan LI","email":"zixia@zixia.net"},"license":"Apache-2.0","bugs":{"url":"https://github.com/huan/chinese-whispers/issues"},"homepage":"https://github.com/huan/chinese-whispers#readme","dependencies":{"jsnetworkx":"^0.3.4","knuth-shuffle":"^1.0.1","numjs":"^0.16.0"},"devDependencies":{"@types/node":"^10.7.0","@types/numjs":"^0.14.2","@types/semver":"^5.5.0","git-scripts":"^0.2.1","rollup":"^0.65.2","semver":"^5.5.0","shx":"^0.3.2","tap":"^12.0.1","ts-node":"^7.0.0","tslint":"^5.7.0","tslint-config-standard":"^8.0.1","tslint-jsdoc-rules":"^0.1.2","typescript":"^3.1.0-dev.20180802"},"git":{"scripts":{"pre-push":"./scripts/pre-push.sh"}},"gitHead":"dc5b8b7b9e6cb078e4cd91e9b5d0684f0b3acd28","_id":"chinese-whispers@0.2.8","_npmVersion":"6.4.1","_nodeVersion":"10.13.0","_npmUser":{"name":"zixia","email":"zixia@zixia.net"},"dist":{"integrity":"sha512-UQNZ+rIhbHru5F7LMyRZeCVBc1hFh3O8O2awA/Fhjtzt4V7tdLDfQ8Ia/pvQbzxMHkwUl+rOFjQpaJSGBu0Y8Q==","shasum":"c10a573084a6d9cf8a202552bd6e7c2eaba3f8b6","tarball":"https://registry.npmjs.org/chinese-whispers/-/chinese-whispers-0.2.8.tgz","fileCount":20,"unpackedSize":84566,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb/W/xCRA9TVsSAnZWagAAJ2MP/j9V1etNMlDc8aXHV+rl\nLahlkaYAoizXOcRMZj9GPLg2E69sj058tIrVt8dYS39SmlfoGIdLhrKx/hdB\nI99nbatV0pT/LQJtSpLOBEjAbwbdJeIxOj64/R4jYek/jIe59zUSxGbrAw30\nrT4gxfiMrwJgA/NJWVvUvOecw3I60rWT+t1ppLPSlkDrp5zj/VPJ09rOUULn\nOPgZULbgpD2sHJAQeBn9CLtdLUyZ97plp00MmrbINDCDiZyuUHQmQNLiK5Bj\nr7ewGIoOSs1EFZ4cYFu9nldTClOgLBIQ/+Wpfiu5P4Duo4OlHn3iwAqbThrV\nZbOnUjqBAQ1HwXQPp70JmkLcv0aB7l6w7BH7P0DIm/vWMF/aGXge7rZqY1QI\n4OyiGplpwiHlsRj/aU6vFGuL+MnlSi5jDcbotcMzQDOdRmeTkjt8AZ2K3cSE\nZDHdqpfKaz2qwbwoXz55kxEc0Mjq+q7EROHDvWZZa4oMEu9XFW/cGvN0ptmA\nDXEzwLicjqK6ntElkYS+gADTagw6KcEyKtXeWRsD9aeIH+ME+hxCp1js9NrM\nPQCj4Q9IdcE5oh40S2AC3J0X+QgOG4CTTKZ7u1oV6Wr03rMT42E3C3iVBUar\nM+fx91LPIzIwKVeZ9YzEKcU5ih/dXYgLZL4OqhRHPJXKUazULRCPxE8E8t+4\nUKCM\r\n=32s/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDsUFrxOLLcDzjOHy6S2qccG+uwx5OTdqwC2xHnzktrswIhAI+9faPnSFhTX2RPZmRRoLVqXXdWQXE89oTWMVPx/16Z"}]},"maintainers":[{"name":"zixia","email":"zixia@zixia.net"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/chinese-whispers_0.2.8_1543335920447_0.8742525584323599"},"_hasShrinkwrap":false},"0.2.9":{"name":"chinese-whispers","version":"0.2.9","description":"Chinese Whispers Algorithm","main":"bundles/chinese-whispers.umd.js","types":"dist/index.d.ts","scripts":{"build":"tsc --module es6","clean":"shx rm -fr dist/*","dist":"npm run clean && npm run build && npm run rollup && npm run dist:es6to5","dist:es6to5":"tsc --out ./bundles/chinese-whispers.umd.js --target es5 --allowJs bundles/chinese-whispers.es6.umd.js --lib es6,dom","demo":"npm run example:demo","example:demo":"ts-node examples/demo","lint":"npm run lint:ts","lint:ts":"tslint --project tsconfig.json && npm run clean && tsc --noEmit","pack":"npm pack","rollup":"rollup -c","test":"tap \"src/**/*.spec.ts\" \"test/**/*.spec.ts\"","test:pack":"bash -x scripts/npm-pack-testing.sh","test:unit":"tap -R tap test/unit/**/*.spec.ts"},"repository":{"type":"git","url":"git+https://github.com/huan/chinese-whispers.git"},"keywords":["chinese","whispers","algorithm","cluster","knn"],"author":{"name":"Huan LI","email":"zixia@zixia.net"},"license":"Apache-2.0","bugs":{"url":"https://github.com/huan/chinese-whispers/issues"},"homepage":"https://github.com/huan/chinese-whispers#readme","dependencies":{"jsnetworkx":"^0.3.4","knuth-shuffle":"^1.0.1","numjs":"^0.16.0"},"devDependencies":{"@types/node":"^10.7.0","@types/numjs":"^0.14.2","@types/semver":"^5.5.0","git-scripts":"^0.2.1","rollup":"^0.65.2","semver":"^5.5.0","shx":"^0.3.2","tap":"^12.0.1","ts-node":"^7.0.0","tslint":"^5.7.0","tslint-config-standard":"^8.0.1","tslint-jsdoc-rules":"^0.1.2","typescript":"^3.1.0-dev.20180802"},"git":{"scripts":{"pre-push":"./scripts/pre-push.sh"}},"gitHead":"c532cec6c4b3433590b585cb334edff5c7681873","_id":"chinese-whispers@0.2.9","_npmVersion":"6.4.1","_nodeVersion":"10.13.0","_npmUser":{"name":"zixia","email":"zixia@zixia.net"},"dist":{"integrity":"sha512-iLA4liyXKwCJKiyDGzs8nExJlyU1XMc8EZOl1psGgSWYv7RVQvcHZVKG1C12PPaHknsU9glk5BP6/OsUBW3GTQ==","shasum":"b43116b5a3cea3dc0fbde01316da4ed34152b7c9","tarball":"https://registry.npmjs.org/chinese-whispers/-/chinese-whispers-0.2.9.tgz","fileCount":20,"unpackedSize":84564,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb/XBWCRA9TVsSAnZWagAATWQP/1Y6DXWVAOUYHzzzlFOC\nSpDh51JGQz3/BVTRJPX3/qK1v94HufFj2RjEmWWPcoK2vFAPiPWLe8t/TAw1\npXGZ+RxLnn7NR0sHrTkrCROKwZK6a2smYILEu0hkAIYkEQIE1TCms7tapCQi\nM9DTWb7BDyagGrAqM9gHD338HhBzynqD/Qr6fVNWMOgx6A44y3itHm1OT2tX\niOfFzIL0m6mztz2/thLHYLl0tX/9ofGkfZlDxc8QrwrYJtpsInH1FSPDCYI7\nPNVjOiM6VHydVM8xMMTP3hQtfvFOBkiGJRLOBKOgMZbULPXDIde/KNzg663y\nhHk8+xN/swJNs4tuyTXXRMFOpjJw7PfqOQt1iPJum0D1ivnZmd9DurPk4PId\n+vP4g5TCyYuW3i0LbjcQgdMeHtO03Bz2ZUyDw91yf8R0CyxYzMgLREdb/Ih8\nlgdrgakwvoUcmhrT0T3dj5qjn6ruYrh/JSwYURGHp5h+7xm3QhjS2ZTCCfQA\na81IX7wbcpSmsnp+3V/66EdpFL65pAXRVYzIt61nsdrj26SqKwthBY3+n2U+\nKYIEP4YqmQivjbyGOrHZO458j9jLd7MUC0i6S7nXjdZzatrQNlhpacx49TIZ\n1WQfS1fZz3ZT+tec70QF+rOVeocxWd/O04ZfmTgnUkq4+fOjY7zFPEKBSmwy\nuYGp\r\n=IEfB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCsHvmk52f7/ZawOCgDNI9g2QtPME1FRV90zCa0nJCZVAIgOIhOSIoqUhAbywpWMPlG2t9xZUPxmEUBdow0uP9/lm4="}]},"maintainers":[{"name":"zixia","email":"zixia@zixia.net"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/chinese-whispers_0.2.9_1543336021388_0.2115180736249065"},"_hasShrinkwrap":false},"0.2.10":{"name":"chinese-whispers","version":"0.2.10","description":"Chinese Whispers Algorithm","main":"bundles/chinese-whispers.umd.js","types":"dist/index.d.ts","scripts":{"build":"tsc --module es6","clean":"shx rm -fr dist/*","dist":"npm run clean && npm run build && npm run rollup && npm run dist:es6to5","dist:es6to5":"tsc --out ./bundles/chinese-whispers.umd.js --target es5 --allowJs bundles/chinese-whispers.es6.umd.js --lib es6,dom","demo":"npm run example:demo","example:demo":"ts-node examples/demo","lint":"npm run lint:ts","lint:ts":"tslint --project tsconfig.json && npm run clean && tsc --noEmit","pack":"npm pack","rollup":"rollup -c","test":"tap \"src/**/*.spec.ts\" \"test/**/*.spec.ts\"","test:pack":"bash -x scripts/npm-pack-testing.sh","test:unit":"tap -R tap test/unit/**/*.spec.ts"},"repository":{"type":"git","url":"git+https://github.com/huan/chinese-whispers.git"},"keywords":["chinese","whispers","algorithm","cluster","knn"],"author":{"name":"Huan LI","email":"zixia@zixia.net"},"license":"Apache-2.0","bugs":{"url":"https://github.com/huan/chinese-whispers/issues"},"homepage":"https://github.com/huan/chinese-whispers#readme","dependencies":{"jsnetworkx":"^0.3.4","knuth-shuffle":"^1.0.1","numjs":"^0.16.0"},"devDependencies":{"@types/node":"^10.7.0","@types/numjs":"^0.14.2","@types/semver":"^5.5.0","git-scripts":"^0.2.1","rollup":"^1.0.1","semver":"^5.5.0","shx":"^0.3.2","tap":"^12.0.1","ts-node":"^7.0.0","tslint":"^5.7.0","tslint-config-standard":"^8.0.1","tslint-jsdoc-rules":"^0.1.2","typescript":"^3.1.0-dev.20180802"},"git":{"scripts":{"pre-push":"./scripts/pre-push.sh"}},"gitHead":"a6171c5395e532de24f301e4738581afe2e6ac26","_id":"chinese-whispers@0.2.10","_npmVersion":"6.4.1","_nodeVersion":"10.15.0","_npmUser":{"name":"zixia","email":"zixia@zixia.net"},"dist":{"integrity":"sha512-xK7+DKZwh0gaWizFt7BIaaDGzwIlzeqe2O0V3Yn4CPPpth/qoNwcfCTcN8K8e52aRGP1QUa9g7t1YFmNqyFLQQ==","shasum":"da5e7fca68dc29e207234f5ea28be6bce11993a6","tarball":"https://registry.npmjs.org/chinese-whispers/-/chinese-whispers-0.2.10.tgz","fileCount":20,"unpackedSize":84610,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcLeuhCRA9TVsSAnZWagAARN0P/jHE9kDErn1DSI7qHATl\nTMZWpV0pxFtGQnEw5S9WlGAMoyOH0CfjF+06Q3NUlhenNhRa/U+oc9RVZA7w\n4XNLpbs33fCbDC5IQxumGZmG4mdJFkYJqjveTS7t/3Csmb7kiwrLhNCs2rJJ\ndPtIqyU2W3u7c/I/InDZKNIutSn9QmPoZHC/EThXoCy00XVwqRl8pIejelBA\nkWnEz1baa41f5/IfesO+IKUxMPVJYRbzDILUFhVuTSKhh7NK4EeEOczBU6mm\nvhK8KF+0iFBuT3XTp5OG3/WvfRbyCuGlSUaYquDC27aarVP/mxCexy2pRkPV\nCF8gCnEQFJ1A22bDH3epJSf27K4kcAVKrM0o2SxK1zZXCJMSjMSTbVevUKlV\nYQkPmYr/dRvdQ9XneuFC00mF/o9hfA8oMApdCU/Q88xRM2CRHjvVxk3teG7R\nh6MY2hj+HUN8l0P96EvqBbKTOIEM05eKw2r8/Y69FUpDLKNluqUgbTmnZz+v\n8D4j7WyrqBnQ4uiQqKAs7TpYB5FJN8F1odYY2A8JYYfDpkPK44GBK+3Vo8C4\nkReRi3j88KsvmcCCRW2I1XWJ49n7MV3hFfhNuWk983AG3Unvzdtl3tZ3hdMP\nLH6IjlgrNW/UJHss3Clt0OcNRhErDTSDepoJiE4JTpHpO8xVOEOPKzh9zMiR\nl2IE\r\n=dJho\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHzG+KbY6yRDF1JAEWYg0c3pRVSMwPVjzxcXt7zIpJwHAiEAxzBC+7KUQ4txbbbHfvaKbsq+7nsaPmycRS0LwH8cUvM="}]},"maintainers":[{"name":"zixia","email":"zixia@zixia.net"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/chinese-whispers_0.2.10_1546513312344_0.23448002512438904"},"_hasShrinkwrap":false},"0.2.11":{"name":"chinese-whispers","version":"0.2.11","description":"Chinese Whispers Algorithm","main":"bundles/chinese-whispers.umd.js","types":"dist/index.d.ts","scripts":{"build":"tsc --module es6","clean":"shx rm -fr dist/*","dist":"npm run clean && npm run build && npm run rollup && npm run dist:es6to5","dist:es6to5":"tsc --out ./bundles/chinese-whispers.umd.js --target es5 --allowJs bundles/chinese-whispers.es6.umd.js --lib es6,dom","demo":"npm run example:demo","example:demo":"ts-node examples/demo","lint":"npm run lint:ts","lint:ts":"tslint --project tsconfig.json && npm run clean && tsc --noEmit","pack":"npm pack","rollup":"rollup -c","test":"tap \"src/**/*.spec.ts\" \"test/**/*.spec.ts\"","test:pack":"bash -x scripts/npm-pack-testing.sh","test:unit":"tap -R tap test/unit/**/*.spec.ts"},"repository":{"type":"git","url":"git+https://github.com/huan/chinese-whispers.git"},"keywords":["chinese","whispers","algorithm","cluster","knn"],"author":{"name":"Huan LI","email":"zixia@zixia.net"},"license":"Apache-2.0","bugs":{"url":"https://github.com/huan/chinese-whispers/issues"},"homepage":"https://github.com/huan/chinese-whispers#readme","dependencies":{"jsnetworkx":"^0.3.4","knuth-shuffle":"^1.0.1","numjs":"^0.16.0"},"devDependencies":{"@types/node":"^10.7.0","@types/numjs":"^0.14.2","@types/semver":"^5.5.0","git-scripts":"^0.2.1","rollup":"^1.0.1","semver":"^5.5.0","shx":"^0.3.2","tap":"^12.0.1","ts-node":"^7.0.0","tslint":"^5.7.0","tslint-config-standard":"^8.0.1","tslint-jsdoc-rules":"^0.1.2","typescript":"^3.1.0-dev.20180802"},"git":{"scripts":{"pre-push":"./scripts/pre-push.sh"}},"gitHead":"5272f1299c1074b17b5551be46d8c460c07d29aa","_id":"chinese-whispers@0.2.11","_npmVersion":"6.4.1","_nodeVersion":"10.15.0","_npmUser":{"name":"zixia","email":"zixia@zixia.net"},"dist":{"integrity":"sha512-dorl/ES+alIta83Ms6rHUiT4hgzU+wFtX3Dxh4dg9cpBPhItUy/NfCRvnCSoH+c6UHPZWYtTaiyYde8z0+zd6A==","shasum":"c13e751829cc73fdc455c898fb73cc40a1e2f6c8","tarball":"https://registry.npmjs.org/chinese-whispers/-/chinese-whispers-0.2.11.tgz","fileCount":20,"unpackedSize":84615,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcLexCCRA9TVsSAnZWagAAgRgP/jIhbuhXeCDL86vt61yU\nofoCxL6wTaZLSlflxrdyVE7bOyphA+4pay23xbE9c8YU5GReAPacfhfbyigS\nA46Zy0WF7zJDkh0TL8T79OR40vlXD/OFbDtJQIdNJanRCbOZ7byHNIWVJGnV\nd7SPxM1B6iVXlmkwpBu+AQDadspSwVm4HB3h6o9FkHmiVRGP55M1Gvu9Y7Rz\nKZS2TPgVh6YvoQd24dcE4pbOaW+w8wMT3nBFzBLpkujwN/63aMyiz2jDuGEF\n68clY2826FjHy8erzQM4wt7NIMWQ4Z0aKDKc5a42kAq5lIO7//lNMAEP/fwL\nmwhKRXPi2KwB54aeMnzBN0XU6sPT9ZotGofAl18/wh4LlFJdrXsGoSV8vu5F\nyFihnaGIj2De7sSyKDm8lJy4rWmD0YVUgIDxcizbBC5jFZpxhrxkAIuoEo8D\nXzzCA6tYXIUHUZ40ZoTKJDF+ZO3kzcv9aNgF6iFT96JO2ObwWaG+E56PUO4I\n7o6+DqIg2+cGffGQAKCSHqknAVox+jqYeg2Kz35ihaaSddnUXrKg9iFgzRfZ\nZBIOMVSAzt7PyepR/edIQ7/GAMHDeka3NitCgwp+iAEh27o4ljtGYL0tWd1G\noKDXx9jcg3ZwlXYtX/Z3TRefELpGWdEcaFGkzTbjNvWMHiewced9dBhU0786\nQ2P+\r\n=oe1s\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHFzqIyzvqjJGavx5Jr1B995rzxj7vajHlFIq9GioCTRAiBEgwNhPtWZaOQkN7X5rta0zqo+0An/jWUt0fTJZU2cvg=="}]},"maintainers":[{"name":"zixia","email":"zixia@zixia.net"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/chinese-whispers_0.2.11_1546513474007_0.8120566847709072"},"_hasShrinkwrap":false},"0.3.1":{"name":"chinese-whispers","version":"0.3.1","description":"Chinese Whispers Algorithm","main":"bundles/chinese-whispers.umd.js","types":"dist/index.d.ts","scripts":{"build":"tsc --module es6","clean":"shx rm -fr dist/*","dist":"npm run clean && npm run build && npm run rollup && npm run dist:es6to5","dist:es6to5":"tsc --out ./bundles/chinese-whispers.umd.js --target es5 --allowJs bundles/chinese-whispers.es6.umd.js --lib es6,dom","demo":"npm run example:demo","example:demo":"ts-node examples/demo","lint":"npm run lint:ts","lint:ts":"tslint --project tsconfig.json && npm run clean && tsc --noEmit","pack":"npm pack","rollup":"rollup -c","test":"tap \"src/**/*.spec.ts\" \"test/**/*.spec.ts\"","test:pack":"bash -x scripts/npm-pack-testing.sh","test:unit":"tap -R tap test/unit/**/*.spec.ts"},"repository":{"type":"git","url":"git+https://github.com/huan/chinese-whispers.git"},"keywords":["chinese","whispers","algorithm","cluster","knn"],"author":{"name":"Huan LI","email":"zixia@zixia.net"},"license":"Apache-2.0","bugs":{"url":"https://github.com/huan/chinese-whispers/issues"},"homepage":"https://github.com/huan/chinese-whispers#readme","dependencies":{"jsnetworkx":"^0.3.4","knuth-shuffle":"^1.0.1","numjs":"^0.16.0"},"devDependencies":{"@types/node":"^10.7.0","@types/numjs":"^0.14.2","@types/semver":"^5.5.0","git-scripts":"^0.2.1","rollup":"^1.0.1","semver":"^5.5.0","shx":"^0.3.2","tap":"^12.0.1","ts-node":"^7.0.0","tslint":"^5.7.0","tslint-config-standard":"^8.0.1","tslint-jsdoc-rules":"^0.1.2","typescript":"^3.1.0-dev.20180802"},"git":{"scripts":{"pre-push":"./scripts/pre-push.sh"}},"publishConfig":{"access":"public","tag":"next"},"gitHead":"9a3cac749871f0ae8113d53a9c0411e309ec77eb","readme":"# CHINESE-WHISPERS\n\n[![Build Status](https://travis-ci.com/huan/chinese-whispers.svg?branch=master)](https://travis-ci.com/huan/chinese-whispers) [![NPM Version](https://badge.fury.io/js/chinese-whispers.svg)](https://badge.fury.io/js/chinese-whispers) [![Downloads](http://img.shields.io/npm/dm/chinese-whispers.svg?style=flat-square)](https://npmjs.org/package/chinese-whispers) [![TypeScript](https://img.shields.io/badge/%3C%2F%3E-TypeScript-blue.svg)](https://www.typescriptlang.org/) [![Greenkeeper badge](https://badges.greenkeeper.io/huan/chinese-whispers.svg)](https://greenkeeper.io/)\n\nAn Efficient Graph Clustering Algorithm for JavaScript/Node.js\n\n![Chinese Whispers](https://huan.github.io/chinese-whispers/images/chinese-whispers.gif)\n> Picture credit: http://www.wikihow.com/Play-Chinese-Whispers\n\n## ALGORITHM\n\nChinese Whispers - _an Efficient Graph Clustering Algorithm and its Application to Natural Language Processing Problems_\n> Author: Chris Biemann, University of Leipzig, NLP-Dept. Leipzig, Germany\n\n1. [Wikipedia](https://en.wikipedia.org/wiki/Chinese_Whispers_(clustering_method))\n2. [Slide](https://www.lt.informatik.tu-darmstadt.de/fileadmin/user_upload/Group_LangTech/publications/pre-langtech/BiemannTextgraphs06.ppt) - 2006 TextGraphs 06, NYC, USA\n3. [Paper](https://pdfs.semanticscholar.org/3e71/0251cb01ba6e1c0c735591776a212edc461f.pdf)\n\n## INSTALL\n\n```shell\nnpm install chinese-whispers\n```\n\n## EXAMPLE\n\nTalk is cheap, show me the code!\n\n```ts\nimport { ChineseWhispers } from 'chinese-whispers'\n\nfunction weightFunc(a, b) {\n  const dist = Math.abs(a - b)\n  return 1 / dist\n}\n\nconst cw = new ChineseWhispers({\n  weightFunc,\n})\n\nconst dataList = [\n  0, 1, 2,\n  10, 11, 12,\n  20, 21, 22,\n]\n\nconst clusterIndicesList = cw.cluster(dataList)\n\nfor (const i in clusterIndicesList) {\n  const clusterIndices = clusterIndicesList[i]\n  const cluster = clusterIndices.map(j => dataList[j])\n  console.log('Cluster[' + i + ']: ' + cluster)\n}\n// Cluster[0]: 0,1,2\n// Cluster[1]: 10,11,12\n// Cluster[2]: 20,21,22\n```\n\nSource code can be found at: <https://github.com/huan/chinese-whispers/blob/master/examples/demo.ts>\n\nAPI\n---\n\nThe `ChineseWhispers` class is all you need to run the Chinese Whispers Algorithm.\n\n### 1. `constructor(options: ChineseWhisperOptions)`\n\n```ts\ninterface ChineseWhispersOptions<T> {\n  weightFunc: WeightFunc<T>,\n  epochs?:    number,\n  threshold?: number,\n}\n```\n\n* `options`\n  - `weightFunc`:  a function that takes two data item, calculate the weight between them and return the value.\n  - `epochs`:    how many epoches to run the algorithm, default 15.\n  - `threshold`: minimum weight required for a edge. default 0.\n\n```ts\nconst nj = require('numjs') // a Javascript implementation of numpy in Python\n\n// calculate the distance between vectors\nfunction weightFunc(v1, v2) {\n  const njV1 = nj.array(v1)\n  const njV2 = nj.array(v2)\n  const l2 = njV1.subtract(njV2)\n                .pow(2)\n                .sum()\n  const dist = Math.sqrt(l2)\n  return 1 / dist\n}\n\nconst cw = new ChineseWhispers({\n  weightFunc,\n})\n```\n\n### 2. `cluster(dataList): number[][]`\n\nProcess `dataList` which is an array of data, returns the cluster results as an array, each array item is a cluster, and each cluster is an array which includes the indices of dataList that belongs to this cluster.\n\n```ts\nconst clusterIndicesList = cw.cluster(dataList)\n\nfor (const i in clusterIndicesList) {\n  // get the cluster, which stores the array index dataList\n  const clusterIndices = clusterIndicesList[i]\n  // map the array index of dataList to the actual dataList data\n  const cluster = clusterIndices.map(j => dataList[j])\n  console.log('Cluster[' + i + ']: ' + cluster)\n}\n```\n\n## INSPIRATION\n\nThe code is heavily inspired by the following implementation:\n\n* [facenet chinese whispers(face cluster) in Python - zhly0](http://blog.csdn.net/liyuan123zhouhui/article/details/70312716)\n* [Chinese Whispers Graph Clustering in Python - Alex Loveless](http://alexloveless.co.uk/data/chinese-whispers-graph-clustering-in-python/)\n* [A Python implementation of Chris Biemann's algorithm for graph clustering](https://github.com/sanmayaj/ChineseWhispers)\n* [Implementation of the Chinese Whispers graph clustering algorithm in Java](https://github.com/uhh-lt/chinese-whispers)\n* [Chinese Whispers Graph Clustering Algorithm in Javascript](https://github.com/anvaka/ngraph.cw)\n\n## SEE ALSO\n\n* [The meaning and origin of the expression: Chinese whispers](http://www.phrases.org.uk/meanings/chinese-whispers.html)\n* [TensorFlow backed FaceNet implementation for Node.js](https://github.com/huan/node-facenet) - Face verification, face recognition and face clustering.\n\n## CHANGELOG\n\n### v0.3 master\n\n### v0.2 Aug 2018\n\n1. Upgrade TypeScript to 3.0\n2. DevOps to npm@next\n3. Upgrade rollup to 1.0\n\n### v0.1 Sep 2017\n\n1. `ChineseWhispers` class\n1. `cluster()` class method\n1. Unit test cases\n1. Travis CI & CD(publish to NPM automatically)\n\n## AUTHOR\n\nHuan LI \\<zixia@zixia.net\\> (http://linkedin.com/in/zixia)\n\n<a href=\"http://stackoverflow.com/users/1123955/zixia\">\n  <img src=\"http://stackoverflow.com/users/flair/1123955.png\" width=\"208\" height=\"58\" alt=\"profile for zixia at Stack Overflow, Q&amp;A for professional and enthusiast programmers\" title=\"profile for zixia at Stack Overflow, Q&amp;A for professional and enthusiast programmers\">\n</a>\n\n## COPYRIGHT & LICENSE\n\n* Code & Docs © 2017-2019 Huan LI \\<zixia@zixia.net\\>\n* Code released under the Apache-2.0 License\n* Docs released under Creative Commons\n","readmeFilename":"README.md","_id":"chinese-whispers@0.3.1","_npmVersion":"6.4.1","_nodeVersion":"10.15.0","_npmUser":{"name":"zixia","email":"zixia@zixia.net"},"dist":{"integrity":"sha512-g5RV4NiAHEJFcAtFif4TwKtObAAXZ8f/ticmy32K0OCG/3XyB6p4LsY+CP/Wz2O/VnGFYDfFlswOcq8hD4HKSg==","shasum":"3b71a051903e79c78771df2556c77833eed4e851","tarball":"https://registry.npmjs.org/chinese-whispers/-/chinese-whispers-0.3.1.tgz","fileCount":20,"unpackedSize":84723,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcLe0BCRA9TVsSAnZWagAAGoIP/2uYiXYoJI8wsu61P0Wh\na3+g/MnVPD+8hQq2lOMbyNYTte4kK/krwjp+XlVbdtO8o+tLIwLknAVposaY\nUUOdEgwfIgq8bgeGCTUggKgQObw+vLdLEQ2W8E0zkCb7X+M7sNDq8zXiyAKc\ngOr+mPHeixt3afT6rZlkN7mP0IGEeFQUOuZcakYrioCAzmxeF5I5BzLM8KXP\nVFhyPaksqD6uRhV0iSq5JnolgccfspZ1zSSsfF3Y4FYLd0bLltyKKCT3goa9\nWQyOoRU9+ZP1Vpbfp0z6jFdRLjQmu7AnkXZi09IopmUKEUzojYe10CFm8ho/\nhXd+XV7EiI9YyTsSiRqXbLBwyrhxXevacO0YCr5MIyMKUT6C6VPN2XuKjCGM\nCwW5B8NeabuzUjGIQCGlsXSxhL0egyomncC+sxvGIQENe5ZvbcMzczcNrp+o\nhYzLvAfxchTpVEcbL6fRyF8d+9vlVpQ0sSkIIvsnPhDZTZw7mBZVOjr5GHLt\ne5E54qv2BdAPYScM/Zyr9LFs8Q0x3l1tnjV0cb9FIQL1drWUd6D6GH8nY9yY\nHI+Ehqf7NTKHDkCHVb3EIdSSof9aQyYhrb/eiaLIh2GuROx3NtkhJQiViBh8\nhWFVdJj9cEllDycrNwZsuEDlamZIWqMKaRAcMVLdvt+jYOLaAYUE57ic5pO7\nUTXJ\r\n=gjoy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA5UH5x7kEAjq2sbOsDtRMO9IZs3nf5OH0DNETWT2ot2AiEAjk+PSkMh9adTuhYzmx7blO6+05Bfq6REHgSLiJ4qgHY="}]},"maintainers":[{"name":"zixia","email":"zixia@zixia.net"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/chinese-whispers_0.3.1_1546513664845_0.8431923362943847"},"_hasShrinkwrap":false},"0.3.2":{"name":"chinese-whispers","version":"0.3.2","description":"Chinese Whispers Algorithm","main":"bundles/chinese-whispers.umd.js","types":"dist/index.d.ts","scripts":{"build":"tsc --module es6","clean":"shx rm -fr dist/*","dist":"npm run clean && npm run build && npm run rollup && npm run dist:es6to5","dist:es6to5":"tsc --out ./bundles/chinese-whispers.umd.js --target es5 --allowJs bundles/chinese-whispers.es6.umd.js --lib es6,dom","demo":"npm run example:demo","example:demo":"ts-node examples/demo","lint":"npm run lint:ts","lint:ts":"tslint --project tsconfig.json && npm run clean && tsc --noEmit","pack":"npm pack","rollup":"rollup -c","test":"tap \"src/**/*.spec.ts\" \"test/**/*.spec.ts\"","test:pack":"bash -x scripts/npm-pack-testing.sh","test:unit":"tap -R tap test/unit/**/*.spec.ts"},"repository":{"type":"git","url":"git+https://github.com/huan/chinese-whispers.git"},"keywords":["chinese","whispers","algorithm","cluster","knn"],"author":{"name":"Huan LI","email":"zixia@zixia.net"},"license":"Apache-2.0","bugs":{"url":"https://github.com/huan/chinese-whispers/issues"},"homepage":"https://github.com/huan/chinese-whispers#readme","dependencies":{"jsnetworkx":"^0.3.4","knuth-shuffle":"^1.0.1","numjs":"^0.16.0"},"devDependencies":{"@types/node":"^10.7.0","@types/numjs":"^0.14.2","@types/semver":"^5.5.0","git-scripts":"^0.2.1","rollup":"^1.0.1","semver":"^5.5.0","shx":"^0.3.2","tap":"^12.0.1","ts-node":"^7.0.0","tslint":"^5.7.0","tslint-config-standard":"^8.0.1","tslint-jsdoc-rules":"^0.1.2","typescript":"^3.1.0-dev.20180802"},"git":{"scripts":{"pre-push":"./scripts/pre-push.sh"}},"publishConfig":{"access":"public","tag":"next"},"gitHead":"f5888b3ba738a92f36c7002b41345e548718b6da","readme":"# CHINESE-WHISPERS\n\n[![Build Status](https://travis-ci.com/huan/chinese-whispers.svg?branch=master)](https://travis-ci.com/huan/chinese-whispers)\n[![NPM Version](https://badge.fury.io/js/chinese-whispers.svg)](https://badge.fury.io/js/chinese-whispers)\n[![npm (tag)](https://img.shields.io/npm/v/chinese-whispers/next.svg)](https://www.npmjs.com/package/chinese-whispers?activeTab=versions)\n[![Downloads](http://img.shields.io/npm/dm/chinese-whispers.svg?style=flat-square)](https://npmjs.org/package/chinese-whispers)\n[![TypeScript](https://img.shields.io/badge/%3C%2F%3E-TypeScript-blue.svg)](https://www.typescriptlang.org/)\n[![Greenkeeper badge](https://badges.greenkeeper.io/huan/chinese-whispers.svg)](https://greenkeeper.io/)\n\nAn Efficient Graph Clustering Algorithm for JavaScript/Node.js\n\n![Chinese Whispers](https://huan.github.io/chinese-whispers/images/chinese-whispers.gif)\n> Picture credit: http://www.wikihow.com/Play-Chinese-Whispers\n\n## ALGORITHM\n\nChinese Whispers - _an Efficient Graph Clustering Algorithm and its Application to Natural Language Processing Problems_\n> Author: Chris Biemann, University of Leipzig, NLP-Dept. Leipzig, Germany\n\n1. [Wikipedia](https://en.wikipedia.org/wiki/Chinese_Whispers_(clustering_method))\n2. [Slide](https://www.lt.informatik.tu-darmstadt.de/fileadmin/user_upload/Group_LangTech/publications/pre-langtech/BiemannTextgraphs06.ppt) - 2006 TextGraphs 06, NYC, USA\n3. [Paper](https://pdfs.semanticscholar.org/3e71/0251cb01ba6e1c0c735591776a212edc461f.pdf)\n\n## INSTALL\n\n```shell\nnpm install chinese-whispers\n```\n\n## EXAMPLE\n\nTalk is cheap, show me the code!\n\n```ts\nimport { ChineseWhispers } from 'chinese-whispers'\n\nfunction weightFunc(a, b) {\n  const dist = Math.abs(a - b)\n  return 1 / dist\n}\n\nconst cw = new ChineseWhispers({\n  weightFunc,\n})\n\nconst dataList = [\n  0, 1, 2,\n  10, 11, 12,\n  20, 21, 22,\n]\n\nconst clusterIndicesList = cw.cluster(dataList)\n\nfor (const i in clusterIndicesList) {\n  const clusterIndices = clusterIndicesList[i]\n  const cluster = clusterIndices.map(j => dataList[j])\n  console.log('Cluster[' + i + ']: ' + cluster)\n}\n// Cluster[0]: 0,1,2\n// Cluster[1]: 10,11,12\n// Cluster[2]: 20,21,22\n```\n\nSource code can be found at: <https://github.com/huan/chinese-whispers/blob/master/examples/demo.ts>\n\nAPI\n---\n\nThe `ChineseWhispers` class is all you need to run the Chinese Whispers Algorithm.\n\n### 1. `constructor(options: ChineseWhisperOptions)`\n\n```ts\ninterface ChineseWhispersOptions<T> {\n  weightFunc: WeightFunc<T>,\n  epochs?:    number,\n  threshold?: number,\n}\n```\n\n* `options`\n  - `weightFunc`:  a function that takes two data item, calculate the weight between them and return the value.\n  - `epochs`:    how many epoches to run the algorithm, default 15.\n  - `threshold`: minimum weight required for a edge. default 0.\n\n```ts\nconst nj = require('numjs') // a Javascript implementation of numpy in Python\n\n// calculate the distance between vectors\nfunction weightFunc(v1, v2) {\n  const njV1 = nj.array(v1)\n  const njV2 = nj.array(v2)\n  const l2 = njV1.subtract(njV2)\n                .pow(2)\n                .sum()\n  const dist = Math.sqrt(l2)\n  return 1 / dist\n}\n\nconst cw = new ChineseWhispers({\n  weightFunc,\n})\n```\n\n### 2. `cluster(dataList): number[][]`\n\nProcess `dataList` which is an array of data, returns the cluster results as an array, each array item is a cluster, and each cluster is an array which includes the indices of dataList that belongs to this cluster.\n\n```ts\nconst clusterIndicesList = cw.cluster(dataList)\n\nfor (const i in clusterIndicesList) {\n  // get the cluster, which stores the array index dataList\n  const clusterIndices = clusterIndicesList[i]\n  // map the array index of dataList to the actual dataList data\n  const cluster = clusterIndices.map(j => dataList[j])\n  console.log('Cluster[' + i + ']: ' + cluster)\n}\n```\n\n## INSPIRATION\n\nThe code is heavily inspired by the following implementation:\n\n* [facenet chinese whispers(face cluster) in Python - zhly0](http://blog.csdn.net/liyuan123zhouhui/article/details/70312716)\n* [Chinese Whispers Graph Clustering in Python - Alex Loveless](http://alexloveless.co.uk/data/chinese-whispers-graph-clustering-in-python/)\n* [A Python implementation of Chris Biemann's algorithm for graph clustering](https://github.com/sanmayaj/ChineseWhispers)\n* [Implementation of the Chinese Whispers graph clustering algorithm in Java](https://github.com/uhh-lt/chinese-whispers)\n* [Chinese Whispers Graph Clustering Algorithm in Javascript](https://github.com/anvaka/ngraph.cw)\n\n## SEE ALSO\n\n* [The meaning and origin of the expression: Chinese whispers](http://www.phrases.org.uk/meanings/chinese-whispers.html)\n* [TensorFlow backed FaceNet implementation for Node.js](https://github.com/huan/node-facenet) - Face verification, face recognition and face clustering.\n\n## CHANGELOG\n\n### v0.3 master\n\n### v0.2 Aug 2018\n\n1. Upgrade TypeScript to 3.0\n2. DevOps to npm@next\n3. Upgrade rollup to 1.0\n\n### v0.1 Sep 2017\n\n1. `ChineseWhispers` class\n1. `cluster()` class method\n1. Unit test cases\n1. Travis CI & CD(publish to NPM automatically)\n\n## AUTHOR\n\nHuan LI \\<zixia@zixia.net\\> (http://linkedin.com/in/zixia)\n\n<a href=\"http://stackoverflow.com/users/1123955/zixia\">\n  <img src=\"http://stackoverflow.com/users/flair/1123955.png\" width=\"208\" height=\"58\" alt=\"profile for zixia at Stack Overflow, Q&amp;A for professional and enthusiast programmers\" title=\"profile for zixia at Stack Overflow, Q&amp;A for professional and enthusiast programmers\">\n</a>\n\n## COPYRIGHT & LICENSE\n\n* Code & Docs © 2017-2019 Huan LI \\<zixia@zixia.net\\>\n* Code released under the Apache-2.0 License\n* Docs released under Creative Commons\n","readmeFilename":"README.md","_id":"chinese-whispers@0.3.2","_npmVersion":"6.4.1","_nodeVersion":"10.15.0","_npmUser":{"name":"zixia","email":"zixia@zixia.net"},"dist":{"integrity":"sha512-P44kZjBivV5E4OaimmP4F0RPBCh7QmP2oE85aoTf5wznpILn9IWnAUVYkYyCGZ8zNVWvKRHtfXfKAThJ3VvPJg==","shasum":"c5909e85714597fae6f99c03a9fda1e4730d4742","tarball":"https://registry.npmjs.org/chinese-whispers/-/chinese-whispers-0.3.2.tgz","fileCount":20,"unpackedSize":84861,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcLe1LCRA9TVsSAnZWagAAWVcP/j5SKn1Qidbeh2xB+QcS\n7ywVcgfOIe+Mca30ETJ20oKPAKph7gbhrd6uR4FMzrHPe3+NXK9CEOHSO4A2\n+/NIbR2OHqU6qkeDEkygapLIFJtSsqYEY/0OQIYG5r316eLT+5eejpsnaOTU\nrla6x5AF6ssaExpT9LRSPSe5znryTd99BX54GstoVaEwmBqZMJeMj/UuurMg\nlYfBv8yMivvt9AmyMh3lh+x+W74WEWlWediAwKKBaev0RiKjIWDAXXB2ujI8\nrMPLQOMBLbMwKVhX/ZoCzqFQWTWb3nwh0UJTjUpNzbKzM5r89S+o5oIFHP8o\nDaxxfTIuLvPXeqhCwwRsOotoqcEWKV22zEv7S9TbdJgvEEmsg5ktTUq3kZF3\nzp2Jigt3tVCi9J0+f0p4SxaqvgmbBkUc1+bcorgEENc7u69RXCiCDv+wQzCY\nY5m7gkTsYVGHT3ci82p+MaIzhQBpbHpqWS0wdSAOXyKl8Id/Jx0S3GWLtI6s\ng6nTRTkEwUzRZQtkh/DY7JaT3lx3c9dg8AwUr9wfqJLHJ740b6NCtFTTdeiR\n2W4aFBXPxg84Bb360G2NQ/9BzMqJ0Vv6XOUIMJQ5la2Ts1Flu5OylrZP+toH\nBW1jp/EkGo7HVePENok4NTx6IskLb5m2DYx7TsVZKit6FnflznEBNvn7dmmI\nR/CI\r\n=TF8t\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQChSMeJ6WlFPwNWokkQLRtwumYwicW9ArxsRjkC+PVPOQIhAONnY42+LEYj5jd9p2AQgPLUC+EvDPmsGxiNCZcBu06s"}]},"maintainers":[{"name":"zixia","email":"zixia@zixia.net"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/chinese-whispers_0.3.2_1546513739164_0.12269880477903494"},"_hasShrinkwrap":false},"0.3.4":{"name":"chinese-whispers","version":"0.3.4","description":"Chinese Whispers Algorithm","main":"bundles/chinese-whispers.umd.js","types":"dist/index.d.ts","scripts":{"build":"tsc --module es6 --skipLibCheck","clean":"shx rm -fr dist/*","dist":"npm run clean && npm run build && npm run rollup && npm run dist:es6to5","dist:es6to5":"tsc --out ./bundles/chinese-whispers.umd.js --target es5 --allowJs bundles/chinese-whispers.es6.umd.js --lib es6,dom","demo":"npm run example:demo","example:demo":"ts-node examples/demo","lint":"npm run lint:ts","lint:ts":"tslint --project tsconfig.json && npm run clean && tsc --noEmit","pack":"npm pack","rollup":"rollup -c","test":"tap \"src/**/*.spec.ts\" \"tests/**/*.spec.ts\"","test:pack":"bash -x scripts/npm-pack-testing.sh","test:unit":"tap -R tap test/unit/**/*.spec.ts"},"repository":{"type":"git","url":"git+https://github.com/huan/chinese-whispers.git"},"keywords":["chinese","whispers","algorithm","cluster","knn"],"author":{"name":"Huan LI","email":"zixia@zixia.net"},"license":"Apache-2.0","bugs":{"url":"https://github.com/huan/chinese-whispers/issues"},"homepage":"https://github.com/huan/chinese-whispers#readme","dependencies":{"jsnetworkx":"^0.3.4","knuth-shuffle":"^1.0.1","numjs":"^0.16.0"},"devDependencies":{"@types/node":"^12.0.4","@types/numjs":"^0.14.2","@types/semver":"^6.0.0","git-scripts":"^0.2.1","rollup":"^1.0.1","semver":"^6.0.0","shx":"^0.3.2","tap":"^13.0.0","ts-node":"^8.2.0","tslint":"^5.7.0","tslint-config-standard":"^8.0.1","tslint-jsdoc-rules":"^0.2.0","typescript":"^3.1.0-dev.20180802"},"git":{"scripts":{"pre-push":"./scripts/pre-push.sh"}},"publishConfig":{"access":"public","tag":"next"},"gitHead":"bb27a53893f7ff0634b680ccd327f29200b06022","readme":"# CHINESE-WHISPERS\n\n[![Build Status](https://travis-ci.com/huan/chinese-whispers.svg?branch=master)](https://travis-ci.com/huan/chinese-whispers)\n[![NPM Version](https://badge.fury.io/js/chinese-whispers.svg)](https://badge.fury.io/js/chinese-whispers)\n[![npm (tag)](https://img.shields.io/npm/v/chinese-whispers/next.svg)](https://www.npmjs.com/package/chinese-whispers?activeTab=versions)\n[![Downloads](http://img.shields.io/npm/dm/chinese-whispers.svg?style=flat-square)](https://npmjs.org/package/chinese-whispers)\n[![TypeScript](https://img.shields.io/badge/%3C%2F%3E-TypeScript-blue.svg)](https://www.typescriptlang.org/)\n[![Greenkeeper badge](https://badges.greenkeeper.io/huan/chinese-whispers.svg)](https://greenkeeper.io/)\n\nAn Efficient Graph Clustering Algorithm for JavaScript/Node.js\n\n![Chinese Whispers](https://huan.github.io/chinese-whispers/images/chinese-whispers.gif)\n> Picture credit: http://www.wikihow.com/Play-Chinese-Whispers\n\n## ALGORITHM\n\nChinese Whispers - _an Efficient Graph Clustering Algorithm and its Application to Natural Language Processing Problems_\n> Author: Chris Biemann, University of Leipzig, NLP-Dept. Leipzig, Germany\n\n1. [Wikipedia](https://en.wikipedia.org/wiki/Chinese_Whispers_(clustering_method))\n2. [Slide](https://www.lt.informatik.tu-darmstadt.de/fileadmin/user_upload/Group_LangTech/publications/pre-langtech/BiemannTextgraphs06.ppt) - 2006 TextGraphs 06, NYC, USA\n3. [Paper](https://pdfs.semanticscholar.org/3e71/0251cb01ba6e1c0c735591776a212edc461f.pdf)\n\n## INSTALL\n\n```shell\nnpm install chinese-whispers\n```\n\n## EXAMPLE\n\nTalk is cheap, show me the code!\n\n```ts\nimport { ChineseWhispers } from 'chinese-whispers'\n\nfunction weightFunc(a, b) {\n  const dist = Math.abs(a - b)\n  return 1 / dist\n}\n\nconst cw = new ChineseWhispers({\n  weightFunc,\n})\n\nconst dataList = [\n  0, 1, 2,\n  10, 11, 12,\n  20, 21, 22,\n]\n\nconst clusterIndicesList = cw.cluster(dataList)\n\nfor (const i in clusterIndicesList) {\n  const clusterIndices = clusterIndicesList[i]\n  const cluster = clusterIndices.map(j => dataList[j])\n  console.log('Cluster[' + i + ']: ' + cluster)\n}\n// Cluster[0]: 0,1,2\n// Cluster[1]: 10,11,12\n// Cluster[2]: 20,21,22\n```\n\nSource code can be found at: <https://github.com/huan/chinese-whispers/blob/master/examples/demo.ts>\n\nAPI\n---\n\nThe `ChineseWhispers` class is all you need to run the Chinese Whispers Algorithm.\n\n### 1. `constructor(options: ChineseWhisperOptions)`\n\n```ts\ninterface ChineseWhispersOptions<T> {\n  weightFunc: WeightFunc<T>,\n  epochs?:    number,\n  threshold?: number,\n}\n```\n\n* `options`\n  - `weightFunc`:  a function that takes two data item, calculate the weight between them and return the value.\n  - `epochs`:    how many epoches to run the algorithm, default 15.\n  - `threshold`: minimum weight required for a edge. default 0.\n\n```ts\nconst nj = require('numjs') // a Javascript implementation of numpy in Python\n\n// calculate the distance between vectors\nfunction weightFunc(v1, v2) {\n  const njV1 = nj.array(v1)\n  const njV2 = nj.array(v2)\n  const l2 = njV1.subtract(njV2)\n                .pow(2)\n                .sum()\n  const dist = Math.sqrt(l2)\n  return 1 / dist\n}\n\nconst cw = new ChineseWhispers({\n  weightFunc,\n})\n```\n\n### 2. `cluster(dataList): number[][]`\n\nProcess `dataList` which is an array of data, returns the cluster results as an array, each array item is a cluster, and each cluster is an array which includes the indices of dataList that belongs to this cluster.\n\n```ts\nconst clusterIndicesList = cw.cluster(dataList)\n\nfor (const i in clusterIndicesList) {\n  // get the cluster, which stores the array index dataList\n  const clusterIndices = clusterIndicesList[i]\n  // map the array index of dataList to the actual dataList data\n  const cluster = clusterIndices.map(j => dataList[j])\n  console.log('Cluster[' + i + ']: ' + cluster)\n}\n```\n\n## INSPIRATION\n\nThe code is heavily inspired by the following implementation:\n\n* [facenet chinese whispers(face cluster) in Python - zhly0](http://blog.csdn.net/liyuan123zhouhui/article/details/70312716)\n* [Chinese Whispers Graph Clustering in Python - Alex Loveless](http://alexloveless.co.uk/data/chinese-whispers-graph-clustering-in-python/)\n* [A Python implementation of Chris Biemann's algorithm for graph clustering](https://github.com/sanmayaj/ChineseWhispers)\n* [Implementation of the Chinese Whispers graph clustering algorithm in Java](https://github.com/uhh-lt/chinese-whispers)\n* [Chinese Whispers Graph Clustering Algorithm in Javascript](https://github.com/anvaka/ngraph.cw)\n\n## SEE ALSO\n\n* [The meaning and origin of the expression: Chinese whispers](http://www.phrases.org.uk/meanings/chinese-whispers.html)\n* [TensorFlow backed FaceNet implementation for Node.js](https://github.com/huan/node-facenet) - Face verification, face recognition and face clustering.\n\n## CHANGELOG\n\n### v0.3 master\n\n### v0.2 Aug 2018\n\n1. Upgrade TypeScript to 3.0\n2. DevOps to npm@next\n3. Upgrade rollup to 1.0\n\n### v0.1 Sep 2017\n\n1. `ChineseWhispers` class\n1. `cluster()` class method\n1. Unit test cases\n1. Travis CI & CD(publish to NPM automatically)\n\n## AUTHOR\n\nHuan LI \\<zixia@zixia.net\\> (http://linkedin.com/in/zixia)\n\n<a href=\"http://stackoverflow.com/users/1123955/zixia\">\n  <img src=\"http://stackoverflow.com/users/flair/1123955.png\" width=\"208\" height=\"58\" alt=\"profile for zixia at Stack Overflow, Q&amp;A for professional and enthusiast programmers\" title=\"profile for zixia at Stack Overflow, Q&amp;A for professional and enthusiast programmers\">\n</a>\n\n## COPYRIGHT & LICENSE\n\n* Code & Docs © 2017-2019 Huan LI \\<zixia@zixia.net\\>\n* Code released under the Apache-2.0 License\n* Docs released under Creative Commons\n","readmeFilename":"README.md","_id":"chinese-whispers@0.3.4","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-ZfaKZ5yVgZjm9hVVSOJCLlid+ZlbdFfWplMmB/5S1jre0kq9pZO3XJPn/w2i2kdQECC2efPKT6u4Ord9SECSuw==","shasum":"76c3e69238ce1cdc10456229f3e45d2a484276d1","tarball":"https://registry.npmjs.org/chinese-whispers/-/chinese-whispers-0.3.4.tgz","fileCount":23,"unpackedSize":85165,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc9xsmCRA9TVsSAnZWagAAKRoP/0LUEqdn1pGgKWSB/oyM\n4OqKgLyzCaZKhOsk39d1KWH650KB7pTU69x1WyYqGURuG79cOIV0RnlSx+vx\nN9UWQBfWDil7ub0aI8voHON6XsN1WcTUTA/9kSlRRCOpMmpHAiFGAs7tRaZ8\niVUz8K/ryvid2de2UAn66Io7iQlncdDN96pSoVCTUWjWJm6mQaSZF33MdAou\nZS5Tp2p+0tdtNkpDOD2qNUFWULBO/y7UKAhX2s9tp94mFgokvdCYPNY60m4Q\ney4obC0IN1846FDd5KNMS8tddsfOprNpaB1WJ0nn152HDAKGG+UTrz24IaPb\nPjwgEqG5KubRWiTQ8UjT641m6nC+dttuxhOEiKqGpoXkdH97LopoD3zq/dpX\nh/NdlVZSMQvnTN4ECnu2CpApYGYVtbFemxwjwyjVkDxCRhSE3Ipak8viGbv1\nT6XrUD8sYxLgDsTrCHyRo4TVSEHYxnKOjkwVC5ihtk3Ot5Ww5m7D0q9gEAnV\nYd/vdJUXcty/eKqNE5JFu9YF3zk1jFQ4biSR6YtXmZUvPBMnaTwMIvXx2XCP\njdVKmYf7t9rUytx9+e4NKm+TEklBhTWXXETuv+KKuGNC5Z4Tq3YnTTUP1Apn\ngexilzECuB5/3zaUMJuEVPtkpwGG1ti/YkMuSXTEJcrrNIf+crrTY3TQjptB\nKV31\r\n=CF7w\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCpLagJoafycn7jpRixd9gGBi2bt49J/FpawyvmcTzIDQIgKQsOPD840dCXh+Ddi33RL/Aa69xnqUys04mRHtgLDQY="}]},"maintainers":[{"name":"zixia","email":"zixia@zixia.net"}],"_npmUser":{"name":"zixia","email":"zixia@zixia.net"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/chinese-whispers_0.3.4_1559698212938_0.5554776607467562"},"_hasShrinkwrap":false},"0.3.7":{"name":"chinese-whispers","version":"0.3.7","description":"Chinese Whispers Algorithm","main":"bundles/chinese-whispers.umd.js","types":"dist/index.d.ts","scripts":{"build":"tsc --module es6 --skipLibCheck","clean":"shx rm -fr dist/*","dist":"npm run clean && npm run build && npm run rollup && npm run dist:es6to5","dist:es6to5":"tsc --out ./bundles/chinese-whispers.umd.js --target es5 --allowJs bundles/chinese-whispers.es6.umd.js --lib es6,dom","demo":"npm run example:demo","example:demo":"ts-node examples/demo","lint":"npm run lint:es && npm run lint:ts","lint:ts":"tsc --noEmit","pack":"npm pack","rollup":"rollup -c","test":"npm run lint && npm run test:unit","test:unit":"tap \"src/**/*.spec.ts\" \"tests/**/*.spec.ts\"","test:pack":"bash -x scripts/npm-pack-testing.sh","lint:es":"eslint --ignore-pattern fixtures/ 'src/**/*.ts' 'tests/**/*.ts' 'examples/**/*.ts'"},"repository":{"type":"git","url":"git+https://github.com/huan/chinese-whispers.git"},"keywords":["chinese","whispers","algorithm","cluster","knn"],"author":{"name":"Huan LI","email":"zixia@zixia.net"},"license":"Apache-2.0","bugs":{"url":"https://github.com/huan/chinese-whispers/issues"},"homepage":"https://github.com/huan/chinese-whispers#readme","dependencies":{"jsnetworkx":"^0.3.4","knuth-shuffle":"^1.0.1","numjs":"^0.16.0"},"devDependencies":{"@chatie/eslint-config":"^0.6.18","@chatie/git-scripts":"^0.2.5","@chatie/semver":"^0.4.7","@chatie/tsconfig":"^0.6.1","@types/numjs":"^0.14.2","pkg-jq":"^0.2.4","rollup":"^1.16.0","shx":"^0.3.2","tap":"^14.2.2","tstest":"^0.4.2"},"git":{"scripts":{"pre-push":"npx git-scripts-pre-push"}},"publishConfig":{"tag":"next"},"gitHead":"9eb4453bbb601409472b6e69f33bb69f080ee66e","readme":"# CHINESE-WHISPERS\n\n[![Build Status](https://travis-ci.com/huan/chinese-whispers.svg?branch=master)](https://travis-ci.com/huan/chinese-whispers)\n[![NPM Version](https://badge.fury.io/js/chinese-whispers.svg)](https://badge.fury.io/js/chinese-whispers)\n[![npm (tag)](https://img.shields.io/npm/v/chinese-whispers/next.svg)](https://www.npmjs.com/package/chinese-whispers?activeTab=versions)\n[![Downloads](http://img.shields.io/npm/dm/chinese-whispers.svg?style=flat-square)](https://npmjs.org/package/chinese-whispers)\n[![TypeScript](https://img.shields.io/badge/%3C%2F%3E-TypeScript-blue.svg)](https://www.typescriptlang.org/)\n[![Greenkeeper badge](https://badges.greenkeeper.io/huan/chinese-whispers.svg)](https://greenkeeper.io/)\n\nAn Efficient Graph Clustering Algorithm for JavaScript/Node.js\n\n![Chinese Whispers](https://huan.github.io/chinese-whispers/images/chinese-whispers.gif)\n> Picture credit: http://www.wikihow.com/Play-Chinese-Whispers\n\n## ALGORITHM\n\nChinese Whispers - _an Efficient Graph Clustering Algorithm and its Application to Natural Language Processing Problems_\n> Author: Chris Biemann, University of Leipzig, NLP-Dept. Leipzig, Germany\n\n1. [Wikipedia](https://en.wikipedia.org/wiki/Chinese_Whispers_(clustering_method))\n2. [Slide](https://www.lt.informatik.tu-darmstadt.de/fileadmin/user_upload/Group_LangTech/publications/pre-langtech/BiemannTextgraphs06.ppt) - 2006 TextGraphs 06, NYC, USA\n3. [Paper](https://pdfs.semanticscholar.org/3e71/0251cb01ba6e1c0c735591776a212edc461f.pdf)\n\n## INSTALL\n\n```shell\nnpm install chinese-whispers\n```\n\n## EXAMPLE\n\nTalk is cheap, show me the code!\n\n```ts\nimport { ChineseWhispers } from 'chinese-whispers'\n\nfunction weightFunc(a, b) {\n  const dist = Math.abs(a - b)\n  return 1 / dist\n}\n\nconst cw = new ChineseWhispers({\n  weightFunc,\n})\n\nconst dataList = [\n  0, 1, 2,\n  10, 11, 12,\n  20, 21, 22,\n]\n\nconst clusterIndicesList = cw.cluster(dataList)\n\nfor (const i in clusterIndicesList) {\n  const clusterIndices = clusterIndicesList[i]\n  const cluster = clusterIndices.map(j => dataList[j])\n  console.log('Cluster[' + i + ']: ' + cluster)\n}\n// Cluster[0]: 0,1,2\n// Cluster[1]: 10,11,12\n// Cluster[2]: 20,21,22\n```\n\nSource code can be found at: <https://github.com/huan/chinese-whispers/blob/master/examples/demo.ts>\n\nAPI\n---\n\nThe `ChineseWhispers` class is all you need to run the Chinese Whispers Algorithm.\n\n### 1. `constructor(options: ChineseWhisperOptions)`\n\n```ts\ninterface ChineseWhispersOptions<T> {\n  weightFunc: WeightFunc<T>,\n  epochs?:    number,\n  threshold?: number,\n}\n```\n\n* `options`\n  - `weightFunc`:  a function that takes two data item, calculate the weight between them and return the value.\n  - `epochs`:    how many epoches to run the algorithm, default 15.\n  - `threshold`: minimum weight required for a edge. default 0.\n\n```ts\nconst nj = require('numjs') // a Javascript implementation of numpy in Python\n\n// calculate the distance between vectors\nfunction weightFunc(v1, v2) {\n  const njV1 = nj.array(v1)\n  const njV2 = nj.array(v2)\n  const l2 = njV1.subtract(njV2)\n                .pow(2)\n                .sum()\n  const dist = Math.sqrt(l2)\n  return 1 / dist\n}\n\nconst cw = new ChineseWhispers({\n  weightFunc,\n})\n```\n\n### 2. `cluster(dataList): number[][]`\n\nProcess `dataList` which is an array of data, returns the cluster results as an array, each array item is a cluster, and each cluster is an array which includes the indices of dataList that belongs to this cluster.\n\n```ts\nconst clusterIndicesList = cw.cluster(dataList)\n\nfor (const i in clusterIndicesList) {\n  // get the cluster, which stores the array index dataList\n  const clusterIndices = clusterIndicesList[i]\n  // map the array index of dataList to the actual dataList data\n  const cluster = clusterIndices.map(j => dataList[j])\n  console.log('Cluster[' + i + ']: ' + cluster)\n}\n```\n\n## INSPIRATION\n\nThe code is heavily inspired by the following implementation:\n\n* [facenet chinese whispers(face cluster) in Python - zhly0](http://blog.csdn.net/liyuan123zhouhui/article/details/70312716)\n* [Chinese Whispers Graph Clustering in Python - Alex Loveless](http://alexloveless.co.uk/data/chinese-whispers-graph-clustering-in-python/)\n* [A Python implementation of Chris Biemann's algorithm for graph clustering](https://github.com/sanmayaj/ChineseWhispers)\n* [Implementation of the Chinese Whispers graph clustering algorithm in Java](https://github.com/uhh-lt/chinese-whispers)\n* [Chinese Whispers Graph Clustering Algorithm in Javascript](https://github.com/anvaka/ngraph.cw)\n\n## SEE ALSO\n\n* [The meaning and origin of the expression: Chinese whispers](http://www.phrases.org.uk/meanings/chinese-whispers.html)\n* [TensorFlow backed FaceNet implementation for Node.js](https://github.com/huan/node-facenet) - Face verification, face recognition and face clustering.\n\n## CHANGELOG\n\n### v0.3 master\n\n### v0.2 Aug 2018\n\n1. Upgrade TypeScript to 3.0\n2. DevOps to npm@next\n3. Upgrade rollup to 1.0\n\n### v0.1 Sep 2017\n\n1. `ChineseWhispers` class\n1. `cluster()` class method\n1. Unit test cases\n1. Travis CI & CD(publish to NPM automatically)\n\n## AUTHOR\n\nHuan LI \\<zixia@zixia.net\\> (http://linkedin.com/in/zixia)\n\n<a href=\"http://stackoverflow.com/users/1123955/zixia\">\n  <img src=\"http://stackoverflow.com/users/flair/1123955.png\" width=\"208\" height=\"58\" alt=\"profile for zixia at Stack Overflow, Q&amp;A for professional and enthusiast programmers\" title=\"profile for zixia at Stack Overflow, Q&amp;A for professional and enthusiast programmers\">\n</a>\n\n## COPYRIGHT & LICENSE\n\n* Code & Docs © 2017-2019 Huan LI \\<zixia@zixia.net\\>\n* Code released under the Apache-2.0 License\n* Docs released under Creative Commons\n","readmeFilename":"README.md","_id":"chinese-whispers@0.3.7","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-dVF1cUiu9FBuLfpCrXA7VqJuzPw/m6SU1dZrBGLlbAXQ1iEqJmvs31YEXBOJUlzPxEpcE51ESf3IVot83/VqgA==","shasum":"54f3d6f1ad74e0b385a56bd3c453d5a108d3c8b6","tarball":"https://registry.npmjs.org/chinese-whispers/-/chinese-whispers-0.3.7.tgz","fileCount":31,"unpackedSize":87809,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdDdLrCRA9TVsSAnZWagAA3q0P/0VNzmdRgdzmBcN7wyVG\ndi9c2sufRPNeMflkLWIM2Y0YWCqCC71P6FFWa/P0VUuj+b2twB9BS9QvGLa7\nOx1Nv+TM4nexQBa7F3T+bmKg5Hs1qJG1HshLzMtIsd1YW4FBcxBSoDjxbycT\n5Yc4eYfqd1BMRBDeEgSvYlDCWsjGXV3ReyiBNKviP7iZm4IkDx6E2SHavd5M\nmHTbcO9XOl2YhLUx28BhVeuklrnuB9Z7cKmE7wIjCNHmp34MZ/fRDRhQajce\nAealTL9+DKU+dINMl0Q3bv2IKs+01rNkAN8AD5ymC7XU4NAq6H2yM2lqcaW+\n7B7r3mxlsiLrdLjsmgsVd1Gsw0dPMtPW06iQWYrVU2tN3o2bTwpaVYiSej8c\n8R5EwyRqkGQB0v/l8qBSICsvB5Al9Xi1rTtMIAg3GUSBBxtpRr2s81WyiG4W\n0N8vVsWsdWIRH0VBscLohO+RW9OV2j7tVsSsUSCVXrDPe95tL5v36F1D78k1\ni7NTh7Zhv4MYotQ2RJgGSnkETxSQ+Kif0H10wXg18CULWPvGzY5qDMB2SeAo\nNhvccGXiqgesbb2K+xVIFYUrgT97zo7a33WxW8pSQ0WDVto9KL5HDuKrKTb2\nAJX841qWwR2c2lwG1OSQts0yZjHjsuQKxpU43toZaLrTBqzDsT4/GQhoiB11\nW6lc\r\n=yRvo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQChCsHjngWPLHcZkb7W29YAq2p+MqQb/dh4soXcYqi8BgIgTnad3qWVu5hD5n8qK5aEx6yQPsM/SL6LXv/R+yXWndA="}]},"maintainers":[{"name":"zixia","email":"zixia@zixia.net"}],"_npmUser":{"name":"zixia","email":"zixia@zixia.net"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/chinese-whispers_0.3.7_1561187050427_0.7455448645389251"},"_hasShrinkwrap":false},"0.3.9":{"name":"chinese-whispers","version":"0.3.9","description":"Chinese Whispers Algorithm","main":"bundles/chinese-whispers.umd.js","types":"dist/src/index.d.ts","scripts":{"build":"tsc --module es6 --skipLibCheck","clean":"shx rm -fr dist/*","dist":"npm run clean && npm run build && npm run rollup && npm run dist:es6to5","dist:es6to5":"tsc --out ./bundles/chinese-whispers.umd.js --target es5 --allowJs bundles/chinese-whispers.es6.umd.js --lib es6,dom","demo":"npm run example:demo","example:demo":"ts-node examples/demo","lint":"npm run lint:es && npm run lint:ts","lint:ts":"tsc --noEmit","pack":"npm pack","rollup":"rollup -c","test":"npm run lint && npm run test:unit","test:unit":"tap \"src/**/*.spec.ts\" \"tests/**/*.spec.ts\"","test:pack":"bash -x scripts/npm-pack-testing.sh","lint:es":"eslint --ignore-pattern fixtures/ 'src/**/*.ts' 'tests/**/*.ts' 'examples/**/*.ts'"},"repository":{"type":"git","url":"git+https://github.com/huan/chinese-whispers.git"},"keywords":["chinese","whispers","algorithm","cluster","knn"],"author":{"name":"Huan LI","email":"zixia@zixia.net"},"license":"Apache-2.0","bugs":{"url":"https://github.com/huan/chinese-whispers/issues"},"homepage":"https://github.com/huan/chinese-whispers#readme","dependencies":{"jsnetworkx":"^0.3.4","knuth-shuffle":"^1.0.1","numjs":"^0.16.0"},"devDependencies":{"@chatie/eslint-config":"^0.6.18","@chatie/git-scripts":"^0.2.5","@chatie/semver":"^0.4.7","@chatie/tsconfig":"^0.6.1","@types/numjs":"^0.14.2","pkg-jq":"^0.2.4","rollup":"^1.16.0","shx":"^0.3.2","tap":"^14.2.2","tstest":"^0.4.2"},"git":{"scripts":{"pre-push":"npx git-scripts-pre-push"}},"publishConfig":{"tag":"next"},"gitHead":"d1d7fe8e71c254437fb76d1f7978268c0245229c","readme":"# CHINESE-WHISPERS\n\n[![Build Status](https://travis-ci.com/huan/chinese-whispers.svg?branch=master)](https://travis-ci.com/huan/chinese-whispers)\n[![NPM Version](https://badge.fury.io/js/chinese-whispers.svg)](https://badge.fury.io/js/chinese-whispers)\n[![npm (tag)](https://img.shields.io/npm/v/chinese-whispers/next.svg)](https://www.npmjs.com/package/chinese-whispers?activeTab=versions)\n[![Downloads](http://img.shields.io/npm/dm/chinese-whispers.svg?style=flat-square)](https://npmjs.org/package/chinese-whispers)\n[![TypeScript](https://img.shields.io/badge/%3C%2F%3E-TypeScript-blue.svg)](https://www.typescriptlang.org/)\n[![Greenkeeper badge](https://badges.greenkeeper.io/huan/chinese-whispers.svg)](https://greenkeeper.io/)\n\nAn Efficient Graph Clustering Algorithm for JavaScript/Node.js\n\n![Chinese Whispers](https://huan.github.io/chinese-whispers/images/chinese-whispers.gif)\n> Picture credit: http://www.wikihow.com/Play-Chinese-Whispers\n\n## ALGORITHM\n\nChinese Whispers - _an Efficient Graph Clustering Algorithm and its Application to Natural Language Processing Problems_\n> Author: Chris Biemann, University of Leipzig, NLP-Dept. Leipzig, Germany\n\n1. [Wikipedia](https://en.wikipedia.org/wiki/Chinese_Whispers_(clustering_method))\n2. [Slide](https://www.lt.informatik.tu-darmstadt.de/fileadmin/user_upload/Group_LangTech/publications/pre-langtech/BiemannTextgraphs06.ppt) - 2006 TextGraphs 06, NYC, USA\n3. [Paper](https://pdfs.semanticscholar.org/3e71/0251cb01ba6e1c0c735591776a212edc461f.pdf)\n\n## INSTALL\n\n```shell\nnpm install chinese-whispers\n```\n\n## EXAMPLE\n\nTalk is cheap, show me the code!\n\n```ts\nimport { ChineseWhispers } from 'chinese-whispers'\n\nfunction weightFunc(a, b) {\n  const dist = Math.abs(a - b)\n  return 1 / dist\n}\n\nconst cw = new ChineseWhispers({\n  weightFunc,\n})\n\nconst dataList = [\n  0, 1, 2,\n  10, 11, 12,\n  20, 21, 22,\n]\n\nconst clusterIndicesList = cw.cluster(dataList)\n\nfor (const i in clusterIndicesList) {\n  const clusterIndices = clusterIndicesList[i]\n  const cluster = clusterIndices.map(j => dataList[j])\n  console.log('Cluster[' + i + ']: ' + cluster)\n}\n// Cluster[0]: 0,1,2\n// Cluster[1]: 10,11,12\n// Cluster[2]: 20,21,22\n```\n\nSource code can be found at: <https://github.com/huan/chinese-whispers/blob/master/examples/demo.ts>\n\nAPI\n---\n\nThe `ChineseWhispers` class is all you need to run the Chinese Whispers Algorithm.\n\n### 1. `constructor(options: ChineseWhisperOptions)`\n\n```ts\ninterface ChineseWhispersOptions<T> {\n  weightFunc: WeightFunc<T>,\n  epochs?:    number,\n  threshold?: number,\n}\n```\n\n* `options`\n  - `weightFunc`:  a function that takes two data item, calculate the weight between them and return the value.\n  - `epochs`:    how many epoches to run the algorithm, default 15.\n  - `threshold`: minimum weight required for a edge. default 0.\n\n```ts\nconst nj = require('numjs') // a Javascript implementation of numpy in Python\n\n// calculate the distance between vectors\nfunction weightFunc(v1, v2) {\n  const njV1 = nj.array(v1)\n  const njV2 = nj.array(v2)\n  const l2 = njV1.subtract(njV2)\n                .pow(2)\n                .sum()\n  const dist = Math.sqrt(l2)\n  return 1 / dist\n}\n\nconst cw = new ChineseWhispers({\n  weightFunc,\n})\n```\n\n### 2. `cluster(dataList): number[][]`\n\nProcess `dataList` which is an array of data, returns the cluster results as an array, each array item is a cluster, and each cluster is an array which includes the indices of dataList that belongs to this cluster.\n\n```ts\nconst clusterIndicesList = cw.cluster(dataList)\n\nfor (const i in clusterIndicesList) {\n  // get the cluster, which stores the array index dataList\n  const clusterIndices = clusterIndicesList[i]\n  // map the array index of dataList to the actual dataList data\n  const cluster = clusterIndices.map(j => dataList[j])\n  console.log('Cluster[' + i + ']: ' + cluster)\n}\n```\n\n## INSPIRATION\n\nThe code is heavily inspired by the following implementation:\n\n* [facenet chinese whispers(face cluster) in Python - zhly0](http://blog.csdn.net/liyuan123zhouhui/article/details/70312716)\n* [Chinese Whispers Graph Clustering in Python - Alex Loveless](http://alexloveless.co.uk/data/chinese-whispers-graph-clustering-in-python/)\n* [A Python implementation of Chris Biemann's algorithm for graph clustering](https://github.com/sanmayaj/ChineseWhispers)\n* [Implementation of the Chinese Whispers graph clustering algorithm in Java](https://github.com/uhh-lt/chinese-whispers)\n* [Chinese Whispers Graph Clustering Algorithm in Javascript](https://github.com/anvaka/ngraph.cw)\n\n## SEE ALSO\n\n* [The meaning and origin of the expression: Chinese whispers](http://www.phrases.org.uk/meanings/chinese-whispers.html)\n* [TensorFlow backed FaceNet implementation for Node.js](https://github.com/huan/node-facenet) - Face verification, face recognition and face clustering.\n\n## CHANGELOG\n\n### v0.3 master\n\n### v0.2 Aug 2018\n\n1. Upgrade TypeScript to 3.0\n2. DevOps to npm@next\n3. Upgrade rollup to 1.0\n\n### v0.1 Sep 2017\n\n1. `ChineseWhispers` class\n1. `cluster()` class method\n1. Unit test cases\n1. Travis CI & CD(publish to NPM automatically)\n\n## AUTHOR\n\nHuan LI \\<zixia@zixia.net\\> (http://linkedin.com/in/zixia)\n\n<a href=\"http://stackoverflow.com/users/1123955/zixia\">\n  <img src=\"http://stackoverflow.com/users/flair/1123955.png\" width=\"208\" height=\"58\" alt=\"profile for zixia at Stack Overflow, Q&amp;A for professional and enthusiast programmers\" title=\"profile for zixia at Stack Overflow, Q&amp;A for professional and enthusiast programmers\">\n</a>\n\n## COPYRIGHT & LICENSE\n\n* Code & Docs © 2017-2019 Huan LI \\<zixia@zixia.net\\>\n* Code released under the Apache-2.0 License\n* Docs released under Creative Commons\n","readmeFilename":"README.md","_id":"chinese-whispers@0.3.9","_nodeVersion":"10.16.0","_npmVersion":"6.9.0","dist":{"integrity":"sha512-kmwQGdl0NkMpuCbI12ARmvIrHPA/8ya1nOAAcje6Taz6+7nVJriyA1Tb9xhbSp7XMhFVb4myjvWfCmPNhm+KjA==","shasum":"a784c11041de606c83d970cf84789d11c1d67966","tarball":"https://registry.npmjs.org/chinese-whispers/-/chinese-whispers-0.3.9.tgz","fileCount":32,"unpackedSize":87967,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdDdaZCRA9TVsSAnZWagAAuyIP/Avry0NK3k04z/PbYg/Z\nGl7n9W8cyqHvA0RLwwcxQ5EzyYXyMPTEGzNysELpEfUC1a2263QtXa0KQ4sA\n5AOE5Mp7N04DdRhgOYv5yIoEdfyEhrBfwYZqa3I/jVmmQg7ewkGHPmEWGq+O\nFEI4YDoAHh53rZN8Uixi3euKAn94qhZH2bIunNHxttUJVDXJiCmEmnQ4ak+e\nNgSzhWpBd/rUFNhtk98vwb+VUxK9nHR0QM8Z5MZ/pTmUAk3fCZ8JQRUnrJG5\nOySpBRFP441xkVRvp91aq4vlIJ1xePDXYmum2OXuEOWy/lBqGXJP+Ra4zHlk\nKD1YGs2+IDSI2FJZalmI7zFBf2Ehd85YRWLHw8secQzclElqyGm/c7cCv7wS\nap16I8DzkaB99zL1w4gthD0dGKNLg8I9aeyQCJ9bKn1k1hXehbqM1ZyCVQpZ\nv24wsQHLbCYCM8x+NffSIwFA7lFWnvA1siazR83ySIwxFQfRDPhHtvnuvFtp\nqxYsEBj+ByHer8QcqT/sGq5PxNxJbqWinExA6o12o7zMvsHmVSuhlFWdtc9E\nOq2p/7zTMYOU6nTcwvbOMIFSX1xZoC3tQgqtcNjuYLUQe2sF74U/MY1iDi4k\nZXZelMrxd16i+EYEaxK71emNgxgWttC0n/VSxryHhdx81NPYq78JteDkpPDC\nZ+k3\r\n=kxR3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQClbrhA8+NWQPMJPRTZQBrVs7meHtI7l10pteuPDPCxCgIgCV/yrw6NGj4dTLIjZrXmXMYvnsAx5yL0MfjKobiO3PE="}]},"maintainers":[{"name":"zixia","email":"zixia@zixia.net"}],"_npmUser":{"name":"zixia","email":"zixia@zixia.net"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/chinese-whispers_0.3.9_1561187992741_0.10871874901584078"},"_hasShrinkwrap":false}},"readme":"","maintainers":[{"name":"zixia","email":"zixia@zixia.net"}],"time":{"modified":"2022-06-13T05:58:36.366Z","created":"2017-09-05T16:35:00.902Z","0.0.5":"2017-09-05T16:35:00.902Z","0.0.10":"2017-09-05T17:54:27.815Z","0.0.11":"2017-09-05T18:26:55.827Z","0.0.12":"2017-09-05T18:34:30.405Z","0.0.13":"2017-09-05T18:40:52.905Z","0.0.14":"2017-09-05T18:48:09.574Z","0.0.15":"2017-09-05T19:03:30.732Z","0.1.1":"2017-09-05T19:04:43.782Z","0.1.2":"2017-09-05T19:07:03.880Z","0.1.3":"2017-09-06T02:00:26.399Z","0.1.4":"2017-09-06T13:53:24.961Z","0.1.5":"2017-09-06T16:08:57.510Z","0.2.5":"2018-08-03T17:55:43.091Z","0.2.6":"2018-11-27T16:18:38.260Z","0.2.7":"2018-11-27T16:22:29.931Z","0.2.8":"2018-11-27T16:25:20.559Z","0.2.9":"2018-11-27T16:27:01.539Z","0.2.10":"2019-01-03T11:01:52.478Z","0.2.11":"2019-01-03T11:04:34.359Z","0.3.1":"2019-01-03T11:07:45.108Z","0.3.2":"2019-01-03T11:08:59.361Z","0.3.4":"2019-06-05T01:30:13.111Z","0.3.7":"2019-06-22T07:04:10.550Z","0.3.9":"2019-06-22T07:19:52.920Z"},"homepage":"https://github.com/huan/chinese-whispers#readme","keywords":["chinese","whispers","algorithm","cluster","knn"],"repository":{"type":"git","url":"git+https://github.com/huan/chinese-whispers.git"},"author":{"name":"Huan LI","email":"zixia@zixia.net"},"bugs":{"url":"https://github.com/huan/chinese-whispers/issues"},"license":"Apache-2.0","readmeFilename":"","users":{"hain":true}}