Comments (4)
from compromise.
@spencermountain - I have already seen this. I know it goes through that plus LZMA. But I didn't know if it when further with JSON-Schema Key Compression. Again - please re-look over my suggestions. (I have previously played with your compression library month's prior & something similar to increase compression even further)
from compromise.
@spencermountain - not trying to piss you off. But please see below.
function compressLexicon(lexicon) {
const compressedLexicon = {};
const tagMap = {}; // Map for tracking assigned numbers for each tag
let tagCounter = 1; // Counter for assigning numbers to tags
const tagSchema = {}; // JSON schema for tag values
for (const word in lexicon) {
const tag = lexicon[word];
if (Array.isArray(tag)) {
const compressedTags = [];
for (const t of tag) {
if (!tagMap.hasOwnProperty(t)) {
// Assign a new number to the tag
tagMap[t] = `Key${tagCounter}`;
tagSchema[tagMap[t]] = t; // Store original tag value
tagCounter++;
}
compressedTags.push(tagMap[t]);
}
compressedLexicon[word] = compressedTags;
} else {
if (!tagMap.hasOwnProperty(tag)) {
// Assign a new number to the tag
tagMap[tag] = `Key${tagCounter}`;
tagSchema[tagMap[tag]] = tag; // Store original tag value
tagCounter++;
}
compressedLexicon[word] = tagMap[tag];
}
}
return { compressedLexicon, tagSchema };
}
function decompressLexicon(compressedLexicon, tagSchema) {
const decompressedLexicon = {};
for (const word in compressedLexicon) {
const tag = compressedLexicon[word];
if (Array.isArray(tag)) {
const decompressedTags = [];
for (const t of tag) {
decompressedTags.push(tagSchema[t] || t);
}
decompressedLexicon[word] = decompressedTags;
} else {
decompressedLexicon[word] = tagSchema[tag] || tag;
}
}
return decompressedLexicon;
}
// Example lexicon
const originalLexicon = {
House: ['#Noun'],
apple: "Fruit",
toronto: "#Noun",
"house of": "#Noun",
Hello: ['#Verb'],
};
// Compress the lexicon
const { compressedLexicon, tagSchema } = compressLexicon(originalLexicon);
console.log("Compressed Lexicon:", compressedLexicon);
console.log("Tag Schema:", tagSchema);
// Decompress the lexicon
const decompressedLexicon = decompressLexicon(compressedLexicon, tagSchema);
console.log("Decompressed Lexicon:", decompressedLexicon);
Then apply efrt
& LZMA
.
from compromise.
@spencermountain - don't mean to mention / blow your issues again. But I refered / thought the above might be a good approach for doing / using these rules
from compromise.
Related Issues (20)
- Apostrophe "s" disambiguation issue with search query style sentences HOT 7
- Query: Does Compromise.js compile RegExes from match-syntax? HOT 1
- Get .terms() but keep hyphenated strings (similar to .hyphenated() ) HOT 1
- Using .freeze() in nlp.plugin()? HOT 11
- JSON Speed HOT 2
- Tagging mixed number as #Value HOT 5
- Feature request: Logical operations in match HOT 2
- [Issue]: Various common nouns tagged as proper noun. HOT 6
- True Casing HOT 10
- [Improvements]: Add .toLowerCase() API to various functions. HOT 1
- [Issue]: Gov Rule & Possible Other's Needs Improved. HOT 5
- [Issue]: "My favorite time of the year" in .nouns() response HOT 3
- `.prepend()` removes frozen tags for acronyms HOT 2
- Improve TypeScript DX by reducing usage of "any" HOT 1
- NFD form combining characters not picked up as part of word HOT 3
- Feature: .slashes() tokenize transform HOT 6
- Geedy tag matching and punctuation HOT 2
- [Feature Request]: Flesch–Kincaid Function HOT 6
- "to" is a preposition and not a conjuction HOT 1
- Verb is mistakenly parsed as a noun. HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from compromise.