Skip to content

Instantly share code, notes, and snippets.

@yitsushi
Last active August 29, 2015 14:05
Show Gist options
  • Save yitsushi/3fe4ae32c1f9a52bb879 to your computer and use it in GitHub Desktop.
Save yitsushi/3fe4ae32c1f9a52bb879 to your computer and use it in GitHub Desktop.
var TEXT = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec accumsan mattis nibh, sit amet ultricies enim congue a. Pellentesque congue libero sit amet velit pulvinar feugiat. Etiam sagittis erat vel est lacinia, ut bibendum quam mattis. Vestibulum lacinia ante sem, sit amet convallis lorem elementum sit amet. Phasellus a fringilla orci, eget placerat sem. Curabitur tempus sed nibh a iaculis. Fusce ut sapien eu massa euismod elementum. Etiam nisi magna, tempus non dictum eu, feugiat eu lacus. Vivamus tempor lacus eget nisl vulputate dignissim. Donec ut tincidunt ipsum, ac convallis neque."
var soundex = function (s) {
var a = s.toLowerCase().split('')
f = a.shift(),
r = '',
codes = {
a: '', e: '', i: '', o: '', u: '',
b: 1, f: 1, p: 1, v: 1,
c: 2, g: 2, j: 2, k: 2, q: 2, s: 2, x: 2, z: 2,
d: 3, t: 3,
l: 4,
m: 5, n: 5,
r: 6
};
r = f + a.map(function (v, i, a) { return codes[v] })
.filter(function (v, i, a) {
return ((i === 0) ? v !== codes[f] : v !== a[i - 1]);
})
.join('');
return (r + '000').slice(0, 4).toUpperCase();
};
var a = TEXT.split(/ /)
.map(function(item) { return item.replace(/[^a-zA-Z]/g, "").toLowerCase(); })
.filter(function(c, position, self) { return c.length > 3 && self.indexOf(c) == position })
.sort()
.map(function(item) { return "('" + item + "', '" + soundex(item) + "', " + item.length + ", " + item.match(/[aeuio]/g).length + ")"; }).join(",\n ")
var query = "insert into TTT (`word`, `soundex`, `length`, `vowel_count`) values\n " + a + "\n;"
console.log(query);
@yitsushi
Copy link
Author

insert into TTT (`word`, `soundex`, `length`, `vowel_count`) values
  ('accumsan', 'A252', 8, 3),
  ('adipiscing', 'A312', 10, 4),
  ('amet', 'A530', 4, 2),
  ('ante', 'A530', 4, 2),
  ('bibendum', 'B153', 8, 3),
  ('congue', 'C520', 6, 3),
  ('consectetur', 'C522', 11, 4),
  ('convallis', 'C514', 9, 3),
  ('curabitur', 'C613', 9, 4),
  ('dictum', 'D235', 6, 2),
  ('dignissim', 'D252', 9, 3),
  ('dolor', 'D460', 5, 2),
  ('donec', 'D520', 5, 2),
  ('eget', 'E230', 4, 2),
  ('elementum', 'E455', 9, 4),
  ('elit', 'E430', 4, 2),
  ('enim', 'E550', 4, 2),
  ('erat', 'E630', 4, 2),
  ('etiam', 'E350', 5, 3),
  ('euismod', 'E253', 7, 4),
  ('feugiat', 'F230', 7, 4),
  ('fringilla', 'F652', 9, 3),
  ('fusce', 'F200', 5, 2),
  ('iaculis', 'I242', 7, 4),
  ('ipsum', 'I125', 5, 2),
  ('lacinia', 'L250', 7, 4),
  ('lacus', 'L220', 5, 2),
  ('libero', 'L160', 6, 3),
  ('lorem', 'L650', 5, 2),
  ('magna', 'M250', 5, 2),
  ('massa', 'M200', 5, 2),
  ('mattis', 'M320', 6, 2),
  ('neque', 'N200', 5, 3),
  ('nibh', 'N100', 4, 1),
  ('nisi', 'N200', 4, 2),
  ('nisl', 'N240', 4, 1),
  ('orci', 'O620', 4, 2),
  ('pellentesque', 'P453', 12, 5),
  ('phasellus', 'P242', 9, 3),
  ('placerat', 'P426', 8, 3),
  ('pulvinar', 'P415', 8, 3),
  ('quam', 'Q500', 4, 2),
  ('sagittis', 'S232', 8, 3),
  ('sapien', 'S150', 6, 3),
  ('tempor', 'T516', 6, 2),
  ('tempus', 'T512', 6, 2),
  ('tincidunt', 'T523', 9, 3),
  ('ultricies', 'U436', 9, 4),
  ('velit', 'V430', 5, 2),
  ('vestibulum', 'V231', 10, 4),
  ('vivamus', 'V152', 7, 3),
  ('vulputate', 'V413', 9, 4)
;

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment