-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtextprocessing.py
More file actions
35 lines (28 loc) · 1.23 KB
/
Copy pathtextprocessing.py
File metadata and controls
35 lines (28 loc) · 1.23 KB
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
import stringdist
import numpy as np
from db_connect import read_data, send_data
import stringdist as sd
from write_log import write_log,write_untrain
import pendulum
def find_distance(input_keyword):
distance_list = []
theshold = 0.9
timenow = pendulum.now('Asia/Bangkok')
keyword_list, intent_list = read_data('chatdata')
for compare_keyword in keyword_list:
distance = sd.levenshtein_norm(input_keyword,compare_keyword)
distance_list.append(distance)
neartest_idx = np.argmin(distance_list)
distance_value = min(distance_list)
if distance_value > theshold:
predicted_answer = 'ไม่เข้าใจครับ'
untrain =write_untrain(timenow,input_keyword,predicted_answer,distance_value)
send_data('untraindata',untrain)
log_data = write_log(timenow,input_keyword,predicted_answer,distance_value)
send_data('chatlog', log_data )
return predicted_answer
elif distance_value<=theshold:
predicted_answer = intent_list[neartest_idx]
log_data =write_log(timenow,input_keyword,predicted_answer,distance_value)
send_data('chatlog', log_data)
return predicted_answer