专栏名称: SegmentFault思否
SegmentFault (www.sf.gg)开发者社区,是中国年轻开发者喜爱的极客社区,我们为开发者提供最纯粹的技术交流和分享平台。
目录
相关文章推荐
程序员的那些事  ·  清华大学:DeepSeek + ... ·  2 天前  
程序员小灰  ·  清华大学《DeepSeek学习手册》(全5册) ·  2 天前  
OSC开源社区  ·  宇树王兴兴早年创业分享引围观 ·  3 天前  
OSC开源社区  ·  升级到Svelte ... ·  4 天前  
程序猿  ·  “我真的受够了Ubuntu!” ·  3 天前  
51好读  ›  专栏  ›  SegmentFault思否

NLP 中文分词工具的使用尝试

SegmentFault思否  · 公众号  · 程序员  · 2019-09-13 10:00

正文

本文将对三种中文分词工具进行使用尝试,这三种工具分别为 哈工大的 LTP 结巴分词 以及 北大的 pkuseg


首先我们先准备好环境,即需要安装三个模块: pyltp, jieba, pkuseg 以及 LTP 的分词模型文件 cws.model 在用户字典中添加以下 5 个词语:



少安
贺凤英
F-35战斗机
埃达尔·阿勒坎


测试的 Python 代码如下:

# -*- coding: utf-8 -*-

import os
import jieba
import pkuseg
from pyltp import Segmentor

lexicon = ['经''少安''贺凤英''F-35战斗机''埃达尔·阿勒坎'# 自定义词典

# 哈工大LTP分词
def ltp_segment(sent):
    # 加载文件
    cws_model_path = os.path.join('data/cws.model'# 分词模型路径,模型名称为`cws.model`
    lexicon_path = os.path.join('data/lexicon.txt'# 参数lexicon是自定义词典的文件路径
    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))

# pkuseg分词
def pkuseg_cut(sent):
    seg = pkuseg.pkuseg(user_dict=lexicon)
    words = seg.cut(sent)
    return words

sent = '尽管玉亭成家以后,他老婆贺凤英那些年把少安妈欺负上一回又一回,怕老婆的玉亭连一声也不敢吭,但少安他妈不计较他。'
#sent = '据此前报道,以色列于去年5月成为世界上第一个在实战中使用F-35战斗机的国家。'
#sent = '小船4月8日经长江前往小鸟岛。'
#sent = '1958年,埃达尔·阿勒坎出生在土耳其首都安卡拉,但他的求学生涯多在美国度过。'

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日', '经', '长江', '前往', '小鸟', '岛', '。 ']







请到「今天看啥」查看全文