private List<String> getKeyWord(String text) throws IOException {
List<String> keywords = new ArrayList<String>();
if (!Common.empty(text)) {
Map<String, Integer> words = new HashMap<String, Integer>();
Analyzer analyzer = new IKAnalyzer(true);
StringReader reader = new StringReader(text);
TokenStream tokenStream = analyzer.tokenStream("*", reader);
TermAttribute termAtt = (TermAttribute) tokenStream.getAttribute(TermAttribute.class);
while (tokenStream.incrementToken()) {
String word = termAtt.term();
if (word.length() > 1 && Common.strlen(word) > 2) {
Integer count = words.get(word);
if (count == null) {
count = 0;
}
words.put(word, count + 1);
}
}
if (words.size() > 0) {
Directory dir = null;
IndexSearcher searcher = null;
try {
String fieldName = "text";
dir = new RAMDirectory();
IndexWriter writer = new IndexWriter(dir, analyzer, true,
IndexWriter.MaxFieldLength.LIMITED);
Document doc = new Document();
doc.add(new Field(fieldName, text, Field.Store.YES, Field.Index.ANALYZED));
writer.addDocument(doc);
writer.close();
searcher = new IndexSearcher(dir);
searcher.setSimilarity(new IKSimilarity());
Set<String> keys = words.keySet();
Map<String, Float> temps = new HashMap<String, Float>();
for (String key : keys) {
int count = words.get(key);
Query query = IKQueryParser.parse(fieldName, key);
TopDocs topDocs = searcher.search(query, 1);
if (topDocs.totalHits > 0) {
temps.put(key, topDocs.getMaxScore() * count);
}
}
Entry<String, Float>[] keywordEntry = getSortedHashtableByValue(temps);
for (Entry<String, Float> entry : keywordEntry) {
if (keywords.size() < 5) {
keywords.add(entry.getKey());
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
searcher.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
dir.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
return keywords;
}
分享到:
相关推荐
网页主题词自动抽取是信息处理和检索领域的重要技术,它旨在从大量的网页内容中自动识别出能够代表页面主题的关键词。由于手动抽取主题词工作量巨大且效率低下,因此研究者们转向利用机器学习的方法来解决这一问题。...
通过自动抽取网页主要内容,可以提升用户体验,提高信息处理的效率和质量。 总结,"web网页主内容抽取"项目提供了一个实用的Java解决方案,结合了多种策略来识别和提取网页中的主要信息。对于开发者来说,这是一个...
标题自动标注程序是一种高效便捷的工具,主要用于自动化地从文章内容中识别并提取标题,极大地提高了编辑的工作效率。这项技术的核心是图像处理和图像分割,这两个领域在IT行业中具有广泛的应用,尤其是在文档处理、...
4. 远程监督:远程监督(Distant Supervision)是关系抽取中的一种常用技术,它通过已有的知识库或本体中的信息来自动化地标注语料库,以生成大量的训练数据。这种方法可以减轻人工标注数据的工作量,但可能会引入...
“文章自动生成摘要”这一技术涉及到了计算机科学中自然语言处理(NLP)的领域,它结合了机器学习、深度学习、信息抽取以及文本Ranking等先进的算法,通过分析句子间的关联性、关键词的重要性以及语义相似度,智能地...
PDF文档中的文本通常分为文本段落和文字流表格,但PDF格式本身的非结构化特性使得自动内容抽取变得复杂。内容抽取阶段,文章指出,关键在于准确保留PDF的结构化信息,比如段落和表格,并减少噪声。 接着,文章分析...
当然每个抽取器能够使用的参数是不一样的,本文就不详细一一列举了,在以后的文章中,我们会详细列举每个抽取器的参数及对应抽取内容。Toxy高级扩展功能Toxy除了提供基础的抽取功能,也提供一些高级的对象转换服务,...
总的来说,“testGNE_抽取文本_”是一个致力于从新闻网站中自动抽取文本和标题的工具,它的实现涉及到网络爬虫技术、HTML解析、数据抽取以及可能的数据存储和分析。对于想要理解和使用这个工具的人来说,需要熟悉...
"万金油正文抽取器体验版"是一款专为新闻和博客设计的正文提取工具,它采用了基于最大文本块的算法来自动识别并提取文本的主要内容。在新闻报道和博客文章中,正文通常被包围在广告、导航栏、侧边栏等非主要内容之中...
最后,文章列出了关键词,包括自然语言处理(Natural Language Processing, NLP)、评价对象抽取(Opinion Target Extraction)、堆叠降噪自动编码器(Stacked Denoising Autoencoders, SDAE)以及观点挖掘(Opinion...
【互联网网页文本对象抽取实现技术】是针对当前信息爆炸时代的一种解决方案,旨在从海量网络文本中自动抽取结构化的信息,以便进行高效的搜索和信息整合。本文主要探讨的是如何利用HTML特征和机器学习方法来实现博客...
文章中虽然没有明确提及,但根据自适应Web数据抽取技术的研究现状,未来可能会着重于提高抽取技术的智能化水平,减少人工干预,以及处理更加复杂和动态变化的Web页面结构。 总结来说,自适应Web页面数据抽取方法...
3. **智能分段**:通过分析文章的段落结构,自动将连续的正文内容合并成合适的段落。 4. **语义分析**:利用自然语言处理技术,判断文本的语义相关性,确保抽出的是新闻的核心内容。 5. **可配置性**:开发者可以...
例如,我们可以找到HTML中特定的标签和类名,如`<h1>`(标题)、`<p>`(段落)等,来抽取文章内容。 接着,我们将使用文件操作功能,确保本地有Java运行环境。Java标准库中的File类提供了读写文件的功能,我们可以...
中文网络招聘文本分析,特别是专业技能词的自动抽取,对于理解企业对人才需求和优化人力资源配置具有重要意义。由于网络招聘文本的特殊性,技能词通常夹杂在大量的文本信息中,因此准确地从非结构化的文本中提取出...
当用户搜索或浏览文章时,系统可以根据这些自动生成的标签快速匹配相关的内容,从而提升推荐效果。这种方法尤其适用于大量文章且人工设置标签不切实际的情况。 总结起来,Node.js 结合 nodejieba 提供的分词和...