当前位置: 首页 > 原理解释

crf分词原理-语法规则 CTF 分词原理

CRF 分词,说白了就是给文本里那些看起来连在一起的“词块”找骨架。把“贼棒”拆成“贼”和“棒”,把“Python 程序员”拆成“Python”和“程序员”,这一步实际上就是给语言打锚点。 那会儿大家分词靠的是正则,那是老黄历了。现代系统更依赖概率模型。CRF 的核心逻辑就是:先假设文本被切成了一个个词,然后利用训练好的模型,根据这些词之间的组合关系,算出它们到底对不对。
比如模型发现“北京 + 车”比“车 + 北京”更像是一个词,它就会选前者。出于“北京车”在大量书里都是个专有名词,但“车北京”可能只是短语。
这个判断,本质上就是在拿概率讲话。 整个过程实际上就是个接力赛。模型先负责做两件事。
第一,它得给每个独立的词打上标签,比如“名词”、“动词”。“名词”这个标签是通用的,不管前面接啥词,都得是名词。
这就像给每个词发身份证。
第二,它还负责做“接力”,告诉前一个词后面接啥词最好。
比如前一个词是“北京”,后一个词是“车”,模型得算出“北京车这个组合比“北京这个”和“车这个”都更靠谱。
要是算出来“北京”后面接“车”的概率是 100%,那就决一死战,选这个组合。 这种分词方式有个挺大的优势,就是能搞定那些“跨词边界”的长字符串。
有时候两个词挨得忒近,连起来读起来像一句整个的话,但在计算机眼里,它们可能只是两个独立的词。正则分词只能一眼看穿,要么根本分不开。而 CRF 模型通过训练,能把这种“不清楚”的地方给分清楚。 为啥如此出效果?出于它学了数据。它不是瞎猜,而是见过成千上万个例子。在训练阶段,它把所有对的分词结局都喂进去,然后跑通全连接态。在这个过程中,它发现“贼棒”这个词组,要是出目前句首,概率高;要是出目前句尾,概率低。它就连能发现“程序员”这个词组,要是后面带了“学习”,整个短语的权重就虚了;要是后面本来就没有“学习”,权重就稳了。
这就好比学骑脚踏车,别看动作看着好办,但大量人摔倒了。可经过训练,模型学会了如何平衡速度和稳定性,如何知道啥时候该收脚,啥时候该蹬腿。 数据的功能忒大了。
没有充足的语料,模型就是盲人摸象。
哪怕算法再牛,要是只见过“苹果”和“香蕉”,那它可能把“苹果和香蕉”当成一个整体;要是只见过“苹果”和“梨”,那它可能把“苹果和梨”当成集合。CRF 分词依赖的是“上下文信息”。它不只看眼前这一个词,还要看它左边的邻居,右边的邻居,就连它前面的邻居。它通过海量数据,把这种复杂的上下文关系映射成概率值。 举个例子,假设句子是“今天天气挺好”。
要是用传统分词,可能分出来是“今天”、“天气”、“挺好”三个词。但要是用 CRF 模型,它可能会识别出“天气挺好”是一个整个的表达,把“挺好”的标签略微往左挪一点点,要么把“今天”往右挪。别看看起来分词变细了,但并没有转变原句的语义结构,只是让模型更准地捕捉了“天气挺好”这个可能的语法结构。 实际上,CRF 分词和 NLP 里的其他技术挺像,都是概率模型。区别在于它主打“序列标注”。它不关心句子里的词顺序,只关心每个词应当归于哪个词类,还有前后有没相关系。
比如动词后面接名词,归一;动词后面接副词,归副词。
这种分类任务,CRF 算是把序列标注这一大堆难题,简化成了“为啥这个位置要分类为那个类别”的推理难题。 最终总结一下,CRF 分词不是为了把句子拆得更碎,而是为了在合理的范围内给句子做个更精确的解剖。它靠概率模型去判断组合的合理性,靠训练数据去修正判断的偏差。在这个过程中,它总能找出那些“看起来像词,但实际上是短语”要么“看起来像短语,但实际上是词”的地方。
这不仅是技术的进步,更是语言处理精度的提升,让计算机确实能读懂人类语言了。
相关标签:

猜你喜欢

热门阅读

  • 赖柴尔定理-赖柴尔定理
  • 迪拜哪个国家的城市?-迪拜在哪国城市
  • 李毅吧番号及出处-李毅吧番号及出处
  • 贴春联的由来简介50字-春联由来简述
  • 思乡的名言和出处-思乡名言及出处

其他分站