java hanlp分词_Hanlp分词实例:Java实现TFIDF算法

本文介绍了使用Java实现TF-IDF算法的过程,首先讲解了TF-IDF算法的重要性,然后详细阐述了预处理步骤,包括使用HanLP进行分词,以及如何优化处理大量数据。接着,展示了Java代码实现TF-IDF的具体细节,包括计算TF、IDF和TF-IDF的逻辑。最后,通过一个实际例子展示了算法的运行结果,并指出TF-IDF算法虽经典但也有局限性,适合作为领域概念提取的一种依据。
摘要由CSDN通过智能技术生成

算法介绍

最近要做领域概念的提取,TFIDF作为一个很经典的算法可以作为其中的一步处理。

关于TFIDF算法的介绍可以参考这篇博客http://www.ruanyifeng.com/blog/2013/03/tf-idf.html。

计算公式比较简单,如下:

f8ab02a88835228db0fd5a7ae2eb20f9.png

预处理

由于需要处理的候选词大约后3w+,并且语料文档数有1w+,直接挨个文本遍历的话很耗时,每个词处理时间都要一分钟以上。

为了缩短时间,首先进行分词,一个词输出为一行方便统计,分词工具选择的是HanLp。

然后,将一个领域的文档合并到一个文件中,并用“$$$”标识符分割,方便记录文档数。

50a2467e8b08decde042f9f269c4fb3d.png

下面是选择的领域语料(PATH目录下):

e86645b551a77082b75404ac3f4e27d1.png

代码实现

package edu.heu.lawsoutput;

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.File;

import java.io.FileReader;

import java.io.FileWriter;

import java.util.HashMap;

import java.util.Map;

import java.util.Set;

/**

* @ClassName: TfIdf

* @Description: TODO

* @author LJH

* @date 2017年11月12日 下午3:55:15

*/

public class TfIdf {

static final String PATH = "E:\\corpus"; // 语料库路径

public static void main(String[] args) throws Exception {

String test = "离退休人员"; // 要计算的候选词

computeTFIDF(PATH, test);

}

/**

* @param @param path 语料路经

* @param &#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值