42、子词分割技术全解析

子词分割技术全解析

1. 子词分割基础

子词分割在自然语言处理中是一项关键技术,对于处理大规模语料和多语言文本尤为重要。在进行子词分割时,为防止算术下溢,我们会用负对数似然(NLL)来替代概率乘积,即最小化 $-\sum_{i = 1}^{n} \log P(sw_i)$ 。

2. 一元分词器
2.1 初始类

可以创建初始的一元类,使用如下模式进行预分词:

import re
words = re.findall(r'\p{P}|[^\s\p{P}]+', text)

并像WordPiece那样,给单词添加 ' ' 前缀。以下是一元类的实现:

import re

class Unigram():
    def __init__(self, uni_probs):
        self.uni_probs = uni_probs
        self.pattern = r'\p{P}|[^\s\p{P}]+'

    def pretokenize(self, text):
        words = re.findall(self.pattern, text)
        words = list(map(lambda x: ' ' + x, words))
        return words

不过,目前由于没有一元概率的估计,还无法创建 Un

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值