Blame view

bin/detect_smiley.rb 2.82 KB
362b552ee   Rouvier Mickael   upload system
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
  #!/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