• jieba
  • 哈工大LTP
  • hanlp
  • pkuseg

分词工具一:jieba

安装方式:直接 pip install jieba ,即可安装成功。


import jieba

# 分词
cut_list = jieba.cut("我是来自韩山师范学院,数学与统计学院的一名学生", cut_all=True)
print("全模式: " + ",".join(cut_list))

cut_list = jieba.cut("我是来自韩山师范学院,数学与统计学院的一名学生", cut_all=False)
print("精准模式: " + ",".join(cut_list))  # 不加参数,一般默认精准模式

cut_list = jieba.cut_for_search("我是来自韩山师范学院,数学与统计学院的一名学生")
print("搜索引擎模式: " + ", ".join(cut_list))

#获取自定义词典
# jieba.load_userdict("userdict.txt")
#添加词
jieba.add_word('石墨烯')
#删除词
jieba.del_word('自定义词')

输出结果:

全模式: 我,是,来自,韩山,山师,师范,师范学院,学院,,,数学,与,统计,统计学,计学,学院,的,一名,名学,学生
精准模式: 我,是,来自,韩山,师范学院,,,数学,与,统计,学院,的,一名,学生
搜索引擎模式: 我, 是, 来自, 韩山, 师范, 学院, 师范学院, ,, 数学, 与, 统计, 学院, 的, 一名, 学生


分词工具二:哈工大LTP

安装方式:

# -*- coding: UTF-8 -*-
from pyltp import Segmentor

# 分词
def segmentor(sentence):
    segmentor = Segmentor()  # 初始化
    segmentor.load('ltp_data/cws.model')  # 加载模型
    words = segmentor.segment(sentence)  # 分词
    words_list = list(words)
    segmentor.release()  # 释放模型
    return words_list

print(",".join(segmentor("我是来自韩山师范学院,数学与统计学院的一名学生")))

输出结果:

柯美美,是,来自,韩山,师范学院,,,数学,与,统计,学院,的,一,名,学生


分词工具三:hanlp

from pyhanlp import *

def load_dictionary():
    """
    加载HanLP中的mini词库
    :return: 一个set形式的词库
    """
    IOUtil = JClass('com.hankcs.hanlp.corpus.io.IOUtil')
    path = HanLP.Config.CoreDictionaryPath.replace('.txt', '.mini.txt')
    dic = IOUtil.loadDictionary([path])
    return set(dic.keySet())

def fully_segment(text, dic):
    word_list = []
    for i in range(len(text)):                  # i 从 0 到text的最后一个字的下标遍历
        for j in range(i + 1, len(text) + 1):   # j 遍历[i + 1, len(text)]区间
            word = text[i:j]                    # 取出连续区间[i, j]对应的字符串
            if word in dic:                     # 如果在词典中,则认为是一个词
                word_list.append(word)
    return word_list

dic = load_dictionary()
print(fully_segment("商品和服务",dic))

输出结果:['商', '商品', '品', '和', '和服', '服', '服务', '务']


分词工具四:pkuseg

预训练模型文件下载地址:https://github.com/lancopku/pkuseg-python/releases

pkuseg分词详见:https://github.com/lancopku/pkuseg-python

import pkuseg

# 以默认配置加载模型
seg = pkuseg.pkuseg(model_name= './data/msra')
result = seg.cut("我是来自韩山师范学院数学与统计学院的一名学生")
print(result)

seg = pkuseg.pkuseg()
result = seg.cut("我是来自韩山师范学院数学与统计学院的一名学生")
print(result)

输出结果:

['我', '是', '来自', '韩山师范学院数学与统计学院', '的', '一', '名', '学生']

['我', '是', '来自', '韩山', '师范', '学院', '数学', '与', '统计', '学院', '的', '一', '名', '学生']

(后续再更新)