python - 尽管导入了所有包,Bert Tokenizer 仍无法正常工作。对此有新的语法更改吗?
问题描述
尝试为 Bert 运行标记器,但我不断收到错误消息。任何人都可以帮助我哪里出错。
FullTokenizer = bert.bert_tokenization.FullTokenizer
bert_layer = hub.KerasLayer("https://tfhub.dev/tensorflow/bert_en_uncased_L-12_H-768_A-12/1", trainable=False)
vocab_file = bert_layer.resolved_object.vocab_file.asset_path.numpy()
do_lower_case = bert_layer.resolved_object.do_lower_case.numpy()
tokenizer = FullTokenizer(vocab_file, do_lower_case)
错误:()中的 AttributeError Traceback(最近一次调用最后一次)----> 1 FullTokenizer = bert.bert_tokenization.FullTokenizer 2 bert_layer = hub.KerasLayer(“ https://tfhub.dev/tensorflow/bert_en_uncased_L-12_H-768_A- 12/1 ", 3 可训练=假) 4 vocab_file = bert_layer.resolved_object.vocab_file.asset_path.numpy() 5 do_lower_case = bert_layer.resolved_object.do_lower_case.numpy()
AttributeError:模块“bert”没有属性“bert_tokenization”
以下所有内容均已导入以供参考。
!pip install bert-for-tf2
!pip install sentencepiece
!pip install bert-tensorflow
!pip install tensorflow==2.0
try:
%tensorflow_version 2.x
except Exception:
pass
import tensorflow as to
import tensorflow_hub as hub
from tensorflow.keras import layers
import bert
from bert import tokenization
解决方案
我之前也遇到过类似的情况。
尝试在运行脚本/笔记本的目录中查找名为“bert”的文件夹。删除该文件夹或将其重命名为“bert”以外的名称。很有可能当您导入 bert 时,它会尝试访问该文件夹,而不是您安装在 Python 站点包中的 bert-for-tf2 文件夹。
如果仍然不起作用,请尝试
从 bert 导入标记化
推荐阅读
- javascript - 从 React 中 JSON 文件的空值中删除 Highcharts 柱形图中的间隙
- python-3.x - NetworkX:在 DAG 中找到最长的路径,返回最大的所有关系
- python - 如何根据 Pyspark 中其他列的值增加/减少列
- assembly - MIPS 汇编链接器练习
- java - Java 安装在 MacOS 上的 2 个不同目录中
- java - 我如何将这个复杂的字符串拆分成一个字符串数组?
- java - 在 espresso 中运行测试套件之前,我需要执行一些 SQL 文件
- powershell - 执行使用 Chocolatey 的 Powershell 脚本的试运行
- swift - 领域获取已保存记录的 ID
- azure - 如何将 Azure 中的 Azure RM 资源与 EA 门户中的计费信息结合起来?