gagolews / stringi

Fast and portable character string processing in R (with the Unicode ICU)
https://stringi.gagolewski.com/
Other
300 stars 45 forks source link

stri_rand_lipsum #77

Closed gagolews closed 9 years ago

gagolews commented 10 years ago

A "Lorem ipsum" generator

see: http://code.google.com/p/lorem-ipsum-generator/wiki/AboutLoremIpsumGenerator and http://code.google.com/p/nlipsum/

gagolews commented 9 years ago

We need #98 for that

gagolews commented 9 years ago

OK, a generator has been implemented. The current version is very simple: a base o ~190 latin words, selected randomly from a Zipf distribution. Number of words per sentence and sentences per paragraph follows a distretized & truncated normal distribution. No Markov chain modeling, just i.i.d word selection. But the function serves its purpose and may be used in string processing exercises.

Example:

> cat(sapply(stri_wrap(stri_rand_lipsum(10), 80, simplify=FALSE), stri_flatten, collapse="\n"), sep="\n\n")
Lorem ipsum dolor sit amet, amet sem fusce cras, finibus eget, dui sit eu.
Malesuada massa habitant tempus donec vitae at. Sit quis ac nam posuere eu.
Lobortis turpis neque sed ornare quis tellus tortor at mattis posuere. Et leo
nulla, non mi nibh. Leo lacus pellentesque ligula, a mauris in egestas platea.
Sed sociis sed nunc. Magna fames, nostra fusce, non, velit sed ultrices.
Tortor sagittis ridiculus vitae in, dictum phasellus in condimentum nec.

Ullamcorper sodales nec tempus maecenas nec duis neque lacus amet
netus. Venenatis aliquet felis sed. Sem pulvinar tempor lorem,
eget quisque mauris? Sed litora lacus at iaculis, sit ac bibendum
quis rhoncus purus. Aliquet iaculis mauris litora sed at praesent.
Cubilia adipiscing mauris torquent duis ut mauris nec erat? Eu amet
vestibulum condimentum sed egestas ornare rutrum curabitur montes.

Gravida ultrices, etiam fringilla senectus, vel. Per non facilisi non vulputate
sed, in. Id vitae luctus aliquet facilisi sodales ut ac inceptos rutrum
hendrerit eros. Lectus ipsum enim sagittis eget rhoncus lectus. Rutrum ut nec
ut vestibulum, luctus amet pretium. Sit, at ad cras, risus tellus sed amet?
Et eu nibh in est suspendisse sodales sed volutpat, curabitur. Pellentesque
urna ultricies lacus fames. Habitasse eros aliquet pharetra vivamus praesent
non purus interdum, ac. Amet vestibulum eros molestie lacinia per vel ac
fusce purus sodales. Per curabitur sed porta finibus dictumst massa eros ac.

In morbi sagittis at facilisis metus tincidunt. Massa non nisl aenean
venenatis magna. Convallis nunc at, felis faucibus malesuada. Interdum
ante dui ut eu, sodales tristique commodo himenaeos, nibh maximus
ac curabitur. Maecenas dis eleifend aptent finibus morbi pharetra ac
eu quisque et. Tellus sed in massa donec, dolor proin maecenas sed,
sodales, cubilia. Metus ipsum hac nisl et montes. Ultricies mauris
mollis. Himenaeos accumsan mus egestas et potenti amet natoque in.

In vel nec sociis massa sed amet. Himenaeos dolor condimentum vel
orci. Neque finibus et quam nec sed amet ad amet laoreet. Vivamus
finibus ut porttitor, sed et. Semper blandit malesuada duis. Per
diam aliquam pulvinar felis, nascetur erat sagittis in eget fermentum
scelerisque ipsum. Ipsum vel condimentum phasellus gravida, sociis
tortor non. Nisl dolor lacinia facilisis hendrerit, diam ac et non.

Cras pellentesque metus in urna eleifend at at diam. Quis sapien feugiat
scelerisque quis, donec. Lacus donec efficitur ipsum himenaeos. Venenatis
mus. Eu, ut ut purus purus, odio aliquam porttitor sociosqu. Pulvinar
pellentesque nibh mi dictumst. Potenti neque ac purus magna lorem tempor dis eu.

Egestas varius ad lorem lobortis lorem? Euismod non litora primis tempor
est nam nec et? Vitae sem, integer. Sed morbi. Class nullam penatibus magna.
Tellus erat, est, lacinia, varius ac sed, eget lectus. Mollis ut velit duis
in litora condimentum egestas, nulla ut sed. Torquent blandit ac odio. Ut,
ut laoreet sed sit lectus. Non pellentesque commodo aliquet vestibulum.

Pulvinar, in mus eros, ac dolor ut tincidunt sit adipiscing. A pellentesque,
vel a euismod sed, at eget. Sit cursus nec malesuada maximus ipsum. Tempor
ut vel praesent in magna faucibus. Donec convallis pellentesque mauris ex
quisque, sed pellentesque, in posuere. Sed, felis conubia rutrum, sociis lacus
suscipit, dignissim pretium at pulvinar! Ac, neque tempor tortor volutpat
nec iaculis, nec duis aliquam congue lectus molestie. Sed nulla a porttitor
consectetur egestas nec. Ipsum ut eros hac urna interdum et, sit. Mus curabitur
lacinia ultrices egestas est dignissim cubilia ac, sit nec porta nisl.

Et cras nunc in habitant, tincidunt. In nec himenaeos, consequat luctus
turpis rutrum tempus urna consequat nec, libero. Vel, a netus tellus sit eu
eros tristique tincidunt, cum ac ac. Eu sed, tellus, aliquam ac, pellentesque
egestas. Ligula est in sociosqu sem donec natoque elementum mus massa magnis.
Ut, leo ligula, nisl, lorem, semper tellus. Placerat neque ligula euismod
nisi consequat est lobortis. Aliquam cras libero porta elementum. Vitae, nec
convallis hendrerit sit ut a. Orci ac elementum nisi curae est. Phasellus
ultricies ac tincidunt proin efficitur nibh dictum sed duis turpis pellentesque
habitasse. Litora mi sed aptent ipsum nec vel cursus. Nec quis aliquet hac
vestibulum in vel vitae maecenas. Sed luctus sapien nec eu nibh ultricies
efficitur placerat a scelerisque? Erat, cum convallis nec sed. Tortor nisi
sagittis sit netus, amet placerat et donec maecenas metus interdum consectetur.

Vehicula rutrum tincidunt donec class porta dui suscipit fermentum, curae.
Tortor adipiscing facilisi, platea tempus sapien et fermentum sapien, purus leo.
Et in blandit nascetur. Lectus quis pharetra fermentum mauris curabitur natoque
sociis dapibus congue. At lorem in volutpat orci, justo eleifend eros laoreet
enim imperdiet. Eu, sed, ut, natoque velit parturient sit, sed tempus. Placerat
nullam nunc vitae consectetur varius egestas senectus, nec justo ridiculus.