Articolo di filatura con Spintax
La rotazione degli articoli è una tecnica di ottimizzazione dei motori di ricerca mediante la quale gli ottimizzatori dei motori di ricerca pubblicano una versione univoca dei contenuti pertinenti nelle directory degli articoli, nei siti Web 2.0 o in altre fonti per i backlink.
Occasionalmente viene utilizzato dagli autori di siti Web sui propri siti, ma di solito viene evitato perché la qualità dei contenuti trasmessi sarà inferiore a quella scritta a mano. La filatura funziona riscrivendo articoli esistenti o parti di articoli e sostituendo parole, frasi, frasi o persino interi paragrafi con un numero qualsiasi di versioni alternative per fornire una variazione leggermente diversa ad ogni giro.
Questo processo può essere completamente automatizzato o riscritto manualmente. Il tuo lavoro oggi sarà quello di creare un programma o una funzione che interpreti una stringa contenente Spintax , la sintassi con cui un programma legge le diverse opzioni disponibili. Di seguito è una stringa di esempio che utilizza Spintax:
{Hello|Hi there|Bonjour}, user! {What's up?|How are you?|Feeling alright?|I caught a fish!}
Come puoi vedere, le sezioni della stringa che devono essere "filate" sono racchiuse tra parentesi graffe, in cui le singole opzioni sono divise dal |carattere. Ecco alcune frasi di esempio che questo potrebbe produrre.
Hi there, user! What's up?
Hello, user! How are you?
Bonjour, user! Feeling alright?
Hello, user! What's up?
Hi there, user! I caught a fish!
Il tuo lavoro
La tua missione, se scegli di accettarlo, è quella di creare un programma o una funzione che accetta una stringa di input che può contenere o meno Spintax , quindi stampare 5 versioni della stringa, selezionando casualmente una delle scelte da ciascun blocco di opzioni. Puoi fare alcune ipotesi:
- Non sarà necessario gestire Spintax nidificato (
{This|is {an|one}|example}). - I
|,{e}caratteri non si verificano in qualsiasi altro luogo diverso all'interno di un blocco Spintax. - Non è necessario verificare se le 5 frasi di output sono distinte, purché il codice selezioni le opzioni utilizzando la funzione di numero casuale della lingua.
- È possibile supporre che l'input termini con una nuova riga.
Regole
test
1. {A|The|One} {quick|magnificent|charming|lucky|fast|super|cool} {gold|tan|yellow|white|brown|silver} {beaver|packrat|cat|lion|tiger|fox|dog|wolf} {consumed|ate|pilfered} my {pastry|strudel|cake}.
-------------------------------------------
One cool brown wolf consumed my pastry.
...(3 more here)...
The charming yellow beaver ate my cake.
-------------------------------------------
2. This sentence is valid, and happens to have no Spintax!
-------------------------------------------
This sentence is valid, and happens to have no Spintax!
...(3 more here)...
This sentence is valid, and happens to have no Spintax!
-------------------------------------------
3. {beg|get|ton|sun|bun|can|top|big}{2|3|4|5}{A|B|C|D|E|F|G}{2|3|4|5|6|7}{at|as|be|ex|hi|}{!|#|%}
-------------------------------------------
top2F2hi%
...(3 more here)...
big3E4ex#
Un quarto test può essere trovato qui.
Questo è code-golf , quindi vince il minor numero di byte.
{, |, }sta per essere trovato nella stringa di input è dove c'è Spintax.