liuwei commited on
Commit
30a40c5
·
1 Parent(s): 9db1c97
Files changed (1) hide show
  1. app.py +20 -17
app.py CHANGED
@@ -1,5 +1,5 @@
1
  import streamlit as st
2
- from sentence_transformers import SentenceTransformer, torch_util
3
 
4
  def app():
5
  # 创建Streamlit应用程序
@@ -15,20 +15,21 @@ def app():
15
  st.session_state.inputs = []
16
  st.session_state.inputs_index = 0
17
 
18
- # 创建一个添加输入框的按钮
19
- add_input_button = st.button("添加一个待比较句子")
20
 
21
  with st.container():
22
  # 在容器中渲染已经存在的输入框列表
23
  for i in range(0, st.session_state.inputs_index):
24
  st.session_state.inputs[i]= st.text_input(f"请输入第 {i+1} 个句子", "", key=i)
25
 
26
- # 当用户点击按钮时往容器中添加新的输入框
27
- if add_input_button:
28
- i = st.session_state.inputs_index
29
- st.session_state.inputs.append(st.text_input(f"请输入第 {i+1} 个句子", "", key=i))
30
- # 自增输入框的key
31
- st.session_state.inputs_index += 1
 
 
 
32
 
33
  button_generate = st.button("计算")
34
  button_clear = st.button("清空")
@@ -36,32 +37,34 @@ def app():
36
  def transformer(sentences):
37
  model = SentenceTransformer('sentence-transformers/all-MiniLM-L6-v2', device="cpu")
38
  source_emb = model.encode(source_text, convert_to_tensor=True)
 
 
39
 
40
  cosin_dict = []
41
 
42
- for sent in sentences:
43
- sent_emb = model.encode(sent, convert_to_tensor=True)
44
- cosine_scores = torch_util.pairwise_cosine_similarity(source_emb, sent_emb)
45
- cosin_dict[sent] = cosine_scores
46
 
47
  sorted_dict = dict(sorted(cosin_dict.items(), key=lambda item: item[1],reverse = True))
48
  return sorted_dict
49
 
50
 
51
  if button_generate:
 
 
52
  # embeddings
53
- embeddings = transformer(st.session_state.inputs)
54
 
55
  # 显示生成的文本
56
- st.write(embeddings)
57
  #output_text.success(generated_text)
58
 
59
  if button_clear:
60
- for i in st.session_state.inputs:
61
- del st.session_state.inputs[i]
62
  st.session_state.inputs.clear()
63
  del st.session_state["inputs"]
64
  st.session_state.inputs_index = 0
 
 
65
 
66
  if __name__ == "__main__":
67
  # 运行应用程序
 
1
  import streamlit as st
2
+ from sentence_transformers import SentenceTransformer, util
3
 
4
  def app():
5
  # 创建Streamlit应用程序
 
15
  st.session_state.inputs = []
16
  st.session_state.inputs_index = 0
17
 
 
 
18
 
19
  with st.container():
20
  # 在容器中渲染已经存在的输入框列表
21
  for i in range(0, st.session_state.inputs_index):
22
  st.session_state.inputs[i]= st.text_input(f"请输入第 {i+1} 个句子", "", key=i)
23
 
24
+ # 创建一个添加输入框的按钮
25
+ add_input_button = st.button("添加一个待比较句子")
26
+
27
+ # 当用户点击按钮时往容器中添加新的输入框
28
+ if add_input_button:
29
+ i = st.session_state.inputs_index
30
+ st.session_state.inputs.append(st.text_input(f"请输入第 {i+1} 个句子", "", key=i))
31
+ # 自增输入框的key
32
+ st.session_state.inputs_index += 1
33
 
34
  button_generate = st.button("计算")
35
  button_clear = st.button("清空")
 
37
  def transformer(sentences):
38
  model = SentenceTransformer('sentence-transformers/all-MiniLM-L6-v2', device="cpu")
39
  source_emb = model.encode(source_text, convert_to_tensor=True)
40
+ sent_embs = model.encode(sentences, convert_to_tensor=True)
41
+ cos_sim = util.cos_sim(source_emb, sent_embs)
42
 
43
  cosin_dict = []
44
 
45
+ for i, cos in cos_sim:
46
+ cosin_dict[sentences[i]] = cos
 
 
47
 
48
  sorted_dict = dict(sorted(cosin_dict.items(), key=lambda item: item[1],reverse = True))
49
  return sorted_dict
50
 
51
 
52
  if button_generate:
53
+ st.write(st.session_state["inputs"])
54
+ pass
55
  # embeddings
56
+ #embeddings = transformer(st.session_state.inputs)
57
 
58
  # 显示生成的文本
59
+ #st.write(embeddings)
60
  #output_text.success(generated_text)
61
 
62
  if button_clear:
 
 
63
  st.session_state.inputs.clear()
64
  del st.session_state["inputs"]
65
  st.session_state.inputs_index = 0
66
+ source_text = ''
67
+ st.experimental_rerun()
68
 
69
  if __name__ == "__main__":
70
  # 运行应用程序