Python中使用BERT进行中文分词
发布时间:2023-12-26 05:09:02
使用BERT进行中文分词可以通过在transformers库中调用预训练的BERT模型实现。下面是一个使用例子,包括加载BERT模型、进行中文分词和输出结果。
首先,确保已经安装了transformers库。可以使用pip命令进行安装:
pip install transformers
然后,导入需要的库:
from transformers import BertTokenizer
接下来,加载BERT的tokenizer。我们使用哈工大发布的BERT-Chinese模型,可以通过指定BertTokenizer.from_pretrained()方法的参数'bert-base-chinese'来加载模型:
tokenizer = BertTokenizer.from_pretrained('bert-base-chinese')
接下来,定义一个中文句子作为输入。例如:
sentence = '我喜欢自然语言处理。'
然后,使用tokenizer对输入进行编码:
encoded_inputs = tokenizer.encode_plus(
sentence,
add_special_tokens=True,
return_attention_mask=True,
return_tensors='pt'
)
这里使用的是encode_plus()方法,它会对输入进行编码,并返回编码后的结果。add_special_tokens=True表示在输入句子的开头和结尾添加特殊的标记,以便BERT模型正确处理。return_attention_mask=True表示返回注意力掩码,用于标识每个输入token是否应该被注意。return_tensors='pt'表示返回PyTorch张量。
最后,对编码后的结果进行解码,以得到分词的结果:
decoded_outputs = tokenizer.convert_ids_to_tokens(encoded_inputs['input_ids'][0])
encoded_inputs['input_ids']返回的是输入句子的编码序列。通过convert_ids_to_tokens()方法可以将编码序列转换为分词结果。
最后,输出分词结果:
print(decoded_outputs)
完整的代码如下:
from transformers import BertTokenizer
tokenizer = BertTokenizer.from_pretrained('bert-base-chinese')
sentence = '我喜欢自然语言处理。'
encoded_inputs = tokenizer.encode_plus(
sentence,
add_special_tokens=True,
return_attention_mask=True,
return_tensors='pt'
)
decoded_outputs = tokenizer.convert_ids_to_tokens(encoded_inputs['input_ids'][0])
print(decoded_outputs)
以上就是使用BERT进行中文分词的一个简单例子。希望对你有帮助!
