-
Notifications
You must be signed in to change notification settings - Fork 90
摘取关键词
Xusheng edited this page Feb 28, 2020
·
1 revision
List<String> extractKeyword(String document, int num)
通过TextRank算法计算每个词语的Rank值,并按Rank值降序排列,提取出前面的几个作为关键词,具体原理可以参见《TextRank算法提取关键词和摘要》。
- document: 文档
- num: 关键词数量
- return: 关键词列表
String document = "我国第二艘航空母舰下水仪式26日上午在中国船舶重工集团公司大连造船厂举行。" + "中共中央政治局委员、中央军委副主席范长龙出席仪式并致辞。9时许,仪式在雄壮的国歌声中开始。"
+ "按照国际惯例,剪彩后进行“掷瓶礼”。随着一瓶香槟酒摔碎舰艏,两舷喷射绚丽彩带,周边船舶一起鸣响汽笛,全场响起热烈掌声。"
+ "航空母舰在拖曳牵引下缓缓移出船坞,停靠码头。第二艘航空母舰由我国自行研制,2013年11月开工,2015年3月开始坞内建造。" + "目前,航空母舰主船体完成建造,动力、电力等主要系统设备安装到位。"
+ "出坞下水是航空母舰建设的重大节点之一,标志着我国自主设计建造航空母舰取得重大阶段性成果。" + "下一步,该航空母舰将按计划进行系统设备调试和舾装施工,并全面开展系泊试验。"
+ "海军、中船重工集团领导沈金龙、苗华、胡问鸣以及军地有关部门领导和科研人员、干部职工、参建官兵代表等参加仪式。";
List<String> wordList = AHANLP.extractKeyword(document, 5);
System.out.println(wordList);
[航空母舰, 进行, 仪式, 我国, 建造]
抽取关键词前需要进行分词,默认使用标准分词,也可以手动设置分词器类型
List<String> extractKeyword(String segType, String document, int num)
- segType: 分词器类型,"Standard"或"NLP"
- document: 文档
- num: 关键词数量
- return: 关键词列表
String document = "我国第二艘航空母舰下水仪式26日上午在中国船舶重工集团公司大连造船厂举行。" + "中共中央政治局委员、中央军委副主席范长龙出席仪式并致辞。9时许,仪式在雄壮的国歌声中开始。"
+ "按照国际惯例,剪彩后进行“掷瓶礼”。随着一瓶香槟酒摔碎舰艏,两舷喷射绚丽彩带,周边船舶一起鸣响汽笛,全场响起热烈掌声。"
+ "航空母舰在拖曳牵引下缓缓移出船坞,停靠码头。第二艘航空母舰由我国自行研制,2013年11月开工,2015年3月开始坞内建造。" + "目前,航空母舰主船体完成建造,动力、电力等主要系统设备安装到位。"
+ "出坞下水是航空母舰建设的重大节点之一,标志着我国自主设计建造航空母舰取得重大阶段性成果。" + "下一步,该航空母舰将按计划进行系统设备调试和舾装施工,并全面开展系泊试验。"
+ "海军、中船重工集团领导沈金龙、苗华、胡问鸣以及军地有关部门领导和科研人员、干部职工、参建官兵代表等参加仪式。";
List<String> wordList = AHANLP.extractKeyword("NLP", document, 5);
System.out.println(wordList);
[航空母舰, 仪式, 建造, 我国, 进行]
Map<String, Float> calWordRanks(String document)
通过TextRank算法计算文本中所有词语的rank值
- document: 文档
- return: 词语和对应的rank值
String document = "我国第二艘航空母舰下水仪式26日上午在中国船舶重工集团公司大连造船厂举行。" + "中共中央政治局委员、中央军委副主席范长龙出席仪式并致辞。9时许,仪式在雄壮的国歌声中开始。"
+ "按照国际惯例,剪彩后进行“掷瓶礼”。随着一瓶香槟酒摔碎舰艏,两舷喷射绚丽彩带,周边船舶一起鸣响汽笛,全场响起热烈掌声。"
+ "航空母舰在拖曳牵引下缓缓移出船坞,停靠码头。第二艘航空母舰由我国自行研制,2013年11月开工,2015年3月开始坞内建造。" + "目前,航空母舰主船体完成建造,动力、电力等主要系统设备安装到位。"
+ "出坞下水是航空母舰建设的重大节点之一,标志着我国自主设计建造航空母舰取得重大阶段性成果。" + "下一步,该航空母舰将按计划进行系统设备调试和舾装施工,并全面开展系泊试验。"
+ "海军、中船重工集团领导沈金龙、苗华、胡问鸣以及军地有关部门领导和科研人员、干部职工、参建官兵代表等参加仪式。";
Map<String, Float> wordRanks = AHANLP.calWordRanks(document);
System.out.println("词语-----rank值");
for (Map.Entry<String, Float> entry : wordRanks.entrySet())
System.out.println(entry.getKey() + "-----" + entry.getValue());
词语-----rank值
成果-----0.78051573
我国-----1.6564862
标志着-----0.7735108
建设-----0.8617868
电力-----0.8707139
阶段性-----0.77946883
...
同样地,默认使用标准分词器,也可以自定义分词器
Map<String, Float> calWordRanks(String segType, String document)
- segType: 分词器类型,"Standard"或"NLP"
- document: 文档
- return: 词语和对应的rank值
String document = "我国第二艘航空母舰下水仪式26日上午在中国船舶重工集团公司大连造船厂举行。" + "中共中央政治局委员、中央军委副主席范长龙出席仪式并致辞。9时许,仪式在雄壮的国歌声中开始。"
+ "按照国际惯例,剪彩后进行“掷瓶礼”。随着一瓶香槟酒摔碎舰艏,两舷喷射绚丽彩带,周边船舶一起鸣响汽笛,全场响起热烈掌声。"
+ "航空母舰在拖曳牵引下缓缓移出船坞,停靠码头。第二艘航空母舰由我国自行研制,2013年11月开工,2015年3月开始坞内建造。" + "目前,航空母舰主船体完成建造,动力、电力等主要系统设备安装到位。"
+ "出坞下水是航空母舰建设的重大节点之一,标志着我国自主设计建造航空母舰取得重大阶段性成果。" + "下一步,该航空母舰将按计划进行系统设备调试和舾装施工,并全面开展系泊试验。"
+ "海军、中船重工集团领导沈金龙、苗华、胡问鸣以及军地有关部门领导和科研人员、干部职工、参建官兵代表等参加仪式。";
Map<String, Float> wordRanks = AHANLP.calWordRanks("NLP", document);
System.out.println("词语-----rank值");
for (Map.Entry<String, Float> entry : wordRanks.entrySet())
System.out.println(entry.getKey() + "-----" + entry.getValue());
词语-----rank值
下水-----1.3254349
成果-----0.7700866
我国-----1.6952276
计划-----0.85975665
自主-----0.84989184
...