转载自AI Studio 项目链接:https://aistudio.baidu.com/aistudio/projectdetail/3732612?channelType=0&channel=0
听说,PaddleNLP新发多个任务的一键预测能力,

突发奇想,用疑难case玩玩TA。上最简单的任务吧 ———分词。

嗯…谁说分词简单,真的吗?

安装了几个分词工具:

In [1]

首次更新完以后,重启后方能生效

!pip install --upgrade paddlenlp
!pip install jieba
!pip install snownlp
!pip install thulac
!pip install pkuseg
In [2]
import paddlenlp
import jieba
import snownlp
import thulac
import pkuseg
assert(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.cut

seg_snownlp = snownlp.SnowNLP

seg_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.cache
Loading 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: 我 也 想 过过 过儿 过过 的 生活

以上测试,仅供娱乐。正经测试,可以看下官方给的测试结果。

MSR和Weibo数据集偏通用领域,在通用领域上PaddleNLP的切词效果最优。根据官方文档,PaddleNLP的精确模式对垂类领域的实体粒度切词优势更加明显。

In [6]

测试下PaddleNLP能否识别出垂类领域的专有名词

test_list = [
‘近日国家卫健委发布第九版新型冠状病毒肺炎诊疗方案’,
‘谷爱凌拿下北京冬奥会自由式滑雪决赛冠军’,
‘美国金融危机另一重要原因是CDS(信用违约掉期)市场过于分散’,
‘以对冲基金为代表的机构投资者可能出现流动性风险,复杂环节下定价模型失灵造成的操作风险也需要给予一定的重视’,
‘房利美和房地美两家公司发行了15亿美元的债券融资。’
]
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 精确模式: 近日 国家卫健委 发布 第九版 新型冠状病毒肺炎 诊疗 方案
PaddleNLP 快速模式: 近日 国家 卫健委 发布 第九版 新型 冠状病毒 肺炎 诊疗 方案
PaddleNLP 默认模式: 近日 国家卫健委 发布 第九版 新型 冠状病毒肺炎 诊疗 方案
Jieba 默认模式: 近日 国家 卫健委 发布 第九版 新型 冠状病毒 肺炎 诊疗 方案
SnowNLP: 近日 国家 卫 健委 发布 第九 版 新型 冠 状 病毒 肺炎 诊疗 方案
THULAC: 近日 国 家 卫健委 发布 第九 版 新型 冠状 病毒 肺炎 诊疗 方案
PkuSeg: 近日 国家 卫健委 发布 第九 版 新型 冠状 病毒 肺炎 诊疗 方案

input: 谷爱凌拿下北京冬奥会自由式滑雪决赛冠军
PaddleNLP 精确模式: 谷爱凌 拿下 北京冬奥会 自由式滑雪 决赛 冠军
PaddleNLP 快速模式: 谷爱凌 拿下 北京 冬奥会 自由式 滑雪 决赛 冠军
PaddleNLP 默认模式: 谷爱凌 拿下 北京冬奥会 自由式 滑雪 决赛 冠军
Jieba 默认模式: 谷爱凌 拿下 北京 冬奥会 自由式 滑雪 决赛 冠军
SnowNLP: 谷 爱 凌 拿下 北京 冬奥会 自由式 滑雪 决赛 冠军
THULAC: 谷爱凌 拿下 北京 冬奥会 自由式 滑雪 决赛 冠军
PkuSeg: 谷爱 凌 拿下 北京 冬奥会 自由式 滑雪 决赛 冠军

input: 美国金融危机另一重要原因是CDS(信用违约掉期)市场过于分散
PaddleNLP 精确模式: 美国 金融危机 另 一 重要 原因 是 CDS ( 信用违约掉期 ) 市场 过于 分散
PaddleNLP 快速模式: 美国 金融危机 另 一 重要 原因 是 CDS ( 信用 违约 掉期 ) 市场 过于 分散
PaddleNLP 默认模式: 美国 金融危机 另 一 重要 原因 是 CDS ( 信用违约掉期 ) 市场 过于 分散
Jieba 默认模式: 美国 金融危机 另 一 重要 原因 是 CDS ( 信用 违约 掉期 ) 市场 过于 分散
SnowNLP: 美国 金融 危机 另 一 重要 原因 是 CDS( 信用 违约 掉期 ) 市场 过于 分散
THULAC: 美国 金融 危机 另 一 重要 原因 是 CDS ( 信用 违约 掉期 ) 市场 过于 分散
PkuSeg: 美国 金融 危机 另 一 重要 原因 是 CDS ( 信用 违约 掉期 ) 市场 过于 分散

input: 以对冲基金为代表的机构投资者可能出现流动性风险,复杂环节下定价模型失灵造成的操作风险也需要给予一定的重视
PaddleNLP 精确模式: 以 对冲基金 为 代表 的 机构投资者 可能 出现 流动性 风险 , 复杂 环节 下 定价模型 失灵 造成 的 操作 风险 也需要 给予 一定 的 重视
PaddleNLP 快速模式: 以 对冲 基金 为 代表 的 机构 投资者 可能 出现 流动性 风险 , 复杂 环节 下 定价 模型 失灵 造成 的 操作 风险 也 需要 给予 一定 的 重视
PaddleNLP 默认模式: 以 对冲 基金 为 代表 的 机构投资者 可能 出现 流动性 风险 , 复杂 环节 下 定价 模型 失灵 造成 的 操作 风险 也 需要 给予 一定 的 重视
Jieba 默认模式: 以 对冲 基金 为 代表 的 机构 投资者 可能 出现 流动性 风险 , 复杂 环节 下 定价 模型 失灵 造成 的 操作 风险 也 需要 给予 一定 的 重视
SnowNLP: 以 对冲 基金 为 代表 的 机构 投资者 可能 出现 流动性 风险 , 复杂 环节 下 定价 模型 失灵 造成 的 操作 风险 也 需要 给予 一定 的 重视
THULAC: 以 对冲 基金 为 代表 的 机构 投资者 可能 出现 流动性 风险 , 复杂 环节 下 定 价 模型 失灵 造成 的 操作 风险 也 需要 给 予 一定 的 重视
PkuSeg: 以 对冲基金 为 代表 的 机构 投资者 可能 出现 流动性 风险 , 复杂 环节 下 定价 模型 失灵 造成 的 操作 风险 也 需要 给予 一定 的 重视

input: 房利美和房地美两家公司发行了15亿美元的债券融资。
PaddleNLP 精确模式: 房利美 和 房地美 两家 公司 发行 了 15亿美元 的 债券 融资 。
PaddleNLP 快速模式: 房利美 和 房地 美 两家 公司 发行 了 15 亿美元 的 债券 融资 。
PaddleNLP 默认模式: 房利美 和 房地美 两家 公司 发行 了 15亿美元 的 债券 融资 。
Jieba 默认模式: 房利美 和 房地 美 两家 公司 发行 了 15 亿美元 的 债券 融资 。
SnowNLP: 房 利 美 和 房地 美 两 家 公司 发行 了 15 亿 美元 的 债券 融资 。
THULAC: 房利美 和 房地美 两 家 公司 发行 了 15亿 美元 的 债券 融资 。
PkuSeg: 房利美 和 房地美 两 家 公司 发行 了 15亿 美元 的 债券 融资 。

实体粒度切词准确,语义片段完整,找时间研究下为啥PaddleNLP的分词功能有这方面的优势~

🔥🔥分享一个PaddleNLP工程师对一键预测功能的视频讲解:传送门

本项目基于PaddleNLP 一键预测功能。

可加入PaddleNLP的技术交流群(微信)(二维码7天有效,如已失效可跳转到GitHub主页获取最新二维码进群)~

Logo

学大模型,用大模型上飞桨星河社区!每天8点V100G算力免费领!免费领取ERNIE 4.0 100w Token >>>

更多推荐