Commit 27eeac2a authored by 赵威's avatar 赵威

write data to diary

parent 6cd1c997
...@@ -10,7 +10,7 @@ import numpy as np ...@@ -10,7 +10,7 @@ import numpy as np
from bert_serving.client import BertClient from bert_serving.client import BertClient
from utils.cache import redis_client_db from utils.cache import redis_client_db
from utils.es import get_diary_info_from_es from utils.es import get_diary_info_from_es
from utils.files import MODEL_PATH, DATA_PATH from utils.files import DATA_PATH, MODEL_PATH
def save_result(): def save_result():
...@@ -18,31 +18,30 @@ def save_result(): ...@@ -18,31 +18,30 @@ def save_result():
index_path = os.path.join(MODEL_PATH, "faiss_diary_similarity.index") index_path = os.path.join(MODEL_PATH, "faiss_diary_similarity.index")
faiss_index = faiss.read_index(index_path) faiss_index = faiss.read_index(index_path)
print(faiss_index)
count = 0
with open(os.path.join(DATA_PATH, "diary_similarity.log"), "w") as f: for item in get_diary_info_from_es(["id", "answer", "content_level"]):
count = 0 count += 1
for item in get_diary_info_from_es(["id", "answer", "content_level"]): id = int(item["_id"])
count += 1 content = item["_source"]["answer"]
id = int(item["_id"]) content_level = str(item["_source"]["content_level"])
content = item["_source"]["answer"] try:
content_level = str(item["_source"]["content_level"]) emb = np.array([bc.encode([content]).tolist()[0]]).astype("float32")
try: D, I = faiss_index.search(emb, 10)
emb = np.array([bc.encode([content]).tolist()[0]]).astype("float32") distances = D.tolist()[0]
D, I = faiss_index.search(emb, 10) ids = I.tolist()[0]
distances = D.tolist()[0] res = []
ids = I.tolist()[0] for (index, i) in enumerate(distances):
res = [] tmp_id = ids[index]
for (index, i) in enumerate(distances): if i <= 1.0 and tmp_id != id:
tmp_id = ids[index] res.append(str(tmp_id))
if i <= 1.0 and tmp_id != id: if res:
res.append(str(tmp_id)) data = "{}:{}:{}".format(content_level, str(id), ",".join(res))
if res: print(data)
data = "{}:{}:{}".format(content_level, str(id), ",".join(res)) except Exception as e:
print(data) print(e)
f.write(data) print("done")
except Exception as e:
print(e)
if __name__ == "__main__": if __name__ == "__main__":
# bc = BertClient("172.16.44.82", check_length=False) # bc = BertClient("172.16.44.82", check_length=False)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment