detect_smiley.rb
2.82 KB
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
#!/usr/bin/env ruby
require "rubygems"
class String
def include_positive_and_negative?
hpos = Hash.new(false)
hpos[":-)"] = true
hpos[":-))"] = true
hpos[":-)))"] = true
hpos[":)"] = true
hpos[":))"] = true
hpos[":)))"] = true
hpos[":-D"] = true
hpos[":-DD"] = true
hpos[":-DDD"] = true
hpos[":-p"] = true
hpos[":-pp"] = true
hpos[":-ppp"] = true
hpos[":-P"] = true
hpos[":-PP"] = true
hpos[":-PPP"] = true
hpos["^_^"] = true
hpos[";-)"] = true
hpos[";-))"] = true
hpos[";-)))"] = true
hpos[";)"] = true
hpos[";))"] = true
hpos[";)))"] = true
hpos["☺"] = true
hpos["❤"] = true
hpos["♥"] = true
hpos["♥♥♥♥"] = true
hpos["♥♥"] = true
hpos["♥♥♥"] = true
hpos["❤️"] = true
hpos["❤️❤️"] = true
hpos["❤️❤️❤️"] = true
hpos["♥️"] = true
hpos["♥️♥️"] = true
hpos["♥️♥️♥️"] = true
hpos["♥️♥️♥️♥️♥️"] = true
hneg = Hash.new(false)
hneg[":-("] = true
hneg[":-(("] = true
hneg[":-((("] = true
hneg[":("] = true
hneg[":(("] = true
hneg[":((("] = true
hneg[";-("] = true
hneg[";-(("] = true
hneg[";-((("] = true
hneg[";("] = true
hneg[";(("] = true
hneg[";((("] = true
pos = false
neg = false
ar = Array.new
l = split(" ")
l.each do |x|
pos = true if hpos[ x ] == true
neg = true if hneg[ x ] == true
if hpos[ x ] == false
if hneg[ x ] == false
ar.push( x )
end
end
end
return ar.join(" "), pos, neg
end
end
def union?(pos, neg)
if pos == true
if neg == true
return false
end
end
if pos == false
if neg == false
return false
end
end
return true
end
def launch
$stdin.each do |line|
line.chomp!
line = line.split("\t")
if line.size == 3
l, pos, neg = line[2].include_positive_and_negative?
if union?(pos, neg) == true
classe = "positive" if pos == true
classe = "negative" if neg == true
if l.split(" ").size > 5
line[1] = classe
line[2] = l
puts "#{line.join("\t")}"
end
end
end
end
end
def errarg
puts "Usage : ./programme.rb"
puts "Mickael Rouvier <mickael.rouvier@univ-avignon.fr>"
end
if ARGV.size == 0
launch
else
errarg
end