bert分词及词还原

import pandas as pd
from transformers import BertTokenizer
import re

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

# 读取Excel文件中的文本数据(假设在第一个sheet中)
file_path = 'Indonesia news overall.xlsx'
df = pd.read_excel(file_path, header=0)  # 使用第一行作为列名

# 合并标题和内容到一列
df['合并文本'] = df['标题'].astype(str) + ' ' + df['内容'].astype(str)

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

for text in df['合并文本'].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

# 删除合并文本列(如果不需要)
df.drop(columns=['合并文本'], inplace=True)

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

print("合并分词结果后的数据已保存至 Merged_Tokenized_News.xlsx")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值