中文NLP 1990年代至今

中文分词与自然语言处理

中文书写不空格,词与词的边界需要机器自己判断词是中文信息处理的第一道门槛,也是机器理解汉语、检索语料与训练大模型的起点。

1 为什么中文需要分词

英文句子用空格把词分开,机器只需按空格切分,就能得到一串'词'。中文不同:汉字连写成句,词与词之间没有任何形式标记。'南京市长江大桥'这句话,可以切分为'南京市/长江大桥',也可以切分为'南京/市长/江大桥'——只有结合语境,才能判断哪种切分是正确的。这类现象称为'切分歧义',是中文分词最经典也最持久的难题。

除了歧义,还有'未登录词'的问题:人名、地名、机构名、新词、网络用语层出不穷,任何一部词典都不可能穷尽。'分词'之所以被称为中文信息处理的第一道门槛,正是因为它同时面对'边界不确定'与'词表不封闭'两重困难。

从语文的角度看,分词与传统的'句读'、'词义辨析'、'语法分析'一脉相承。古人读书先要'明句读',今天机器读中文,先要'明词界'。这一古老的语言学任务,在信息时代成了工程问题。

2 分词的主要方法

最早的分词方法是'基于词典'的机械切分,例如正向最大匹配、逆向最大匹配与双向匹配:拿一个词表,从句子一端开始,尽可能匹配最长的词。这种方法简单快速,但遇到歧义与未登录词就容易出错。此后出现的'最短路径法',把分词转化为图上的路径搜索问题,用词频计算最优切分,效果有所提升。

第二阶段是'基于统计'的方法。研究者把分词看作序列标注问题:为每个汉字打上'B(词首)、M(词中)、E(词尾)、S(单字词)'之类的标签,再用隐马尔可夫模型、条件随机场等模型学习标签之间的转移规律。这样,未登录词也能通过'字的搭配规律'被识别出来,例如'姓+名'的人名模式、'××省/市/县'的地名模式。

第三阶段是深度学习方法。循环神经网络、双向长短期记忆网络,以及后来的预训练语言模型,让分词不再依赖人工设计的特征,而是直接从大规模语料中学习字与字的组合规律。今天常用的开源分词工具(如 jieba、HanLP、LTP 等),往往综合了词典、统计模型与深度学习多种手段,准确率已达相当高的水平。

3 分词之上的中文处理

分词只是起点。得到词序列之后,机器才能进行更高层次的分析:'词性标注'为每个词标注名词、动词、形容词等类别;'命名实体识别'从文本中抽出人名、地名、时间、机构;'句法分析'建立词与词之间的主谓宾、定状补关系;'语义分析'则试图理解句子的意思与情感倾向。

这些技术支撑了大量我们习以为常的应用:搜索引擎的相关性排序、输入法的联想与纠错、机器翻译、语音助手的理解、内容平台的标签与推荐、作文的自动评分、古籍的自动标点与检索。可以说,一切中文文本的智能处理,都要先过'分词'这一关。

对语文学习而言,分词与词性标注也提供了一个新的观察视角:把一篇课文输入程序,可以得到词频统计、常用词分布、句子长度曲线。这种'用数据读文章'的方法,正在成为文本细读与写作教学的一种辅助手段。

4 从分词到预训练语言模型

2013 年前后,词向量(Word2Vec)技术让词变成了可计算的向量:'国王 - 男人 + 女人 ≈ 女王'这样的类比关系,第一次让机器以数学的方式'理解'词的语义。随后,以 BERT 为代表的预训练语言模型问世,模型在海量文本上学习语言规律,再针对具体任务微调,中文自然语言处理的效果随之大幅提升。

有趣的是,这些新模型大多不再显式地'分词',而是采用'子词'(subword)切分:把词拆成更小的字或字节片段。这样一来,未登录词与生僻字不再成为障碍,模型也能从字形的组合中捕捉规律。分词这个'第一道门槛',在技术路径上被部分绕开,但它所代表的核心问题——如何界定汉语的单位、如何用有限符号表达无限组合——依然是语言技术的永恒主题。

相关推荐

喜欢「中文分词与自然语言处理」的人,大多也喜欢 论语·见贤思齐与任重道远