本文整理汇总了Java中org.ansj.app.keyword.KeyWordComputer.computeArticleTfidf方法的典型用法代码示例。如果您正苦于以下问题:Java KeyWordComputer.computeArticleTfidf方法的具体用法?Java KeyWordComputer.computeArticleTfidf怎么用?Java KeyWordComputer.computeArticleTfidf使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.ansj.app.keyword.KeyWordComputer
的用法示例。
在下文中一共展示了KeyWordComputer.computeArticleTfidf方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: buildKeywordMap
import org.ansj.app.keyword.KeyWordComputer; //导入方法依赖的package包/类
/**
* 获得一句话的关键词,并封装到一个Map中
*
* @param computer
* 关键词计算器
* @param segment
* 句子
* @return
* 关键词Map
*/
public static Map<String, Double> buildKeywordMap(KeyWordComputer computer, String segment) {
Collection<Keyword> result = computer.computeArticleTfidf(segment, "");
Map<String, Double> keywordMap = new HashMap<>();
for (Keyword keyword : result) {
if (StringUtils.isEmpty(keyword.getName())) {
continue;
}
keywordMap.put(keyword.getName(), keyword.getScore());
}
return keywordMap;
}
示例2: analysis
import org.ansj.app.keyword.KeyWordComputer; //导入方法依赖的package包/类
/**
* 主题发现
*
* @param segments
* 所有讨论信息
*/
public void analysis(List<String> segments) {
if (segments == null || segments.size() == 0) {
throw new NullPointerException("analysis > 请给出一个有效的输入信息");
}
KeyWordComputer computer = new KeyWordComputer(20); // 关键词计算器
Map<String, Integer> keywordMap = new HashMap<>();
for (String segment : segments) {
System.out.println("原文:" + segment);
System.out.println("分词:" + SubjectTools.filterSlightNature(SubjectTools.filterBlackList(segment, blackListFilter)));
Collection<Keyword> result = computer.computeArticleTfidf(SubjectTools.filterSlightNature(segment), ""); // 关键词计算结果
for (Keyword keyword : result) {
if (blackListFilter.contains(keyword.getName())) {
continue;
}
if (keywordMap.get(keyword.getName()) == null) {
keywordMap.put(keyword.getName(), 1);
} else {
keywordMap.put(keyword.getName(), 1 + keywordMap.get(keyword.getName()));
}
}
}
List<Map.Entry<String, Integer>> sortedMap = MapUtils.sortIntegerMap(keywordMap);
System.out.println(sortedMap);
}
示例3: chineseToken
import org.ansj.app.keyword.KeyWordComputer; //导入方法依赖的package包/类
@Test
public void chineseToken() {
KeyWordComputer kwc = new KeyWordComputer(5);
String title = "维基解密否认斯诺登接受委内瑞拉庇护";
String content = "有俄罗斯国会议员,9号在社交网站推特表示,美国中情局前雇员斯诺登,已经接受委内瑞拉的庇护,不过推文在发布几分钟后随即删除。俄罗斯当局拒绝发表评论,而一直协助斯诺登的维基解密否认他将投靠委内瑞拉。 俄罗斯国会国际事务委员会主席普什科夫,在个人推特率先披露斯诺登已接受委内瑞拉的庇护建议,令外界以为斯诺登的动向终于有新进展。 不过推文在几分钟内旋即被删除,普什科夫澄清他是看到俄罗斯国营电视台的新闻才这样说,而电视台已经作出否认,称普什科夫是误解了新闻内容。 委内瑞拉驻莫斯科大使馆、俄罗斯总统府发言人、以及外交部都拒绝发表评论。而维基解密就否认斯诺登已正式接受委内瑞拉的庇护,说会在适当时间公布有关决定。 斯诺登相信目前还在莫斯科谢列梅捷沃机场,已滞留两个多星期。他早前向约20个国家提交庇护申请,委内瑞拉、尼加拉瓜和玻利维亚,先后表示答应,不过斯诺登还没作出决定。 而另一场外交风波,玻利维亚总统莫拉莱斯的专机上星期被欧洲多国以怀疑斯诺登在机上为由拒绝过境事件,涉事国家之一的西班牙突然转口风,外长马加略]号表示愿意就任何误解致歉,但强调当时当局没有关闭领空或不许专机降落。";
Collection<Keyword> result = kwc.computeArticleTfidf(title, content);
//System.out.println(result.iterator().next().getName());
//[斯诺登/211.83897497289786, 维基/163.46869316143392, 委内瑞拉/101.31414008144232, 庇护/46.05172894231714, 俄罗斯/45.70875018647603]
for (Keyword keyword : result) {
System.out.println(keyword.getName());
}
}
示例4: toSummary
import org.ansj.app.keyword.KeyWordComputer; //导入方法依赖的package包/类
/**
* 计算摘要,传入用户自己算好的关键词
*
* @return
*/
public Summary toSummary(List<Keyword> keywords) {
if (keywords == null) {
keywords = new ArrayList<Keyword>();
}
if (keywords.isEmpty()) {
KeyWordComputer kc = new KeyWordComputer(10);
keywords = kc.computeArticleTfidf(title, content);
}
return explan(keywords, content);
}