中文HanLp分词入门

入门

# 比如我们要对 `我来到中华人民共和国` 这句话做一个分词,我们来人为分一下
1./ 来到 / 中华人民共和国
2./ 来到 / 中华 / 华人 / 人民 / 中华人民 / 中华人民共和国 / 共和国

对于中文我们有不不同的分词方法,但是从我们当下的这个语境上看,肯定第一种分词方式是我们想要的。但是在不同的上下文,可能我们需要的是第二种分词方式。

有很多开源的分词工具可以帮助我们做这个事情,比如Jieba,NLPIR[中科院]HanLP,LTP[哈工大]等等。各家的分词工具包会略有差异,但是大方向是不变的,目的都是为了中文分词

代码测试

导入依赖

 <dependency>
            <groupId>com.hankcs</groupId>
            <artifactId>hanlp</artifactId>
            <version>portable-1.7.8</version>
</dependency>
import com.hankcs.hanlp.HanLP
import com.hankcs.hanlp.dictionary.stopword.CoreStopWordDictionary
import com.hankcs.hanlp.seg.common.Term

import java.util
import scala.collection.JavaConversions._

object myTestnlp extends App {
  System.setProperty("HADOOP_USER_NAME", "root")
  //开启调试模式(会降低性能)
  HanLP.Config.enableDebug()
  val str = "你好上海,丁香路合欢路"
  //参数:text – 文本
  //返回:切分后的单词
  val terms: util.List[Term] = HanLP.segment(str)
  //对分词结果应用过滤
  CoreStopWordDictionary.apply(terms)
  private val res: String = terms.map(term => {
    //term.nature 代表词性
    (term.word, term.nature)
  }).mkString(",")
  println(s"res = ${res}")
}

运行结果

人名角色观察:[  K 1 A 1 ][你好 L 2 ][上海 L 35 K 34 ][, K 532 L 151 M 24 ][丁香 X 2 ][路 B 482 D 254 L 157 C 120 E 57 K 19 ][合欢 A 20833310 ][路 B 482 D 254 L 157 C 120 E 57 K 19 ][  K 1 A 1 ]
人名角色标注:[ /K ,你好/L ,上海/K ,,/K ,丁香/X ,/D ,合欢/A ,/K , /K]
识别出人名:丁香路 XD
细分词网:
0:[ ]
1:[你好]
2:[]
3:[上海]
4:[]
5:[,]
6:[丁香, 丁香路]
7:[]
8:[]
9:[合欢]
10:[]
11:[]
12:[ ]

res = (你好,l),(上海,ns),(丁香路,nr),(合欢,n),(,n)

总结

  • HanLP可以对中文进行分词
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值