对复旦语料库的预处理

本文档详细介绍了对复旦语料库的预处理过程,包括删除重复文档、编码转换、文本过滤等步骤,旨在解决GBk编码问题、重复文档和不完整内容等瑕疵,以提升后续文本处理的准确性。
摘要由CSDN通过智能技术生成

在感谢复旦语料库整理人员辛勤劳动的同时,也要指出其工作上的瑕疵。

  1. 采用了gbk编码而不是UTF-8,这导致大多Linux用户不能直接使用。
  2. 语料库包含训练集和测试集,分别包含9000多个文档,却分别有近1500个文档是重复的。
  3. 训练集和测试集中的C35-Law中的部分文件是已经经过分词处理了的(分词结果很差),且部分又不是采用的GBK编码(这给编码转换工作带来麻烦)。
  4. 有些文章只有文章头部,而没有实际的内容。

step1.下载复旦语料库的训练集测试集。解压。

step2.分别删除train和answer文件夹下的C35-Law文件夹。

step3.使用FindDupFile工具分别找到train和answer文件夹的重复文件,删除之。

step4.使用iconv.exe工具把文件从gbk编码转换到utf-8编码。

step5.为提高文本分类精度,删除所有长度小于500的文档。

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;

public class DelSmallText {
	public void delSmallText(File srcFile){
		if(srcFile.isDirectory()){
			File[] childFiles=srcFile.listFiles();
			for(File child:childFiles){
				delSmallText(child);
			}
		}
		else if(srcFile.isFile()){
			StringBuffer content=new StringBuffer();
			try{
				FileReader fr=new FileReader(srcFile);
				BufferedReader br=new BufferedReader(fr);
				String line;
				while((line=br.readLine())!=nul
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
BERT模型对语料库预处理的代码主要包括以下几个步骤: 1. 将原始语料库转化为BERT模型能够处理的格式 2. 对输入文本进行分词 3. 添加特殊标记,如[CLS]、[SEP]等 4. 对句子进行padding,使其长度相同 5. 构建输入的特征向量 下面是一个简单的BERT模型对语料库预处理的代码示例: ```python import torch from transformers import BertTokenizer from torch.utils.data import TensorDataset, DataLoader, RandomSampler, SequentialSampler # 加载BERT分词器 tokenizer = BertTokenizer.from_pretrained('bert-base-uncased') # 加载数据集 sentences = ["This is the first sentence.", "This is the second sentence."] labels = [0, 1] # 对文本进行分词和添加特殊标记 input_ids = [] for sentence in sentences: encoded_sent = tokenizer.encode(sentence, add_special_tokens=True) input_ids.append(encoded_sent) # 对句子进行padding MAX_LEN = 64 input_ids = torch.tensor([i + [0]*(MAX_LEN-len(i)) for i in input_ids]) # 构建attention masks attention_masks = [] for sent in input_ids: att_mask = [int(token_id > 0) for token_id in sent] attention_masks.append(att_mask) # 构建数据集 dataset = TensorDataset(input_ids, attention_masks, torch.tensor(labels)) # 构建数据加载器 batch_size = 32 dataloader = DataLoader(dataset, sampler=RandomSampler(dataset), batch_size=batch_size) ``` 以上代码中,我们首先加载了BERT分词器,然后对输入文本进行分词和特殊标记的添加,接着对句子进行padding,最后构建了输入特征向量和数据加载器。这样,我们就可以将预处理后的数据输入到BERT模型中进行训练或推理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值