从文本源生成带有 python 的随机评论
Generating random comments with python from a text source
我在维基百科上阅读了有关 Article spinning 的内容,我正在尝试创建一个从文本源执行相同操作的函数。
例如,文本源可以是:
{Hello|Hi|Howdy}{ ,I {really like|absolutely adore} your {picture|media|upload}|{, how are you?|, are you ok?}}
可以生成的一些随机评论:
Hello, I really like your picture
Hi, I absolutely adore your upload
Hi, how are you?
and so on...
我的主要问题是阅读括号中的单词。我目前正在使用文本正则表达式,但 python 只考虑第一个和最后一个括号,所以这就是我得到的:
Hello|Hi|Howdy}{ ,I {really like|absolutely adore} your {picture|media|upload}|{, how are you?|, are you ok?}
import random
list_a = ['Hello', 'Hi', 'Howdy']
list_b = ['really like', 'absolutely adore']
list_c = ['picture', 'upload']
word_a = random.choice(list_a)
word_b = random.choice(list_b)
word_c = random.choice(list_c)
print "{0}, I {1} your {2}.".format(word_a, word_b, word_c)
我自己做的
def pick_random_word(self, match):
words = match.group(1)
return random.choice(words.split("|"))
def write_comment(self, comment):
r = re.compile('{([^{}]*)}')
while True:
comment, n = r.subn(self.pick_random_word, comment)
if n == 0:
break
print(comment)
#USAGE: self.write_comment("{{so|totally} ugly|very {nice|bad}} {photo|media|upload} {:)||:D|<3}")
它将打印:
totally ugly photo
so ugly media :D
very bad photo <3
and so on...
我在维基百科上阅读了有关 Article spinning 的内容,我正在尝试创建一个从文本源执行相同操作的函数。
例如,文本源可以是:
{Hello|Hi|Howdy}{ ,I {really like|absolutely adore} your {picture|media|upload}|{, how are you?|, are you ok?}}
可以生成的一些随机评论:
Hello, I really like your picture
Hi, I absolutely adore your upload
Hi, how are you?
and so on...
我的主要问题是阅读括号中的单词。我目前正在使用文本正则表达式,但 python 只考虑第一个和最后一个括号,所以这就是我得到的:
Hello|Hi|Howdy}{ ,I {really like|absolutely adore} your {picture|media|upload}|{, how are you?|, are you ok?}
import random
list_a = ['Hello', 'Hi', 'Howdy']
list_b = ['really like', 'absolutely adore']
list_c = ['picture', 'upload']
word_a = random.choice(list_a)
word_b = random.choice(list_b)
word_c = random.choice(list_c)
print "{0}, I {1} your {2}.".format(word_a, word_b, word_c)
我自己做的
def pick_random_word(self, match):
words = match.group(1)
return random.choice(words.split("|"))
def write_comment(self, comment):
r = re.compile('{([^{}]*)}')
while True:
comment, n = r.subn(self.pick_random_word, comment)
if n == 0:
break
print(comment)
#USAGE: self.write_comment("{{so|totally} ugly|very {nice|bad}} {photo|media|upload} {:)||:D|<3}")
它将打印:
totally ugly photo
so ugly media :D
very bad photo <3
and so on...