aboutsummaryrefslogtreecommitdiffhomepage
path: root/main
diff options
context:
space:
mode:
authorMarvin Borner2018-05-27 17:43:11 +0200
committerMarvin Borner2018-05-27 17:43:11 +0200
commitd7eaa11858b7877ac0787e4d58a22e436f79f6da (patch)
treea5a15f332b73a70a4b20fcebede5418dcc2e25bc /main
parent2976f5ee4fed771d7eed8e4dfc790aa970840a9e (diff)
Further implementation
Diffstat (limited to 'main')
-rw-r--r--main/app/sprinkles/core/assets/SiteAssets/js/asemica.js83
-rw-r--r--main/app/sprinkles/core/assets/SiteAssets/js/asemica.pl2
2 files changed, 58 insertions, 27 deletions
diff --git a/main/app/sprinkles/core/assets/SiteAssets/js/asemica.js b/main/app/sprinkles/core/assets/SiteAssets/js/asemica.js
index 3f4de45..ec30cdb 100644
--- a/main/app/sprinkles/core/assets/SiteAssets/js/asemica.js
+++ b/main/app/sprinkles/core/assets/SiteAssets/js/asemica.js
@@ -5,18 +5,36 @@ function asemica(PlainText, CorpusUrl) {
.then(function (response) {
response.text().then(function (response) {
CorpusString = response;
- Tokens = tokenize_corpus(CorpusString);
- Transitions = generate_transitions(Tokens);
+ Tokens = TokenizeCorpus(CorpusString);
+ Transitions = GenerateTransitions(Tokens);
+ if (!VerifyExists(Transitions)) {
+ throw new Error("Please choose another text.");
+ } else {
+ Encode("LOL", Transitions, Tokens);
+ }
console.log(Transitions);
});
});
+
+ /*
+ * Encodes an input file using the transition matrix calculated from the corpus
+ */
+ function Encode(Input, Transitions, Tokens) {
+ var Nibbles = [4, 4, 3, 2, 15, 2, 3, 2, 4, 4, 0, 4, 5, 0];
+ var Token = Tokens[Math.round(Math.random() * (Tokens.length - 1) + 1)];
+
+ while (Nibbles.length) {
+
+ }
+ }
+
/*
* Breaks the input corpus into a series of processable "tokens"
*
* Example output: ['The','Project','Gutenberg', ... ,'about','new','eBooks']
*/
- function tokenize_corpus(CorpusString) {
+ function TokenizeCorpus(CorpusString) {
// Clean up things
const StrippedCorpus = CorpusString
.replace(/\n/g, " ") // newlines
@@ -52,38 +70,51 @@ function asemica(PlainText, CorpusUrl) {
* }
* ...
*/
- function generate_transitions(Tokens) {
+ function GenerateTransitions(Tokens) {
Transitions = {};
-
- Tokens.forEach(function(Token, Index) {
+
+ Tokens.forEach(function (Token, Index) {
var ObjectKey = Token.toLowerCase();
- if (Transitions[ObjectKey] === undefined) { // Will run one time -> initialize
- Transitions[ObjectKey] = {};
- Transitions[ObjectKey]["seen"] = 1;
- Transitions[ObjectKey]["exits"] = {};
- Transitions[ObjectKey]["door"] = [];
- if (Tokens[Index + 1] !== undefined) {
- Transitions[ObjectKey]["exits"][Tokens[Index + 1]] += 1;
- }
- Transitions[ObjectKey]["token"] = ObjectKey;
- } else { // Will run n times
- var CurrentSeenValue = Transitions[ObjectKey]["seen"];
- Transitions[ObjectKey]["seen"] = CurrentSeenValue + 1;
+ if (!(ObjectKey in Transitions)) Transitions[ObjectKey] = {};
+ if (!("exits" in Transitions[ObjectKey])) Transitions[ObjectKey]["exits"] = {};
+
+ Transitions[ObjectKey]["seen"] += 1;
+ Transitions[ObjectKey]["token"] = ObjectKey;
+ if (Tokens[Index + 1] !== undefined) {
+ Transitions[ObjectKey]["exits"][Tokens[Index + 1]]++;
}
});
- Transitions.forEach(function(Transition) {
- var Exits = Transitions[Transition]["exits"].sort();
- var Found = {};
+ // Calculate the exits and doors
+ for (var Transition in Transitions) {
+ var Exits = Transitions[Transition]["exits"];
+ var Found = {};
+ Transitions[Transition]["door"] = [];
- Exits.forEach(function(Exit) {
+ for (var Exit in Exits) {
+ if (!(Exit.toLowerCase() in Found)) Transitions[Transition]["door"].push(Exit.toLowerCase());
+ Found[Exit.toLowerCase()] = 1;
+ }
- });
+ Transitions[Transition]["doors"] = Transitions[Transition]["door"].length;
+ if (Transitions[Transition]["doors"] > 15) Transitions[Transition]["meaningful"] = 1;
+ }
+ return Transitions;
+ }
- });
+ /*
+ * Returns whether this corpus will work well as an encoding or decoding medium
+ */
+ function VerifyExists(Transitions) {
+ var Count = 0;
- return Transitions;
+ for (var Key in Transitions) {
+ if (Transitions[Key]["doors"] > 15) {
+ Count++;
+ }
+ }
+ return Count >= 7;
}
-} \ No newline at end of file
+}
diff --git a/main/app/sprinkles/core/assets/SiteAssets/js/asemica.pl b/main/app/sprinkles/core/assets/SiteAssets/js/asemica.pl
index c321935..9dfe9a5 100644
--- a/main/app/sprinkles/core/assets/SiteAssets/js/asemica.pl
+++ b/main/app/sprinkles/core/assets/SiteAssets/js/asemica.pl
@@ -209,7 +209,7 @@ if ($output_file) {
close('OUTPUT');
}
else {
- print $output_text;
+ #print $output_text;
}