New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

stri_rand_lipsum #77

Closed
gagolews opened this Issue Apr 28, 2014 · 2 comments

Comments

Projects
None yet
1 participant

@gagolews gagolews added this to the stringi-0.3 milestone May 18, 2014

@gagolews

This comment has been minimized.

Show comment
Hide comment
@gagolews

gagolews Oct 23, 2014

Owner

We need #98 for that

Owner

gagolews commented Oct 23, 2014

We need #98 for that

@gagolews

This comment has been minimized.

Show comment
Hide comment
@gagolews

gagolews Oct 26, 2014

Owner

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.
Owner

gagolews commented Oct 26, 2014

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.

@gagolews gagolews self-assigned this Oct 26, 2014

gagolews added a commit that referenced this issue Oct 26, 2014

@gagolews gagolews closed this Oct 26, 2014

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