-
Notifications
You must be signed in to change notification settings - Fork 0
/
RndSentence.py
100 lines (80 loc) · 3.13 KB
/
RndSentence.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
import nltk
nltk.data.path.append('./nltk_data/')
from nltk.corpus import wordnet as wn
import random
from time import time
class RndSentence:
def __init__(self):
t0 = time()
print 'initalizing random word generator'
self.s_articles = ['A', 'The']
self.o_articles = ['a','the']
self.prepositions = ['of','in','to','for','with','on','at','from','by',
'about','as','into','like','through','after','over','out','around']
self.nouns = list(wn.all_synsets(wn.NOUN))
self.verbs = list(wn.all_synsets(wn.VERB))
self.adjectives = list(wn.all_synsets(wn.ADJ))
self.adverbs = list(wn.all_synsets(wn.ADV))
t1 = time()
runTime = t1-t0
print 'word list initalized in ' + str(runTime) + ' seconds'
def getVerb(self):
word = self.verbs[self.rndNum(self.verbs)]
verb = self.fetchWord(word)
#print 'verb: ' + verb
return str(verb)
def getAdjective(self):
word = self.adjectives[self.rndNum(self.adjectives)]
adjective = self.fetchWord(word)
#print 'adjective: ' + adjective
return str(adjective)
def getNoun(self):
word = self.nouns[self.rndNum(self.nouns)]
noun = self.fetchWord(word)
#print 'noun: ' + noun
return str(noun)
def getAdverb(self):
word = self.adverbs[self.rndNum(self.adverbs)]
adverb = self.fetchWord(word)
#print 'adverb: ' + adverb
return str(adverb)
def getPreposition(self):
rnd = self.rndNum(self.prepositions)
preposition = self.prepositions[rnd]
return str(preposition)
def getStartArticle(self):
rnd = self.rndNum(self.s_articles)
s_article = self.s_articles[rnd]
return str(s_article)
def getOtherArticle(self):
rnd = self.rndNum(self.o_articles)
o_article = self.o_articles[rnd]
return str(o_article)
def fetchWord(self, word):
word = word.name().partition('.')[0]
word = word.replace('_','')
#print 'word in fetchWord: ' + str(word)
return word
def rndNum(self,listToParse):
rnd = random.randint(0,len(listToParse)-1)
#print 'random number generated: ' + str(rnd)
return rnd
#Generates a sentence of the form:
#Article Noun Verb Preposition Article Noun
def sentence_N_V_P_N(self):
Tweet = self.getStartArticle() + ' ' + self.getNoun() + ' ' + self.getVerb() + 'ed ' + self.getPreposition() + ' ' + self.getOtherArticle() + ' ' + self.getNoun() + '.'
while (len(Tweet) > 35):
Tweet = self.getStartArticle() + ' ' + self.getNoun() + ' ' + self.getVerb() + 'ed ' + self.getPreposition() + ' ' + self.getOtherArticle() + ' ' + self.getNoun() + '.'
#print Tweet
return str(Tweet)
#print 'len: ' + str(len(Tweet))
def rndCriticReview(self):
Tweet = str(self.sentence_N_V_P_N())
Critic = 'Meow Review: \"' + Tweet +'\"'
print Critic
return str(Critic)
if __name__ == '__main__':
sentence = RndSentence()
i = 10
for x in range(0,i):
sentence.rndCriticReview()