词条标记化如何有助于有效处理NLP中的稀有词问题?

词条标记化如何有助于有效处理NLP中的稀有词问题?,nlp,word-embedding,Nlp,Word Embedding,我已经看到NLP模型,例如利用WordPiece进行标记化。在WordPiece中,我们将像playing这样的标记拆分为play和ing。有人提到,它涵盖了更广泛的词汇表外(OOV)词汇。有人能帮我解释一下单词标记化是如何实现的,以及它是如何有效地处理稀有/OOV单词的吗 WordPiece和BPE是NLP任务中两种相似且常用的将单词分割成子单词级别的技术。 在这两种情况下,使用语言中的所有单个字符初始化词汇表,然后将词汇表中最频繁/最可能的符号组合迭代添加到词汇表中 考虑以下内容中的词条算法

我已经看到NLP模型,例如利用WordPiece进行标记化。在WordPiece中,我们将像
playing
这样的标记拆分为
play
ing
。有人提到,它涵盖了更广泛的词汇表外(OOV)词汇。有人能帮我解释一下单词标记化是如何实现的,以及它是如何有效地处理稀有/OOV单词的吗

WordPiece和BPE是NLP任务中两种相似且常用的将单词分割成子单词级别的技术。 在这两种情况下,使用语言中的所有单个字符初始化词汇表,然后将词汇表中最频繁/最可能的符号组合迭代添加到词汇表中

考虑以下内容中的词条算法(由我稍微修改):

  • 使用文本中的所有字符初始化单词单位清单
  • 使用1中的清单在培训数据上构建语言模型
  • 通过将当前单词资源清册中的两个单元组合起来,将单词单元资源清册增加一个,从而生成一个新的单词单元。从所有可能的单词单元中选择一个新词单元,当添加到模型中时,它最大程度地增加了训练数据的可能性
  • 转到2,直到达到预定义的字单位限制或可能性增加降至某个阈值以下
  • 该算法仅在步骤3中有所不同,在步骤3中,它只是选择新词单元作为当前子词单元集中下一个最频繁出现的对的组合

    示例

    输入文字:她走了。他是个遛狗的人。我走路

    前3个BPE合并:

  • w
    a
    =
    wa
  • l
    k
    =
    lk
  • wa
    lk
    =
    walk
  • 因此,在这个阶段,您的词汇表包括所有初始字符,以及
    wa
    lk
    walk
    。通常对固定数量的合并操作执行此操作

    它如何处理罕见的/OOV单词?

    很简单,如果你使用这种分割方法,OOV单词是不可能的。词汇表中没有出现的任何单词都将被分解成子单词单元。类似地,对于稀有词,由于我们使用的子词合并数量有限,该词不会出现在词汇表中,因此会被拆分为更频繁的子词

    这有什么帮助?

    假设模型看到单词
    walking
    。除非这个词在训练语料库中至少出现几次,否则模型无法很好地学习处理这个词。但是,它可能包含单词
    walked
    walker
    walked
    ,每个单词只出现几次。在没有子词分割的情况下,模型将所有这些词视为完全不同的词


    但是,如果将它们分为
    walk@@@ing
    walk@@@ed
    等,请注意,它们现在都有
    walk@@
    的共同点,这在训练时会频繁出现,模型可能能够了解更多有关它的信息。

    OOV单词不可能出现并不完全正确。假设您构建的模型中,所有训练数据都是ascii字符。在解码时,您传入一个以前从未见过的汉字。这将是OOV。OOV将非常罕见,但并非不可能。对,谢谢你的澄清。我的假设是,切分是在要切分的同一文本上学习的,但这当然不总是正确的。请详细说明
    从所有可能的单词单元中选择新的单词单元,以便在添加到模型中时最大程度地增加训练数据的可能性。
    ?我看到它到处被引用,但没有人详细说明这到底意味着什么。训练数据的可能性是基于频率的,这意味着你可以通过计算所有组合在训练集中出现的次数来决定新词的单位。添加最频繁的组合,并重复该过程@Devstr@JohnDoe我认为这只是BPE算法的情况,而不是WordPiece。我认为作者指的是LM的可能性。