与风景对话_交互式旅游推荐系统_数据预处理与分析(五)

我们在进行模型训练时对数据进行检查时发现,出现了意想之外的错误,当文本中出现分数形式的1/2等文本时,程序会报错出现错误的标识符,因此在此次更新中我们对该问题进行解决

一.问题分析 

在通过分析问题之后我们发现,在文本中出现的‘/’符号会导致文本出现错误以至于无法进行模型训练,因此为了解决问题,我们将文本中所有出现‘/’的场景进行分析之后发现,很大程度上时人们在进行描述分数时经常会使用如1/2的形式来表达分数,因此出现了很多的错误数据,因此我们决定将数据中的1/2类型的分数转化为汉字类型的二分之一,这样我们就可以解决目前的问题,因此我们通过以上思路进行分析发现,只要我们使用正则表达式识别分数,即前面有1到n个数字,加上一个/符号,之后是n个数字的形式,并将其转化为汉字形式就可以规避此问题,理论成立,实践开始。

 二.程序实现 

1.定义映射字典

首先我们定义一个阿拉伯数字到中文数字的映射字典,因为正常人的表达一般只会在0到9之间,很难会出现11/13这种情况,所以我们定义一下几个字符就已经足够了

num_to_chinese = {
    '0': '零',
    '1': '一',
    '2': '二',
    '3': '三',
    '4': '四',
    '5': '五',
    '6': '六',
    '7': '七',
    '8': '八',
    '9': '九'
}

2.正则表达式

我们通过正则表达式r'\d+/\d+':这个正则表达式用于匹配文本中的分数形式,如1/2、1/3等。

# 将分数形式(如1/2、1/3、7/9等)转换为中文形式
def convert_fraction_to_chinese(text):
    # 使用正则表达式找出所有的分数形式,如1/2、1/3等
    pattern = r'\d+/\d+'
    fractions = re.findall(pattern, text)
    

3.转化为汉字

遍历我们每一个找到的分数形式,并替换为中文

for fraction in fractions:
        arabic_digits = fraction.split('/')
        chinese_digits = [num_to_chinese[digit] for digit in arabic_digits]
        chinese_fraction = '分之'.join(chinese_digits)
        text = text.replace(fraction, chinese_fraction)
    
    return text

4.储存

将我们转化完成后的文本进行储存

# 从指定路径读取 JSON 文件
file_path = 'C:/Users/48594/Desktop/深度学习/res/your_file.json'

with open(file_path, 'r', encoding='utf-8') as file:
    data = json.load(file)

# 提取文本字段,假设 JSON 文件中的文本存储在 'text' 键下
text_from_json = data['text']

# 转换分数形式为中文形式
converted_text = convert_fraction_to_chinese(text_from_json)

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值