NLP基础一:python 中文分词

5 篇文章 1 订阅
  • 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

安装方式:详见 https://blog.csdn.net/kerry_55/article/details/105366200

# -*- 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)

输出结果:

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

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

(后续再更新)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柯努力

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值