【发布时间】:2021-12-02 12:00:41
【问题描述】:
我正在研究意图分类问题,需要您的帮助。
我微调了一个用于文本分类的 BERT 模型。在一个小数据集上对其进行训练和评估,以检测五个意图。我使用了以下代码Intent Recognition with BERT using Keras and TensorFlow 2 它工作正常! 我已经保存了模型,以便以后可以使用,而无需在以后再次重新训练模型。
# Save the entire model as a SavedModel.
!mkdir -p saved_model
model.save('saved_model/intentclassifiermodel')
并压缩并下载它以单独使用它
!zip -r saved_model.zip saved_model/
现在,我正在尝试使用此模型来预测意图识别。为此,我创建了另一个 google colab notebook 并加载了模型
from google.colab import drive
drive.mount('/content/gdrive')
!pip install tensorflow==2.2
!pip install bert-for-tf2 >> /dev/null
import bert
from tensorflow import keras
model = keras.models.load_model('/content/gdrive/MyDrive/NLPMODELS/saved_model/intentclassifiermodel')
model.summary()
模型加载成功,现在我要预测。为此,我使用以下代码 sn-p(它与基本代码中的代码相同)
sentences = [
"are you a bot?",
"how to create a bot"
]
pred_tokens = map(tokenizer.tokenize, sentences)
pred_tokens = map(lambda tok: ["[CLS]"] + tok + ["[SEP]"], pred_tokens)
pred_token_ids = list(map(tokenizer.convert_tokens_to_ids, pred_tokens))
pred_token_ids = map(lambda tids: tids +[0]*(data.max_seq_len-len(tids)),pred_token_ids)
pred_token_ids = np.array(list(pred_token_ids))
predictions = model.predict(pred_token_ids).argmax(axis=-1)
for text, label in zip(sentences, predictions):
print("text:", text, "\nintent:", classes[label])
print()
**但是,此代码失败,因为我不确定如何在此处访问标记器。 **
你能帮我如何获得分词器吗?
感谢和问候, 罗希特·达米亚
【问题讨论】:
-
@AloneTogether 谢谢,但似乎答案已经过时且与今天无关。如果我错了,请纠正我。
-
你试过接受的答案吗?
-
@AloneTogether 所以我们需要两个资产 - 模型文件夹和 tokenizer.pickle 文件吗?我认为该模型将拥有我们需要的一切。
-
@AloneTogether 谢谢!我可以让它工作!
标签: python tensorflow keras tokenize bert-language-model