单文档内容bert分词

import pandas as pd
from transformers import BertTokenizer
import re

# 加载BERT分词器
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')

# 读取Excel文件中的文本数据(假设在第一个sheet中),跳过第一行
file_path = 'Brunei.xlsx'
df = pd.read_excel(file_path, header=0, skiprows=[1])

# 对A列的文本进行BERT分词
tokenized_texts = []
original_texts = []  # 用于存储还原后的文本

for text in df['content'].values.tolist():
    tokens = tokenizer.tokenize(text)
    input_ids = tokenizer.convert_tokens_to_ids(tokens)

    # 将标记的ID转换回原始单词形式
    original_tokens = tokenizer.convert_ids_to_tokens(input_ids)

    # 去除特殊字符和标点符号
    cleaned_tokens = [token for token in original_tokens if
                      re.match(r'^\w+$', token) and token != '[CLS]' and token != '[SEP]']

    # 将分词结果合并为一个字符串
    merged_text = " ".join(cleaned_tokens)
    tokenized_texts.append(merged_text)
    original_texts.append(" ".join(original_tokens))

# 将分词结果添加为新的列
df['Tokenized_Content'] = tokenized_texts

# 将还原后的文本添加为新的列
df['Original_Content'] = original_texts

# 将带有分词结果的DataFrame写入新的Excel文件
output_file_path = 'Tokenized_News.xlsx'
df.to_excel(output_file_path, index=False)

print("分词结果已保存至 Tokenized_News.xlsx")

你可能感兴趣的:(bert,python,人工智能)