HanLP-实词分词器详解

简介: 在进行文本分类(非情感分类)时,我们经常只保留实词(名、动、形)等词,为了文本分类的分词方便,HanLP专门提供了实词分词器类NotionalTokenizer,同时在分类数据集加载处理时,默认使用了NotionalTokenizer分词器。

在进行文本分类(非情感分类)时,我们经常只保留实词(名、动、形)等词,为了文本分类的分词方便,HanLP专门提供了实词分词器类NotionalTokenizer,同时在分类数据集加载处理时,默认使用了NotionalTokenizer分词器。
在HanLPJava版代码库中可以查看下边的文件中的函数

1、AbstractDataSet.java文件中的AbstractDataSet方法
2、HanLPTokenizer.java文件中的segment方法
3、NotionalTokenizer.java文件中的segment方法

简单说明一下NotionalTokenizer类实现

1、初始化了一个维特比分词器实例(最短路径方法,用viterbi思想实现)
2、用CoreStopWordDictionary类的shouldInclude方法对维特比分词结果进行过滤,该方法只保留属于名词、动词、副词、形容词并且不在停用词表中的词。详见CoreStopWordDictionary.java文件中的shouldInclude(Term)方法。
对于PyHanLP的调用方法可以参考

-- coding:utf-8 --

Author:wancong

Date: 2018-04-30

from pyhanlp import *
def demo_notional_tokenizer():

""" 演示自动去除停用词、自动断句的分词器
>>> demo_notional_tokenizer()
[小区/n, 居民/n, 反对/v, 喂养/v, 流浪猫/nz, 居民/n, 赞成/v, 喂养/v, 小宝贝/nz]
[小区/n, 居民/n, 反对/v, 喂养/v, 流浪猫/nz]
[居民/n, 赞成/v, 喂养/v, 小宝贝/nz]
"""
Term =JClass("com.hankcs.hanlp.seg.common.Term")
NotionalTokenizer = JClass("com.hankcs.hanlp.tokenizer.NotionalTokenizer")

text = "小区居民有的反对喂养流浪猫,而有的居民却赞成喂养这些小宝贝"
print(NotionalTokenizer.segment(text))
for sentence in NotionalTokenizer.seg2sentence(text):
    print(sentence)

if name == "__main__":

import doctest

doctest.testmod(verbose=True)

相关文章
|
Android开发
Android中实现获取相册中的图片扫描二维码的功能
Android中实现获取相册中的图片扫描二维码的功能
509 0
|
前端开发 算法 Java
1024程序员节|历经一个月总结使用java实现pdf文件的电子签字+盖章+防伪二维码+水印+PDF文件加密的全套解决方案
🍅程序员小王的博客:程序员小王的博客 🍅CSDN地址:程序员小王java 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 如有编辑错误联系作者,如果有比较好的文章欢迎分享给我,我会取其精华去其糟粕 🍅java自学的学习路线:java自学的学习路线
3071 0
1024程序员节|历经一个月总结使用java实现pdf文件的电子签字+盖章+防伪二维码+水印+PDF文件加密的全套解决方案
|
Linux C语言 C++
现代c++中实现精确延时方法总结
现代c++中实现精确延时方法总结
|
3月前
|
存储 JavaScript
手机号码生成器的实现代码
根据选择的运营商号段生成随机号码,支持生成、保存、导出及复制操作,历史记录可持久化存储,方便实用。
|
存储 安全 Java
Java“ArrayStoreException”解决
Java中的ArrayStoreException发生在尝试将错误类型的对象存储到特定类型对象的数组中时。解决方法包括:确保数组元素类型与赋值对象类型一致,使用泛型集合替代数组以增强类型安全。
232 4
|
Java
SpringBoot启动报错org.apache.catalina.LifecycleException
SpringBoot启动报错org.apache.catalina.LifecycleException
204 0
|
12月前
|
自然语言处理 程序员
通义灵码累计生成超10亿行代码,服务上万家企业!
通义灵码累计生成超10亿行代码,服务上万家企业!
273 6
|
资源调度 JavaScript 前端开发
TypeScript实战教程(一):表单上传与后端处理
本文是TypeScript实战教程的第一部分,介绍了使用TypeScript进行表单上传和后端处理的完整流程,包括环境配置、前端表单创建、使用TypeScript和Express框架搭建服务端、处理表单数据,并提供了详细的代码示例和运行测试方法。
TypeScript实战教程(一):表单上传与后端处理
|
Python
Mac安装Python3.12开发环境
Mac安装Python3.12开发环境
646 2
|
存储 自然语言处理 PyTorch
Transformers 4.37 中文文档(四十二)(2)
Transformers 4.37 中文文档(四十二)
303 1