中文分词模型-pkuseg和jieba对比

还有的更多内容,请看here
pkuseg官网的预训练模型下载
因为pkuseg的准确性比jieba高了很多,本计划使用,但是实验过后,pkuseg不太满足自己的需求,而且速度比较慢,还是选择jieba。
在这里插入图片描述

import pkuseg
import os
s = "无时无刻巴赫"
import os
import time
st = time.time()
path ="C:\\Users\\1\\.pkuseg\\"# 下载的模型全部放在了这个目录
files =os.listdir(path)
files.sort()
for file_ in files:
    f_name = str(file_)
    if os.path.isdir(path +file_) and f_name != "postag":
        seg = pkuseg.pkuseg(model_name=path+file_,postag=True)
        text = seg.cut(s)
        print(f_name,text)
print(time.time() - st)
result
ctb8 [('无时无刻', 'v'), ('巴赫', 'nr')]
medicine [('无时', 'd'), ('无', 'v'), ('刻巴赫', 'a')]
mixed [('无时无刻', 'v'), ('巴赫', 'nr')]
msra [('无时无刻', 'v'), ('巴赫', 'nr')]
news [('无时无刻', 'v'), ('巴赫', 'nr')]
web [('无时无刻巴赫', 'l')]
36.3020761013031

和jieba模型结果对比

import jieba
s = ["李扬来到了移动杭研大厦","北京理工","翅展万丈", '无时无刻巴赫']
for i in s:
    seg = pkuseg.pkuseg(model_name='C:\\Users\\1\\.pkuseg\\msra')
    text = seg.cut(i)
    print("pkuseg-medicine:",text)
    seg_list=jieba.cut(i,cut_all=True)
    print("jieba默认模式: " + "/ ".join(seg_list))  # 默认模式
    seg_list=jieba.cut(i,cut_all=False)
    print("jieba精确模式: " + "/ ".join(seg_list))  # 精确模式
    print('\n')
李扬来到了移动杭研大厦 北京理工 翅展万丈 无时无刻巴赫
pkuseg 李扬/ 来到/ 了/ 移动杭研大厦 北京/ 理工 翅展/ 万丈 无时无刻/ 巴赫
jieba-默认 李/ 扬/ 来到/ 了/ 移动/ 杭/ 研/ 大厦 北京/ 北京理工/ 理工 翅/ 展/ 万丈 无时/ 无时无刻/ 巴赫
jieba-精确 李扬/ 来到/ 了/ 移动/ 杭研/ 大厦 北京理工 翅展/ 万丈 无时无刻/ 巴赫

词性标注

jieba如果标注词性,需要加载另一个包,因此对比了两次。
jieba的词性含义参考

for i in s:
    seg = pkuseg.pkuseg(model_name='C:\\Users\\1\\.pkuseg\\msra',postag = True)
    text = seg.cut(i)
    print("pkuseg-medicine:",text)
    seg = jieba.posseg.cut(i)
    seglist = ""
    for k in seg:
        seglist += k.word + " "+ k.flag + '\t'
    print("jieba", seglist,'\n')

result

pkuseg
李扬来到了移动杭研大厦 李扬 nr 来到 v u 移动杭研大厦 i
北京理工 北京 ns 理工 j
翅展万丈 翅展 n 万丈 i
无时无刻巴赫 无时无刻 v 巴赫 nr
jieba
李扬来到了移动杭研大厦 李扬 nr 来到 v ul 移动 vn j vn 大厦 n
北京理工 北京理工 nt
翅展万丈 ng v 万丈 m
无时无刻巴赫 无时无刻 i 巴赫 nr
发布了178 篇原创文章 · 获赞 30 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/ACBattle/article/details/103421658