开源一个文本分析项目

原创 2017年06月12日 18:18:42

Github

https://github.com/sea-boat/TextAnalyzer

TextAnalyzer

a text analizer that can analyze text. so far, it can extract hot words in a text segment by using tf-idf algorithm,at the same time using a score factor to optimize the final score.

also it provides machine learning to make a classification.

Features

extracting hot words from a text.
1. to gather statistics via frequence.
2. to gather statistics via by tf-idf algorithm
3. to gather statistics via a score factor additionally.

synonym can be recognized

SVM Classificator

this analyzer supports to classify text by svm. it involves vectoring the text. we can train the samples and then make a classification by the model.

for convenience,the model,tfidf and vector will be stored.

kmeans clustering && xmeans clustering

this analyzer supports to clustering text by kmeans and xmeans.

vsm clustering

this analyzer supports to clustering text by vsm.

Dependence

https://github.com/sea-boat/IKAnalyzer-Mirror.git

TODO

  • other ml algorithms.
  • emotion analization.

How to use

just simple like this

extracting hot words

  1. indexing a document and get a docId.
long docId = TextIndexer.index(text);
  1. extracting by docId.
 HotWordExtractor extractor = new HotWordExtractor();
 List<Result> list = extractor.extract(0, 20, false);
 if (list != null) for (Result s : list)
    System.out.println(s.getTerm() + " : " + s.getFrequency() + " : " + s.getScore());

a result contains term,frequency and score.

失业证 : 1 : 0.31436604
户口 : 1 : 0.30099702
单位 : 1 : 0.29152703
提取 : 1 : 0.27927202
领取 : 1 : 0.27581802
职工 : 1 : 0.27381304
劳动 : 1 : 0.27370203
关系 : 1 : 0.27080503
本市 : 1 : 0.27080503
终止 : 1 : 0.27080503

SVM classificator

  1. training the samples.
SVMTrainer trainer = new SVMTrainer();
trainer.train();
  1. predicting text classification.
double[] data = trainer.getWordVector(text);
trainer.predict(data);

kmeans clustering && xmeans clustering

List<String> list = DataReader.readContent(KMeansCluster.DATA_FILE);
int[] labels = new KMeansCluster().learn(list);

vsm clustering

List<String> list = DataReader.readContent(VSMCluster.DATA_FILE);
List<String> labels = new VSMCluster().learn(list);

==========广告时间==========

公众号的菜单已分为“分布式”、“机器学习”、“深度学习”、“NLP”、“Java深度”、“Java并发核心”、“JDK源码”、“Tomcat内核”等,可能有一款适合你的胃口。

鄙人的新书《Tomcat内核设计剖析》已经在京东销售了,有需要的朋友可以购买。感谢各位朋友。

为什么写《Tomcat内核设计剖析》

=========================

欢迎关注:
这里写图片描述

版权声明:本文为博主原创文章,未经博主允许不得转载。

Github项目解析(十二)-->一个简单的多行文本显示控件

本文我们将讲解一个使用的多行文本显示控件,在实际开发过程中我们时常会遇到这种需求:有两个TextView控件分行显示,当第一个TextView的内容过多一行显示不下时,我们需要将第二个TextView...

支持中文文本的数据挖掘平台开源项目PyMining发布

本文转自http://www.cnblogs.com/LeftNotEasy/archive/2011/02/27/py_mining_first_release.html 前言   ...

对Github上一个开源项目图片选择器的分析

对两个比较优秀的开源图片选择器分析和总结。

支持中文文本的数据挖掘平台开源项目PyMining发布

前言      最近一个月,过年的时候天天在家里呆着,年后公司的事情也不断,有一段时间没有更新博客了。PyMining是我最近一段时间构思的一个项目,虽然目前看来比较微型。该项目主要是针对中文文本的...
  • zxsted
  • zxsted
  • 2013年12月03日 21:00
  • 675

Linux下对NS2项目的仿真分析全过程代码(从tcl脚本-awk文本处理-gnuplot)

1、编写 tcl 脚本文件,得到 out.tr 以及 out.nam 文件;out.tr文件存储的是仿真得到的数据运行代码:创建tcl文件:touch example.tcl (example为文件名...

统计一个大小为30kb~300kb的文本中各单词出现的频率,并输出前十个单词和进行程序性能分析

通过vs2012的分析菜单选择性能向导: 选择cpu采样,在选择可执行文件,完成后得到如下的分析结果: 从图可看出程序执行时间在3秒钟左右,在大约0.8秒时cpu使用百分比达到最大值,...

一个商业安卓APP(摩拜单车)所用到的开源项目

解压膜拜单车APP的的安装包,研究其使用的开源项目或者说框架
  • yiwen01
  • yiwen01
  • 2017年06月08日 23:15
  • 1246
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:开源一个文本分析项目
举报原因:
原因补充:

(最多只允许输入30个字)