dream

Форк
0
63 строки · 1.6 Кб
1
#!/usr/bin/env python
2

3
import os
4
import json
5
import tensorflow as tf
6
import tensorflow_hub as hub
7
import numpy as np
8
from utils import cosine_similarity_debug
9

10

11
INTENT_DATA_PATH = "./data/intent_data.json"
12

13
MODEL_PATH = os.environ.get("USE_MODEL_PATH", None)
14
if MODEL_PATH is None:
15
    MODEL_PATH = "https://tfhub.dev/google/universal-sentence-encoder/1"
16

17
TFHUB_CACHE_DIR = os.environ.get("TFHUB_CACHE_DIR", None)
18
if TFHUB_CACHE_DIR is None:
19
    os.environ["TFHUB_CACHE_DIR"] = "../tfhub_model"
20

21
PHRASES = [
22
    "Okay",
23
    "Okay, Alexa",
24
    "Bye, Alexa",
25
    "Alexa, bye",
26
    "Goodbye, Alexa",
27
    "Goodbye, bot",
28
    "Bot, goodbye",
29
    "Bye, bot",
30
    "Have a nice one",
31
    "Hello",
32
    "Hi",
33
    "Hello, bot",
34
    "Hello, Alexa",
35
    "Hi, bot",
36
    "Hi, Alexa",
37
    "Hey, Alexa",
38
    "Okay, have a good day!",
39
    "Have a good day, Alexa",
40
    "Okay, Alexa, have a good day",
41
]
42
INTENT = "exit"
43

44

45
def main():
46
    model = hub.Module(MODEL_PATH)
47

48
    intent_data = json.load(open(INTENT_DATA_PATH))[INTENT]
49
    embedded_phrases = model(PHRASES)
50
    intent_phrases = np.array(intent_data["phrases"])
51
    threshold = intent_data["threshold"]
52
    intent_embeddings = tf.constant(intent_data["embeddings"], dtype=tf.float32)
53
    sim = cosine_similarity_debug(embedded_phrases, intent_embeddings)
54
    with tf.compat.v1.Session() as sess:
55
        sess.run([tf.compat.v1.global_variables_initializer(), tf.compat.v1.tables_initializer()])
56
        values, similiarity_ids = sess.run(sim)
57

58
    for u in list(zip(PHRASES, intent_phrases[similiarity_ids], values, [threshold] * len(PHRASES))):
59
        print(u)
60

61

62
if __name__ == "__main__":
63
    main()
64

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.