liuwei commited on
Commit
8428b8e
1 Parent(s): c96d3e8
Files changed (2) hide show
  1. app.py +60 -0
  2. requirements.txt +2 -0
app.py ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ from sentence_transformers import SentenceTransformer, util
3
+
4
+ def app():
5
+ # 创建Streamlit应用程序
6
+
7
+ st.title("对比句子的相似度")
8
+
9
+ source_text = st.text_input("源句子", value="")
10
+
11
+ st.write("待比较的句子:")
12
+
13
+ if "inputs" not in st.session_state:
14
+ # 创建一个空列表来存储输入框列表
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
+
35
+ def transformer(sentences):
36
+ model = SentenceTransformer('sentence-transformers/all-MiniLM-L6-v2', device="cpu")
37
+ source_emb = model.encode(source_text, convert_to_tensor=True)
38
+
39
+ cosin_dict = []
40
+
41
+ for sent in sentences:
42
+ sent_emb = model.encode(sent, convert_to_tensor=True)
43
+ cosine_scores = util.cosine_similarity(source_emb, sent_emb)
44
+ cosin_dict[sent] = cosine_scores
45
+
46
+ sorted_dict = dict(sorted(cosin_dict.items(), key=lambda item: item[1],reverse = True))
47
+ return sorted_dict
48
+
49
+
50
+ if button_generate:
51
+ # embeddings
52
+ embeddings = transformer(st.session_state.inputs)
53
+
54
+ # 显示生成的文本
55
+ st.write(embeddings)
56
+ #output_text.success(generated_text)
57
+
58
+ if __name__ == "__main__":
59
+ # 运行应用程序
60
+ app()
requirements.txt ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ streamlit
2
+ sentence_transformers