本文测试了PaddleNLP等多个分词工具在疑难案例和垂类领域的表现。对“我没有上上上上海的火车”等趣味句子,各工具分词结果有差异;在垂类领域,PaddleNLP精确模式对专有名词识别更优,通用领域也表现出色,其他工具各有优劣,测试仅供娱乐,最新测试更权威。

听说,PaddleNLP新发多个任务的一键预测能力,

突发奇想,用疑难case玩玩TA。上最简单的任务吧 ———分词。
嗯...谁说分词简单,真的吗?
安装了几个分词工具:
In [1]# 首次更新完以后,重启后方能生效!pip install --upgrade paddlenlp!pip install jieba!pip install snownlp!pip install thulac!pip install pkuseg登录后复制In [2]
import paddlenlpimport jiebaimport snownlpimport thulacimport pkusegassert(paddlenlp.__version__ == '2.2.5') # check下PaddleNLP是不是最新版登录后复制In [3]
# 这几个分词工具的使用方式都非常简单,把PaddleNLP三种分词模式测了个遍seg_paddlenlp_accurate = paddlenlp.Taskflow("word_segmentation", mode="accurate") # 精准模式,基于百度-解语,实体粒度分词最精准!seg_paddlenlp_fast = paddlenlp.Taskflow("word_segmentation", mode="fast") # 快速模式,基于NLPer都知道的jieba,快!seg_paddlenlp_default = paddlenlp.Taskflow("word_segmentation") # 默认模式,基于百度LAC,精度和速度的完美权衡!seg_jieba = jieba.cutseg_snownlp = snownlp.SnowNLPseg_thulac = thulac.thulac(seg_only=True).cut #只进行分词,不进行词性标注seg_pku = pkuseg.pkuseg().cut # 以默认配置加载模型登录后复制In [4]# 就是玩,哈哈,好奇他们搞得定这些疑难case吗test_list = [ '我没有上上上上海的火车', '骑车出门差点摔跤,还好我一把把把把住了', '我爸是我爸,我是我爸儿', '灭霸爸爸叭叭叭叭儿的在那叭叭啥呢', '姑姑你估估我鼓鼓的口袋里有多少谷和菇', '胖胖的胖胖不想再胖胖', '你知不知道我不知道你知道我是谁', '我想梦梦梦梦梦过的梦', '我也想过过过儿过过的生活',]登录后复制In [5]
for input in test_list: print('input: ', input) print('PaddleNLP 精确模式: ', ' '.join(seg_paddlenlp_accurate(input))) print('PaddleNLP 快速模式: ', ' '.join(seg_paddlenlp_fast(input))) print('PaddleNLP 默认模式: ', ' '.join(seg_paddlenlp_default(input))) print('Jieba 默认模式: ', ' '.join(seg_jieba(input))) print("SnowNLP: ", ' '.join(seg_snownlp(input).words)) text = seg_thulac(input) lb = [i[0] for i in text] print("THULAC: ",' '.join(lb)) text = seg_pku(input) print("PkuSeg: ", ' '.join(text)) print('\r\n')登录后复制input: 我没有上上上上海的火车PaddleNLP 精确模式: 我 没有 上上 上 上海 的 火车登录后复制
Building prefix dict from the default dictionary ...Dumping model to file cache /tmp/jieba.cacheLoading model cost 0.776 seconds.Prefix dict has been built successfully.登录后复制
PaddleNLP 快速模式: 我 没有 上 上 上 上海 的 火车PaddleNLP 默认模式: 我 没有 上上 上 上海 的 火车Jieba 默认模式: 我 没有 上 上 上 上海 的 火车SnowNLP: 我 没有 上上 上 上海 的 火车THULAC: 我 没有 上 上 上 上海 的 火车PkuSeg: 我 没有 上上 上 上海 的 火车input: 骑车出门差点摔跤,还好我一把把把把住了PaddleNLP 精确模式: 骑车 出门 差点 摔跤 , 还好 我 一把 把把 把住 了PaddleNLP 快速模式: 骑车 出门 差点 摔跤 , 还好 我 一把 把 把 把住 了PaddleNLP 默认模式: 骑车 出门 差点 摔跤 , 还好 我 一把 把 把 把 住 了Jieba 默认模式: 骑车 出门 差点 摔跤 , 还好 我 一把 把 把 把住 了SnowNLP: 骑车 出门 差点 摔跤 , 还 好 我 一把把 把 把 住 了THULAC: 骑车 出门 差点 摔跤 , 还 好 我 一把把 把 把 住 了PkuSeg: 骑车 出门 差点 摔跤 , 还好 我 一把把 把 把 住 了input: 我爸是我爸,我是我爸儿PaddleNLP 精确模式: 我爸 是 我爸 , 我 是 我爸 儿PaddleNLP 快速模式: 我爸 是 我 爸 , 我 是 我 爸儿PaddleNLP 默认模式: 我 爸 是 我 爸 , 我 是 我 爸儿Jieba 默认模式: 我爸 是 我 爸 , 我 是 我 爸儿SnowNLP: 我 爸 是 我 爸 , 我 是 我 爸儿THULAC: 我 爸 是 我 爸 , 我 是 我 爸儿PkuSeg: 我 爸 是 我 爸 , 我 是 我 爸儿input: 灭霸爸爸叭叭叭叭儿的在那叭叭啥呢PaddleNLP 精确模式: 灭霸 爸爸 叭叭叭叭 儿 的 在 那 叭叭 啥 呢PaddleNLP 快速模式: 灭霸 爸爸 叭叭 叭叭 儿 的 在 那 叭叭 啥 呢PaddleNLP 默认模式: 灭霸 爸爸 叭 叭叭叭儿 的 在 那 叭 叭 啥 呢Jieba 默认模式: 灭霸 爸爸 叭叭 叭叭 儿 的 在 那 叭叭 啥 呢SnowNLP: 灭 霸 爸爸 叭叭 叭叭 儿 的 在 那叭叭 啥 呢THULAC: 灭霸 爸爸 叭叭 叭叭儿 的 在 那 叭叭 啥 呢PkuSeg: 灭霸 爸爸 叭叭 叭叭儿 的 在 那 叭叭 啥 呢input: 姑姑你估估我鼓鼓的口袋里有多少谷和菇PaddleNLP 精确模式: 姑姑 你 估估 我 鼓鼓 的 口袋 里 有多少 谷 和 菇PaddleNLP 快速模式: 姑姑 你 估估 我 鼓鼓的 口袋 里 有 多少 谷和菇PaddleNLP 默认模式: 姑姑你 估估 我 鼓鼓 的 口袋 里 有 多少 谷 和 菇Jieba 默认模式: 姑姑 你 估估 我 鼓鼓的 口袋 里 有 多少 谷和菇SnowNLP: 姑姑 你 估 估 我 鼓鼓 的 口袋 里 有 多少 谷 和菇THULAC: 姑姑 你 估估 我 鼓鼓 的 口袋 里 有 多少 谷 和 菇PkuSeg: 姑姑 你 估估 我 鼓鼓的 口袋 里 有 多少 谷 和 菇input: 胖胖的胖胖不想再胖胖PaddleNLP 精确模式: 胖胖 的 胖胖 不想 再 胖胖PaddleNLP 快速模式: 胖胖的 胖胖 不想 再 胖胖PaddleNLP 默认模式: 胖胖 的 胖胖 不 想 再 胖胖Jieba 默认模式: 胖胖的 胖胖 不想 再 胖胖SnowNLP: 胖胖 的 胖胖 不 想 再 胖胖THULAC: 胖 胖 的 胖 胖 不 想 再 胖 胖PkuSeg: 胖胖 的 胖胖 不 想 再 胖胖input: 你知不知道我不知道你知道我是谁PaddleNLP 精确模式: 你 知不知道 我 不知道 你 知道 我 是谁PaddleNLP 快速模式: 你 知不知道 我 不 知道 你 知道 我 是 谁PaddleNLP 默认模式: 你 知不知道 我 不知道 你 知道 我 是 谁Jieba 默认模式: 你 知不知道 我 不 知道 你 知道 我 是 谁SnowNLP: 你 知 不 知道 我 不 知道 你 知道 我 是 谁THULAC: 你 知 不 知道 我 不 知道 你 知道 我 是 谁PkuSeg: 你 知 不 知道 我 不 知道 你 知道 我 是 谁input: 我想梦梦梦梦梦过的梦PaddleNLP 精确模式: 我 想 梦梦梦梦梦 过 的 梦PaddleNLP 快速模式: 我 想 梦梦 梦 梦梦 过 的 梦PaddleNLP 默认模式: 我 想 梦梦梦梦 梦过 的 梦Jieba 默认模式: 我 想 梦梦 梦 梦梦 过 的 梦SnowNLP: 我 想 梦 梦 梦 梦 梦 过 的 梦THULAC: 我 想 梦 梦 梦 梦 梦 过 的 梦PkuSeg: 我 想 梦 梦 梦 梦 梦 过 的 梦input: 我也想过过过儿过过的生活PaddleNLP 精确模式: 我 也 想过 过 过 儿 过 过 的 生活PaddleNLP 快速模式: 我 也 想 过 过 过儿 过过 的 生活PaddleNLP 默认模式: 我 也 想过 过 过儿 过 过 的 生活Jieba 默认模式: 我 也 想 过 过 过儿 过过 的 生活SnowNLP: 我 也 想 过过 过 儿 过 过 的 生活THULAC: 我 也 想 过 过 过儿 过 过 的 生活PkuSeg: 我 也 想 过过 过儿 过过 的 生活登录后复制
