文本聚类

1. TFIDF

TFIDF全程叫做term frequency–inverse document frequency,即文本频率与逆文档频率指数, TFIDF就是为了表征一个token的重要程度,如果这个token出现的频数很高,出现的频数这个因素就叫做TF,IDF即逆文档频率,就是所有文档的条数与有某词的文档条数的比值的对数,减少“的,了”等频率过高又无意义的词语干扰。
TFIDF是个词袋模型。
Spark有相关的接口

1.导包

import com.hankcs.hanlp.dictionary.stopword.CoreStopWordDictionary
import com.hankcs.hanlp.summary.TextRankKeyword
import com.hankcs.hanlp.tokenizer.StandardTokenizer
import org.apache.hadoop.io.BytesWritable
import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.rdd.RDD
import org.apache.spark.sql.{DataFrame, SparkSession}
import org.apache.spark.ml.clustering.KMeans
import org.apache.spark.ml.feature.{HashingTF, IDF}
import scala.collection.JavaConversions._

2.读数


def main(args: Array[String]): Unit = {val conf = new SparkConf().setAppName("GenDClogExample")val spark = SparkSession.builder().config(conf).getOrCreate()val sc = spark.sparkContext//自行读取一份文本数据吧val click_df = genclickdata(sc,spark)//分词,分词可以参考上一篇文章代码val words_df = Sentence2Words(click_df,spark)//提取下,两列 文本和分词的文本 : String,List[String]val docs = words_df.select("desc","desc_all_word")

3. TF-IDF

    //求tfval hashingTF = new HashingTF().setInputCol("desc_all_word").setOutputCol("rawFeatures").setNumFeatures(2000)val featurizedData = hashingTF.transform(docs)//求IDFval idf = new IDF().setInputCol("rawFeatures").setOutputCol("features")val idfModel = idf.fit(featurizedData)val rescaledData = idfModel.transform(featurizedData).cache()rescaledData.show(false)

2. K-means

kmeans是比较普遍的聚类算法了,spark有相关的api,可以自行谷歌相关示例.这里根据上面的结果数据直接调取kmeans api即可,对于中心点数的选择也可以采用遍历的方式选择

val kmeans = new KMeans().setK(25).setSeed(1L)val model = kmeans.fit(rescaledData)val WSSSE = model.computeCost(rescaledData)model.clusterCentersval output = model.transform(rescaledData)output.schemaval re_df = output.select("desc","prediction")re_df.show(false)

3.总结

很简单的直接掉包进行文本分词聚类分析,然后看看中心数据,不需要标注数据,建立词典等人工操作,当然效果应该很一般,但是胜在操作方便。

使用Spark+Hanlp进行简单的文本处理(中)-Kmeans文本聚类相关推荐

  1. java word文本框_Java 读取Word文本框中的文本、图片、表格

    Word可插入文本框,文本框中可嵌入文本.图片.表格等内容.对文档中的已有文本框,也可以读取其中的内容.本文以Java程序代码来展示如何读取文本框,包括读取文本框中的文本.图片以及表格等. [程序环境 ...

  2. PHP开发小技巧①⑥—提取富文本字符串中的文本内容

    综述 富文本在我们平常的项目中应用已经很广泛了,并逐渐发展成了一个行业.最近在项目中遇到需要提取富文本字符串中的文本内容,本篇博文就是记述如何重富文本字符串中提取出文本内容,欢迎大家相互学习. 富文本 ...

  3. Word控件Spire.Doc 【文本】教程(5) ;从 Word 文档中的文本框中提取文本

    文本框的目的是允许用户输入程序要使用的文本信息.也可以从文本框中提取现有的文本信息.以下指南重点介绍如何通过Spire.Doc for .NET从 C# 中 Word 文档的文本框中提取文本. Spi ...

  4. Java 读取Word文本框中的文本、图片、表格

    Word可插入文本框,文本框中可嵌入文本.图片.表格等内容.对文档中的已有文本框,也可以读取其中的内容.本文以Java程序代码来展示如何读取文本框,包括读取文本框中的文本.图片以及表格等. [程序环境 ...

  5. python 获取文本框内容_如何在python中单击按钮时获取文本框中的文本?

    我可以让您的代码在单击按钮时显示文本框中的文本: 这就是你要达到的目的吗?您没有提到是否出现错误,但我确实发现您的代码存在两个问题:Button.py脚本中似乎存在一些缩进问题.在 对于changeT ...

  6. 文本分类中的文本特征表示

    Introduce 文本话题分析文本分类的一个应用领域,主要是针对文本表现的主题的划分.目前,针对文本话题分类的研究还是很热的,主要包括微博,知乎等大型话题社区,论坛类网站.之前知乎针对该问题在著名的 ...

  7. python tkinter entry长字符串靠右显示_如何突出显示tkinter文本widg中的文本

    它是用于这些目的的正确小部件.基本概念是,将属性分配给标记,并将标记应用于小部件中的文本范围.您可以使用文本小部件的search命令查找与模式匹配的字符串,这将返回足够的信息,并将标记应用于匹配的范围 ...

  8. python docx提取word中的目录及文本框中的文本

    问题描述 同标题 解决方案 因未在docx库找到直接识别word中目录及文本框中文本的方法,所以采用了一个"笨"方法,docx库可以把word文档解析成xml格式,以解析xml的方 ...

  9. python 文本框内容变化_当文本框中的文本发生变化时,动态读取文本输入中的文本?...

    我是kivy新手,我正试图用python编写一个应用程序,有一次,每当textinput被更改时,我都要从textinput读取文本,基于此,我想实现我的按钮功能-我已经看过所有文档,但我不知道怎么做 ...

最新文章

  1. metasploit msfvenom使用实例
  2. Linux下fork()函数
  3. 常见ETL工具一览,你知多少?
  4. Web前端主要学什么?这些知识要掌握
  5. Hibernate Synchronizer3——一个和hibernate Tool类似的小插件之使用方法
  6. 山东青岛市南区:创建物联网 信息化管理涉案财物
  7. rocketmq 顺序消费_10 分钟看懂消息队列 RocketMQ
  8. python3 urllib安装_对python3 urllib包与http包的使用详解
  9. zabbix 监控 db2_zabbix-第二章-第二节 zabbix添加简单主机监控
  10. 晋职称不考外语 计算机,评职称不考外语计算机的价值导向
  11. Python字符串isidentifier()
  12. SQL 当前时间加/减一天/时/分/秒
  13. 菜鸟学习oracle一看就会
  14. python 安卓库_Android高级面试题资料(持续更新)
  15. Android常用的工具方法
  16. SQL经典50查询语句(面试题)案例2
  17. onSubmit 使用
  18. linux 网络 指示灯 亮,Linux网络子系统中GRO的实现
  19. LINUX设置DNS
  20. 使用“已知明文攻击”破解加密

热门文章

  1. 第2次作业:随随便便又是一个响响亮亮的标题!
  2. Flash打造星光四射的莲花
  3. 怎么调整图片大小还不影响清晰度?
  4. iOS UILabel设置居上对齐,居中对齐,居下对齐
  5. 购物车(Shopping cart) —— B2C网站核心产品设计 (二)
  6. JPEG系列三 JPEG图像压缩
  7. 【EI会议+西南科技大学主办】2023年第四届绿色能源、环境与可持续发展国际学术会议(GEESD 2023)
  8. 试论运城关公2019通信类EI会议的发展与保护路径
  9. 树莓派Homekit摄像头(rtsp流或者usb或者csi摄像头)
  10. 基于TensorFlow的CNN模型——猫狗分类识别器(五)之训练和评估CNN模型