一、简介
旨在帮助用户自动挖掘文本标签,是特征关键词提取工具,工具中集成了TextRank、TF-IDF算法、词跨度(SPAN)算法和LDA主题模型算法。
使用方法:
二、使用方法
2.1.TextRank
2.1.1.理论
参考:
2.1.2.调用方法
public static void main(String[] args) {
String field = "6个小动作 让你秒秒都能瘦 这是一套小动作组成的瘦身操。看过之后你会觉得,原来真的可以无处不在,生活中的任何一个细节,都可以抓紧机会锻炼和减肥的,真是太简单了。 1、 门框斜压收内侧赘肉方法:身体离门框约1步距离,手摸门框下压,左右各3秒钟。 效果:平日运动不到的身体内侧可以得到很好的拉伸。 2、刷杯子瘦手臂 方法:手臂尽量抬高,做刷杯子的动作,换手再做10分钟。 效果:收紧手臂,紧致乳房。 3、 反手拿重物提臀瘦手臂方法:双手在身体后面做提拉重物动作。 效果:一周臀线上升2,手臂纤细2。 4、 读书收腹减腿法方法:坐在椅子上读书的时候双膝之间夹毛巾,保持毛巾不掉下来即可。 效果:收紧肚子、大腿赘肉。 5、开门瘦四肢方法:。双手交换做开拉门的动作;。双脚交换做开拉门的动作。 效果:拉伸四肢赘肉,雕塑四肢线条。 // 6、金鸡独立穿鞋瘦腰 动作:单脚站立做穿鞋的动作。 效果:伸拉腰部赘肉,直接瘦腰。 (实习编辑:李紫嫣) ";
List<String> keywords = Demo.textRank(field,10);
System.out.println("关键词:" + keywords);
}
2.1.3.结果
效果, 动作, 方法, 赘肉, 门框, 手臂, 身体, 小动作, 四肢, 瘦腰
2.2.tf-idf算法
2.2.1.理论:
参考:
2.2.2.训练模型
@Test
public void IDFModelFit() throws Exception {
IDFModelOption option = new IDFModelOption()
.setMinFrequencey(2)
.setDir("data/")
.setModelDir("model/IDF/");
IDFModel model = new IDFModel(option);
model.fit();
}
2.2.3.调用方法
@Test
public void ldaTest() throws Exception {
Option option = new Option()
.setMetric(Metric.AVERAGE)
.setStrategies(StrategyMetrics.IDF)
.setModelOptions(new IDFModelOption())
.setFilter(MyStopRecognition.getInstance());
LabelHelper helper = new LabelHelper(option).build();
String str = "6个小动作 让你秒秒都能瘦 这是一套小动作组成的瘦身操。看过之后你会觉得,原来真的可以无处不在,生活中的任何一个细节,都可以抓紧机会锻炼和减肥的,真是太简单了。 1、 门框斜压收内侧赘肉方法:身体离门框约1步距离,手摸门框下压,左右各3秒钟。 效果:平日运动不到的身体内侧可以得到很好的拉伸。 2、刷杯子瘦手臂 方法:手臂尽量抬高,做刷杯子的动作,换手再做10分钟。 效果:收紧手臂,紧致乳房。 3、 反手拿重物提臀瘦手臂方法:双手在身体后面做提拉重物动作。 效果:一周臀线上升2,手臂纤细2。 4、 读书收腹减腿法方法:坐在椅子上读书的时候双膝之间夹毛巾,保持毛巾不掉下来即可。 效果:收紧肚子、大腿赘肉。 5、开门瘦四肢方法:。双手交换做开拉门的动作;。双脚交换做开拉门的动作。 效果:拉伸四肢赘肉,雕塑四肢线条。 // 6、金鸡独立穿鞋瘦腰 动作:单脚站立做穿鞋的动作。 效果:伸拉腰部赘肉,直接瘦腰。 (实习编辑:李紫嫣) ";
List<KeywordLabel> labels = helper.predict(str, 10);
for (KeywordLabel keywordLabel : labels) {
System.out.println(keywordLabel);
}
}
2.2.4.结果
门框=3.664074638671668
拉门=3.6097760747158785
穿鞋=3.040698275381654
小动作=2.5687126373035953
四肢=2.5614579554770067
斜压=2.553252568940863
赘肉=2.5139555911034943
重物=2.3745791096209836
杯子=2.3572229308186
读书=2.2068687144082118
手摸=2.1985823826579303
2.3.词跨度算法
2.3.1.理论:
词跨度是指一个词或者短语字文中首次出现和末次出现之间的距离,词跨度越大说明这个词对文本越重要,可以反映文本的主题。一个词的跨度计算公式如下:
其中,lasti表示词i在文本中最后出现的位置, firsti表示词 i 在文本中第一次出现的位置,sum表示文本中词的总数。
词跨度被作为提取关键词的方法是因为在现实中,文本中总是有很多噪声(指不是关键词的那些词),使用词跨度可以减少这些噪声。
2.3.2.调用方法
@Test
public void ldaTest() throws Exception {
Option option = new Option()
.setMetric(Metric.AVERAGE)
.setStrategies(StrategyMetrics.SPAN)
.setModelOptions(new WordSpanModelOption())
.setFilter(MyStopRecognition.getInstance());
LabelHelper helper = new LabelHelper(option).build();
String str = "6个小动作 让你秒秒都能瘦 这是一套小动作组成的瘦身操。看过之后你会觉得,原来真的可以无处不在,生活中的任何一个细节,都可以抓紧机会锻炼和减肥的,真是太简单了。 1、 门框斜压收内侧赘肉方法:身体离门框约1步距离,手摸门框下压,左右各3秒钟。 效果:平日运动不到的身体内侧可以得到很好的拉伸。 2、刷杯子瘦手臂 方法:手臂尽量抬高,做刷杯子的动作,换手再做10分钟。 效果:收紧手臂,紧致乳房。 3、 反手拿重物提臀瘦手臂方法:双手在身体后面做提拉重物动作。 效果:一周臀线上升2,手臂纤细2。 4、 读书收腹减腿法方法:坐在椅子上读书的时候双膝之间夹毛巾,保持毛巾不掉下来即可。 效果:收紧肚子、大腿赘肉。 5、开门瘦四肢方法:。双手交换做开拉门的动作;。双脚交换做开拉门的动作。 效果:拉伸四肢赘肉,雕塑四肢线条。 // 6、金鸡独立穿鞋瘦腰 动作:单脚站立做穿鞋的动作。 效果:伸拉腰部赘肉,直接瘦腰。 (实习编辑:李紫嫣) ";
List<KeywordLabel> labels = helper.predict(str, 20);
for (KeywordLabel keywordLabel : labels) {
System.out.println(keywordLabel);
}
}
2.3.3.结果
赘肉=0.82
效果=0.72
动作=0.58
方法=0.56
拉伸=0.53
身体=0.3
双手=0.28
收紧=0.27
手臂=0.21
四肢=0.16
2.4.LDA主题模型算法
2.4.1.理论:
参考:
2.4.2.训练模型
@Test
public void LDAModelFit() throws Exception {
LDAModelOption option = new LDAModelOption()
.setDir("data/") //训练文件
.setModelDir("model/LDA/") //模型保存文件夹
.setModelName("model-final")//模型多次迭代,默认选择最后一轮结果
.setNiters(100)//迭代轮次
.setTwords(20)//top词数
.setK(100);//主题数量
LDAModel model = new LDAModel(option);
model.fit();
}
2.4.3.调用方法
@Test
public void ldaTest() throws Exception {
Option option = new Option()
.setMetric(Metric.AVERAGE)
.setStrategies(StrategyMetrics.LDA)
.setModelOptions(new LDAModelOption());
LabelHelper helper = new LabelHelper(option).build();
String str = "6个小动作 让你秒秒都能瘦 这是一套小动作组成的瘦身操。看过之后你会觉得,原来真的可以无处不在,生活中的任何一个细节,都可以抓紧机会锻炼和减肥的,真是太简单了。 1、 门框斜压收内侧赘肉方法:身体离门框约1步距离,手摸门框下压,左右各3秒钟。 效果:平日运动不到的身体内侧可以得到很好的拉伸。 2、刷杯子瘦手臂 方法:手臂尽量抬高,做刷杯子的动作,换手再做10分钟。 效果:收紧手臂,紧致乳房。 3、 反手拿重物提臀瘦手臂方法:双手在身体后面做提拉重物动作。 效果:一周臀线上升2,手臂纤细2。 4、 读书收腹减腿法方法:坐在椅子上读书的时候双膝之间夹毛巾,保持毛巾不掉下来即可。 效果:收紧肚子、大腿赘肉。 5、开门瘦四肢方法:。双手交换做开拉门的动作;。双脚交换做开拉门的动作。 效果:拉伸四肢赘肉,雕塑四肢线条。 // 6、金鸡独立穿鞋瘦腰 动作:单脚站立做穿鞋的动作。 效果:伸拉腰部赘肉,直接瘦腰。 (实习编辑:李紫嫣) ";
List<KeywordLabel> labels = helper.predict(str, 10);
for (KeywordLabel keywordLabel : labels) {
System.out.println(keywordLabel);
}
}
2.4.4.结果
动作=3.8887724510139923
身体=2.661365600884695
运动=2.3764437116685673
双手=1.49493318442435
锻炼=1.469841001945945
手臂=1.0400248680048332
大腿=0.9809437721154729
编辑=0.700652470796032
实习=0.6795867783590948
双脚=0.6585776522809864
三、应用分析
四个工具的关键词提取效果其实差距不大,总体来看 TextRank≈SPAN > LDA > TF-IDF,运行速率也无明显差别,可根据项目需求选用(个人推荐TextRank、SPAN,不用训练模型).