欢迎访问宙启技术站
智能推送

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进行中文分词的一个简单例子。希望对你有帮助!