`
javafan_303
  • 浏览: 958953 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

根据文章内容自动抽取标签

 
阅读更多

	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;
	}
 
分享到:
评论

相关推荐

    基于机器学习的网页主题词自动抽取.pdf

    网页主题词自动抽取是信息处理和检索领域的重要技术,它旨在从大量的网页内容中自动识别出能够代表页面主题的关键词。由于手动抽取主题词工作量巨大且效率低下,因此研究者们转向利用机器学习的方法来解决这一问题。...

    web网页主内容抽取

    通过自动抽取网页主要内容,可以提升用户体验,提高信息处理的效率和质量。 总结,"web网页主内容抽取"项目提供了一个实用的Java解决方案,结合了多种策略来识别和提取网页中的主要信息。对于开发者来说,这是一个...

    文章标题自动标注程序

    标题自动标注程序是一种高效便捷的工具,主要用于自动化地从文章内容中识别并提取标题,极大地提高了编辑的工作效率。这项技术的核心是图像处理和图像分割,这两个领域在IT行业中具有广泛的应用,尤其是在文档处理、...

    论文研究-基于多实例多标签BLSTM神经网络的中文关系抽取 .pdf

    4. 远程监督:远程监督(Distant Supervision)是关系抽取中的一种常用技术,它通过已有的知识库或本体中的信息来自动化地标注语料库,以生成大量的训练数据。这种方法可以减轻人工标注数据的工作量,但可能会引入...

    文章自动生成摘要

    “文章自动生成摘要”这一技术涉及到了计算机科学中自然语言处理(NLP)的领域,它结合了机器学习、深度学习、信息抽取以及文本Ranking等先进的算法,通过分析句子间的关联性、关键词的重要性以及语义相似度,智能地...

    一种面向多需求的PDF文档信息抽取方法1

    PDF文档中的文本通常分为文本段落和文字流表格,但PDF格式本身的非结构化特性使得自动内容抽取变得复杂。内容抽取阶段,文章指出,关键在于准确保留PDF的结构化信息,比如段落和表格,并减少噪声。 接着,文章分析...

    .NET平台上的文件抽取框架toxy.zip

    当然每个抽取器能够使用的参数是不一样的,本文就不详细一一列举了,在以后的文章中,我们会详细列举每个抽取器的参数及对应抽取内容。Toxy高级扩展功能Toxy除了提供基础的抽取功能,也提供一些高级的对象转换服务,...

    testGNE_抽取文本_

    总的来说,“testGNE_抽取文本_”是一个致力于从新闻网站中自动抽取文本和标题的工具,它的实现涉及到网络爬虫技术、HTML解析、数据抽取以及可能的数据存储和分析。对于想要理解和使用这个工具的人来说,需要熟悉...

    万金油正文抽取器体验版

    "万金油正文抽取器体验版"是一款专为新闻和博客设计的正文提取工具,它采用了基于最大文本块的算法来自动识别并提取文本的主要内容。在新闻报道和博客文章中,正文通常被包围在广告、导航栏、侧边栏等非主要内容之中...

    论文研究-基于堆叠降噪自动编码器的评价对象抽取 .pdf

    最后,文章列出了关键词,包括自然语言处理(Natural Language Processing, NLP)、评价对象抽取(Opinion Target Extraction)、堆叠降噪自动编码器(Stacked Denoising Autoencoders, SDAE)以及观点挖掘(Opinion...

    互联网网页文本对象抽取实现技术本科毕业论文.doc

    【互联网网页文本对象抽取实现技术】是针对当前信息爆炸时代的一种解决方案,旨在从海量网络文本中自动抽取结构化的信息,以便进行高效的搜索和信息整合。本文主要探讨的是如何利用HTML特征和机器学习方法来实现博客...

    自适应Web页面数据抽取方法

    文章中虽然没有明确提及,但根据自适应Web数据抽取技术的研究现状,未来可能会着重于提高抽取技术的智能化水平,减少人工干预,以及处理更加复杂和动态变化的Web页面结构。 总结来说,自适应Web页面数据抽取方法...

    cpp-网站新闻页通用的正文抽取组件

    3. **智能分段**:通过分析文章的段落结构,自动将连续的正文内容合并成合适的段落。 4. **语义分析**:利用自然语言处理技术,判断文本的语义相关性,确保抽出的是新闻的核心内容。 5. **可配置性**:开发者可以...

    使用Java编写爬虫,一键获取CSDN文章内容.zip

    例如,我们可以找到HTML中特定的标签和类名,如`&lt;h1&gt;`(标题)、`&lt;p&gt;`(段落)等,来抽取文章内容。 接着,我们将使用文件操作功能,确保本地有Java运行环境。Java标准库中的File类提供了读写文件的功能,我们可以...

    基于深度学习的中文网络招聘文本中的技能词抽取方法.pdf

    中文网络招聘文本分析,特别是专业技能词的自动抽取,对于理解企业对人才需求和优化人力资源配置具有重要意义。由于网络招聘文本的特殊性,技能词通常夹杂在大量的文本信息中,因此准确地从非结构化的文本中提取出...

    使用 Node.js 对文本内容分词和关键词抽取

    当用户搜索或浏览文章时,系统可以根据这些自动生成的标签快速匹配相关的内容,从而提升推荐效果。这种方法尤其适用于大量文章且人工设置标签不切实际的情况。 总结起来,Node.js 结合 nodejieba 提供的分词和...

Global site tag (gtag.js) - Google Analytics