sxng-cli 1.0.4 → 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +120 -4
- package/dist/commands/build-graph.d.ts +8 -0
- package/dist/commands/build-graph.d.ts.map +1 -0
- package/dist/commands/build-graph.js +70 -0
- package/dist/commands/build-graph.js.map +1 -0
- package/dist/commands/extract.d.ts +11 -0
- package/dist/commands/extract.d.ts.map +1 -0
- package/dist/commands/extract.js +84 -0
- package/dist/commands/extract.js.map +1 -0
- package/dist/commands/graph-add.d.ts +13 -0
- package/dist/commands/graph-add.d.ts.map +1 -0
- package/dist/commands/graph-add.js +148 -0
- package/dist/commands/graph-add.js.map +1 -0
- package/dist/commands/query-graph.d.ts +11 -0
- package/dist/commands/query-graph.d.ts.map +1 -0
- package/dist/commands/query-graph.js +146 -0
- package/dist/commands/query-graph.js.map +1 -0
- package/dist/commands/raw.d.ts +14 -0
- package/dist/commands/raw.d.ts.map +1 -0
- package/dist/commands/raw.js +125 -0
- package/dist/commands/raw.js.map +1 -0
- package/dist/commands/session.d.ts +28 -0
- package/dist/commands/session.d.ts.map +1 -0
- package/dist/commands/session.js +144 -0
- package/dist/commands/session.js.map +1 -0
- package/dist/config.d.ts +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/dist/deep/dedupe.d.ts +14 -0
- package/dist/deep/dedupe.d.ts.map +1 -0
- package/dist/deep/dedupe.js +53 -0
- package/dist/deep/dedupe.js.map +1 -0
- package/dist/deep/extractor.d.ts +29 -0
- package/dist/deep/extractor.d.ts.map +1 -0
- package/dist/deep/extractor.js +125 -0
- package/dist/deep/extractor.js.map +1 -0
- package/dist/deep/graph.d.ts +55 -0
- package/dist/deep/graph.d.ts.map +1 -0
- package/dist/deep/graph.js +153 -0
- package/dist/deep/graph.js.map +1 -0
- package/dist/deep/index.d.ts +10 -0
- package/dist/deep/index.d.ts.map +1 -0
- package/dist/deep/index.js +10 -0
- package/dist/deep/index.js.map +1 -0
- package/dist/deep/keywords.d.ts +27 -0
- package/dist/deep/keywords.d.ts.map +1 -0
- package/dist/deep/keywords.js +293 -0
- package/dist/deep/keywords.js.map +1 -0
- package/dist/deep/rrf.d.ts +13 -0
- package/dist/deep/rrf.d.ts.map +1 -0
- package/dist/deep/rrf.js +23 -0
- package/dist/deep/rrf.js.map +1 -0
- package/dist/deep/session.d.ts +65 -0
- package/dist/deep/session.d.ts.map +1 -0
- package/dist/deep/session.js +197 -0
- package/dist/deep/session.js.map +1 -0
- package/dist/deep/simhash.d.ts +12 -0
- package/dist/deep/simhash.d.ts.map +1 -0
- package/dist/deep/simhash.js +56 -0
- package/dist/deep/simhash.js.map +1 -0
- package/dist/runCli.d.ts.map +1 -1
- package/dist/runCli.js +403 -135
- package/dist/runCli.js.map +1 -1
- package/package.json +6 -2
- package/sxng.config.example.json +1 -1
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SimHash - Locality-sensitive hashing for text deduplication
|
|
3
|
+
*/
|
|
4
|
+
export declare class SimHash {
|
|
5
|
+
hash(text: string): bigint;
|
|
6
|
+
similarity(a: bigint, b: bigint): number;
|
|
7
|
+
isDuplicate(a: string, b: string, threshold?: number): boolean;
|
|
8
|
+
private tokenize;
|
|
9
|
+
private stringHash;
|
|
10
|
+
private popCount;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=simhash.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simhash.d.ts","sourceRoot":"","sources":["../../src/deep/simhash.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,qBAAa,OAAO;IAChB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IA0B1B,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM;IAMxC,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,GAAE,MAAa,GAAG,OAAO;IAIpE,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,QAAQ;CAQnB"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SimHash - Locality-sensitive hashing for text deduplication
|
|
3
|
+
*/
|
|
4
|
+
export class SimHash {
|
|
5
|
+
hash(text) {
|
|
6
|
+
const normalized = text.toLowerCase().trim();
|
|
7
|
+
const tokens = this.tokenize(normalized);
|
|
8
|
+
if (tokens.length === 0)
|
|
9
|
+
return BigInt(0);
|
|
10
|
+
const vector = new Array(64).fill(0);
|
|
11
|
+
for (const token of tokens) {
|
|
12
|
+
const h = this.stringHash(token);
|
|
13
|
+
for (let i = 0; i < 64; i++) {
|
|
14
|
+
const bit = (h >> BigInt(i)) & BigInt(1);
|
|
15
|
+
vector[i] += bit === BigInt(1) ? 1 : -1;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
let simhash = BigInt(0);
|
|
19
|
+
for (let i = 0; i < 64; i++) {
|
|
20
|
+
if (vector[i] > 0) {
|
|
21
|
+
simhash |= BigInt(1) << BigInt(i);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return simhash;
|
|
25
|
+
}
|
|
26
|
+
similarity(a, b) {
|
|
27
|
+
const xor = a ^ b;
|
|
28
|
+
const distance = this.popCount(xor);
|
|
29
|
+
return 1 - distance / 64;
|
|
30
|
+
}
|
|
31
|
+
isDuplicate(a, b, threshold = 0.85) {
|
|
32
|
+
return this.similarity(this.hash(a), this.hash(b)) >= threshold;
|
|
33
|
+
}
|
|
34
|
+
tokenize(text) {
|
|
35
|
+
return text
|
|
36
|
+
.split(/\s+/)
|
|
37
|
+
.filter(t => t.length > 1);
|
|
38
|
+
}
|
|
39
|
+
stringHash(s) {
|
|
40
|
+
let hash = BigInt(0);
|
|
41
|
+
for (let i = 0; i < s.length; i++) {
|
|
42
|
+
hash = (hash << BigInt(5)) - hash + BigInt(s.charCodeAt(i));
|
|
43
|
+
hash &= BigInt('0xFFFFFFFFFFFFFFFF');
|
|
44
|
+
}
|
|
45
|
+
return hash;
|
|
46
|
+
}
|
|
47
|
+
popCount(n) {
|
|
48
|
+
let count = 0;
|
|
49
|
+
while (n !== BigInt(0)) {
|
|
50
|
+
count++;
|
|
51
|
+
n &= n - BigInt(1);
|
|
52
|
+
}
|
|
53
|
+
return count;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=simhash.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simhash.js","sourceRoot":"","sources":["../../src/deep/simhash.ts"],"names":[],"mappings":"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"}
|
package/dist/runCli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runCli.d.ts","sourceRoot":"","sources":["../src/runCli.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"runCli.d.ts","sourceRoot":"","sources":["../src/runCli.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAA+C,MAAM,cAAc,CAAC;AA8V3F,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA2Y5F"}
|