anonymousauthors commited on
Commit
f2ebfaa
1 Parent(s): 2a34161

Update secretlanguage.py

Browse files
Files changed (1) hide show
  1. secretlanguage.py +35 -40
secretlanguage.py CHANGED
@@ -34,89 +34,84 @@ if (document.readyState === "complete") {
34
  """
35
 
36
 
 
37
  import pandas as pd
38
 
39
  class ReactiveTables(param.Parameterized):
40
 
41
- name_ = param.String('Asian')
42
- record_start_index = param.Integer(1)
43
- record_stop_index = param.Integer(200)
44
 
45
  old_data = None
46
 
47
- @param.depends('name_', 'record_start_index', 'record_stop_index')
48
  def data(self):
49
- print('new name', self.name_)
50
- if len(self.name_) > 0:
51
- if ord(self.name_[0]) in list(range(48, 57)):
52
  file_name = 'num_dict.pkl'
53
- elif ord(self.name_[0]) in list(range(97, 122)) + list(range(65, 90)):
54
- file_name = f'{ord(self.name_[0])}_dict.pkl'
55
  else:
56
  file_name = 'other_dict.pkl'
57
  print(f'all_secret_langauge_by_fist/{file_name}')
58
  datas = pickle.load(open(f'all_secret_langauge_by_fist/{file_name}', 'rb'))
59
 
60
  flag = False
61
- if self.name_ in datas.keys():
62
- self.old_data = pd.DataFrame(datas[self.name_])
63
  flag = True
64
  return self.old_data, datas, flag
65
 
66
- @param.depends('name_')
67
- def summary(self):
68
- return self.data()[0].describe()
69
-
70
  # @param.depends('name_')
71
  # def summary(self):
72
  # return self.data()[0].describe()
73
 
74
- @param.depends('name_', 'record_start_index', 'record_stop_index')
75
  def table_ours(self):
76
  data, _, flag = self.data()
77
  if flag:
78
- return pn.pane.HTML(data[max(0, self.record_start_index - 1):
79
- min(min(self.record_stop_index, self.record_start_index + 2001), len(data) + 1)].to_html(
80
- classes=['example', 'panel-df']) + script,
 
 
 
81
  sizing_mode='stretch_width')
82
  else:
83
- return None
84
-
85
- @param.depends('name_', 'record_start_index', 'record_stop_index')
86
- def notification(self):
87
- _, datas, flag = self.data()
88
- return_ = pn.pane.HTML(f'<h1>Sorry. {self.name_} is not in the dictionary.</h1>' ,
89
- sizing_mode='stretch_width')
90
- if datas:
91
- if flag:
92
- _len = len(datas[self.name_]['tasks'])
93
- return_ = pn.pane.HTML(f'<h1>Found {self.name_}.</h1> <h2> {self.name_} has {_len} secret languages found by SecretFinding. Presenting the secret languages from {self.record_start_index} to {min(self.record_stop_index, _len)}.</h2>' ,
94
  sizing_mode='stretch_width')
95
- else:
96
- return_ = pn.pane.HTML('<h1>initing</h1>' , sizing_mode='stretch_width')
97
- return return_
 
 
 
 
 
 
 
 
 
 
98
 
99
 
100
  def panel(self):
101
- return pn.Row(
102
- pn.Param(self, name="Settings", width=300, sizing_mode="fixed"),
103
- pn.Column(
104
- self.notification,
105
  # "## Description", self.summary,
106
  # "## Table",
107
  self.table_ours,
108
  width=2000,
109
  # sizing_mode='stretch_height'
110
  )
111
- , sizing_mode="stretch_width"
112
- )
113
 
114
 
115
  component = ReactiveTables().panel()
116
 
117
  pn.template.FastListTemplate(site="ACL 23 Submission", title="Finding Secret Language of Language Models",
118
  main=[
119
- 'This page presents all secret languages discovered by our proposed SecretFinding algorithm on three multi-sentence datasets. To ensure optimal performance of this web application, at most 2000 entries can be displayed at a time. "Name" is the word for which you want to find secret languages. "Record start index" and "record stop index" are used to indicate the start and stop of the secret languages. For each secret language, we present the task where it was found, the original sentence (hypothesis / question / sentence 1), the replaced sentence, and the corresponding premise (in NLI) / text (in QA) / sentence 2 (in paraphrase).',
120
  component
121
  ]).servable()
122
 
 
34
  """
35
 
36
 
37
+
38
  import pandas as pd
39
 
40
  class ReactiveTables(param.Parameterized):
41
 
42
+ the_word_for_finding_secret_languages = param.String('Asian')
 
 
43
 
44
  old_data = None
45
 
46
+ @param.depends('the_word_for_finding_secret_languages')
47
  def data(self):
48
+ print('new name', self.the_word_for_finding_secret_languages)
49
+ if len(self.the_word_for_finding_secret_languages) > 0:
50
+ if ord(self.the_word_for_finding_secret_languages[0]) in list(range(48, 57)):
51
  file_name = 'num_dict.pkl'
52
+ elif ord(self.the_word_for_finding_secret_languages[0]) in list(range(97, 122)) + list(range(65, 90)):
53
+ file_name = f'{ord(self.the_word_for_finding_secret_languages[0])}_dict.pkl'
54
  else:
55
  file_name = 'other_dict.pkl'
56
  print(f'all_secret_langauge_by_fist/{file_name}')
57
  datas = pickle.load(open(f'all_secret_langauge_by_fist/{file_name}', 'rb'))
58
 
59
  flag = False
60
+ if self.the_word_for_finding_secret_languages in datas.keys():
61
+ self.old_data = pd.DataFrame(datas[self.the_word_for_finding_secret_languages])
62
  flag = True
63
  return self.old_data, datas, flag
64
 
 
 
 
 
65
  # @param.depends('name_')
66
  # def summary(self):
67
  # return self.data()[0].describe()
68
 
69
+ @param.depends('the_word_for_finding_secret_languages')
70
  def table_ours(self):
71
  data, _, flag = self.data()
72
  if flag:
73
+ all_secret_language = ' ,'.join([f'"{i}"' for i in set(list(data['secret languages']))]).replace('<s>', '[POS]')
74
+ all_examples = list(set(list('"' + old_data['original sentences'] + '" -> "' + old_data['replaced sentences'] + '"')))
75
+ samples = ' <br>'.join(all_examples[:10]).replace('<s>', '[POS]')
76
+ return pn.pane.HTML(
77
+ f'<h1>{self.the_word_for_finding_secret_languages}</h1><h1>all_secret_language</h1>{all_secret_language}<h1>10 Examples for replaced sentences</h1>{samples}',
78
+
79
  sizing_mode='stretch_width')
80
  else:
81
+ return pn.pane.HTML(f'<h1>Sorry. {self.the_word_for_finding_secret_languages} is not in the dictionary.</h1>' ,
 
 
 
 
 
 
 
 
 
 
82
  sizing_mode='stretch_width')
83
+
84
+ # @param.depends('name_', 'record_start_index', 'record_stop_index')
85
+ # def notification(self):
86
+ # _, datas, flag = self.data()
87
+ # return_ =
88
+ # if datas:
89
+ # if flag:
90
+ # _len = len(datas[self.name_]['tasks'])
91
+ # return_ = pn.pane.HTML(f'<h1>Found {self.name_}.</h1> <h2> {self.name_} has {_len} secret languages found by SecretFinding. Presenting the secret languages from {self.record_start_index} to {min(self.record_stop_index, _len)}.</h2>' ,
92
+ # sizing_mode='stretch_width')
93
+ # else:
94
+ # return_ = pn.pane.HTML('<h1>initing</h1>' , sizing_mode='stretch_width')
95
+ # return return_
96
 
97
 
98
  def panel(self):
99
+ return pn.Column(
100
+ pn.Param(self, name="", width=300, sizing_mode="stretch_width"),
101
+ # self.notification,
 
102
  # "## Description", self.summary,
103
  # "## Table",
104
  self.table_ours,
105
  width=2000,
106
  # sizing_mode='stretch_height'
107
  )
 
 
108
 
109
 
110
  component = ReactiveTables().panel()
111
 
112
  pn.template.FastListTemplate(site="ACL 23 Submission", title="Finding Secret Language of Language Models",
113
  main=[
114
+ "This page presents all secret languages discovered by our proposed SecretFinding algorithm on three multi-sentence datasets. To ensure optimal performance of this webapp, we only present 10 examples.",
115
  component
116
  ]).servable()
117