本文将对三种中文分词工具进行使用尝试,这三种工具分别为
哈工大的 LTP
,
结巴分词
以及
北大的 pkuseg
。
首先我们先准备好环境,即需要安装三个模块:
pyltp, jieba, pkuseg 以及 LTP 的分词模型文件
cws.model
。
在用户字典中添加以下 5 个词语:
经
少安
贺凤英
F-35战斗机
埃达尔·阿勒坎
测试的 Python 代码如下:
import os
import jieba
import pkuseg
from pyltp import Segmentor
lexicon = ['经', '少安', '贺凤英', 'F-35战斗机', '埃达尔·阿勒坎']
def ltp_segment(sent):
cws_model_path = os.path.join('data/cws.model')
lexicon_path = os.path.join('data/lexicon.txt')
segmentor = Segmentor()
segmentor.load_with_lexicon(cws_model_path, lexicon_path)
words = list(segmentor.segment(sent))
segmentor.release()
return words
def jieba_cut(sent):
for word in lexicon:
jieba.add_word(word)
return list(jieba.cut(sent))
def pkuseg_cut(sent):
seg = pkuseg.pkuseg(user_dict=lexicon)
words = seg.cut(sent)
return words
sent = '尽管玉亭成家以后,他老婆贺凤英那些年把少安妈欺负上一回又一回,怕老婆的玉亭连一声也不敢吭,但少安他妈不计较他。'
print('ltp:', ltp_segment(sent))
print('jieba:', jieba_cut(sent))
print('pkuseg:', pkuseg_cut(sent))
对于第一句话,输出结果如下:
原文: 尽管玉亭成家以后,他老婆贺凤英那些年把少安妈欺负上一回又一回,怕老婆的玉亭连一声也不敢吭,但少安他妈不计较他。
ltp: ['尽管', '玉亭', '成家', '以后', ',', '他', '老婆', '贺凤英', '那些', '年', '把', '少安', '妈', '欺负', '上', '一', '回', '又', '一', '回', ',', '怕', '老婆', '的', '玉亭', '连', '一', '声', '也', '不', '敢', '吭', ',', '但', '少安', '他妈', '不', '计较', '他', '。
']
jieba: ['尽管', '玉亭', '成家', '以后', ',', '他', '老婆', '贺凤英', '那些', '年', '把', '少安', '妈', '欺负', '上', '一回', '又', '一回', ',', '怕老婆', '的', '玉亭', '连', '一声', '也', '不敢', '吭', ',', '但少安', '他妈', '不', '计较', '他', '。
']
pkuseg: ['尽管', '玉亭', '成家', '以后', ',', '他', '老婆', '贺凤英', '那些', '年', '把', '少安', '妈', '欺负', '上', '一', '回', '又', '一', '回', ',', '怕', '老婆', '的', '玉亭', '连', '一', '声', '也', '不', '敢', '吭', ',', '但', '少安', '他妈', '不', '计较', '他', '。
']
对于第二句话,输出结果如下:
原文: 据此前报道,以色列于去年5月成为世界上第一个在实战中使用F-35战斗机的国家。
ltp: ['据', '此前', '报道', ',', '以色列', '于', '去年', '5月', '成为', '世界', '上', '第一', '个', '在', '实战', '中', '使用', 'F-35', '战斗机', '的', '国家', '。
']
jieba: ['据此', '前', '报道', ',', '以色列', '于', '去年', '5', '月', '成为', '世界', '上', '第一个', '在', '实战', '中', '使用', 'F', '-', '35', '战斗机', '的', '国家', '。
']
pkuseg: ['据', '此前', '报道', ',', '以色列', '于', '去年', '5月', '成为', '世界', '上', '第一', '个', '在', '实战', '中', '使用', 'F-35战斗机', '的', '国家', '。
']
对于第三句话,输出结果如下:
原文: 小船4月8日经长江前往小鸟岛。
ltp: ['小船', '4月', '8日', '经长江', '前往', '小鸟岛', '。
']
jieba: ['小船', '4', '月', '8', '日经', '长江', '前往', '小', '鸟岛', '。
']
pkuseg: ['小船', '4月', '8日', '经', '长江', '前往', '小鸟', '岛', '。
']