- 浏览: 203871 次
- 性别:
- 来自: 北京
最新评论
-
毛毛虫小白:
您好,这里说的基于角色标注就是用到了字体位频率表里,在“名字内 ...
介绍一种基于角色标注+字词体位法的人名识别方式-Ansj中文分词 -
assasszt:
请问 能不能加入写入文件功能,不然的话 是每次 执行 都是一个 ...
Java版本的BloomFilter (布隆过滤器) -
lhj_6270:
楼主不错。果然不是一般人。再接再厉弄个软件出来。
Java版本的BloomFilter (布隆过滤器) -
ansjsun:
fncj 写道你好,我们最近要搞一个人名识别功能,发现有两个问 ...
介绍一种基于角色标注+字词体位法的人名识别方式-Ansj中文分词 -
fncj:
你好,我们最近要搞一个人名识别功能,发现有两个问题:1、里有不 ...
介绍一种基于角色标注+字词体位法的人名识别方式-Ansj中文分词
公司有个项目让java从各种文档中抽取正文.
于是费了很多经历来写起初..去网上找demo
一下是摘抄一个哥们的例子
最后突然发现其实只用两行代码就能搞定
office 2003 - office 2007
于是我泪流满面....白忙乎了..顺路奉上解析pdf的吧
weka 神器..你用哪个吧..比这些好用
这已经是历史了..我告诉你四个字母 tiki 自己去搜去吧
于是费了很多经历来写起初..去网上找demo
一下是摘抄一个哥们的例子
package org.css.resource.businesssoft.searchengine.quwenjiansuo; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import org.apache.poi.POITextExtractor; import org.apache.poi.POIXMLDocument; import org.apache.poi.POIXMLTextExtractor; import org.apache.poi.extractor.ExtractorFactory; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hwpf.extractor.WordExtractor; import org.apache.poi.openxml4j.exceptions.OpenXML4JException; import org.apache.poi.openxml4j.opc.OPCPackage; import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.poi.xwpf.extractor.XWPFWordExtractor; import org.apache.xmlbeans.XmlException; /** * * @author lizh * */ public class CovertFile { /** * 从word 2003文档中提取纯文本 * @param is * @return * @throws IOException */ public static String extractTextFromDOC(InputStream is) throws IOException { WordExtractor ex = new WordExtractor(is); // is是WORD文件的InputStream return ex.getText(); } /** * 从word 2007文档中提取纯文本 * @param fileName * @return */ public static String extractTextFromDOC2007(String fileName) { try { OPCPackage opcPackage = POIXMLDocument.openPackage(fileName); POIXMLTextExtractor ex = new XWPFWordExtractor(opcPackage); return ex.getText(); } catch (Exception e) { return ""; } } /** * 从excel 2003文档中提取纯文本 * @param is * @return * @throws IOException */ private static String extractTextFromXLS(InputStream is) throws IOException { StringBuffer content = new StringBuffer(); HSSFWorkbook workbook = new HSSFWorkbook(is); // 创建对Excel工作簿文件的引用 for (int numSheets = 0; numSheets < workbook.getNumberOfSheets(); numSheets++) { if (null != workbook.getSheetAt(numSheets)) { HSSFSheet aSheet = workbook.getSheetAt(numSheets); // 获得一个sheet for (int rowNumOfSheet = 0; rowNumOfSheet <= aSheet .getLastRowNum(); rowNumOfSheet++) { if (null != aSheet.getRow(rowNumOfSheet)) { HSSFRow aRow = aSheet.getRow(rowNumOfSheet); // 获得一行 for (short cellNumOfRow = 0; cellNumOfRow <= aRow .getLastCellNum(); cellNumOfRow++) { if (null != aRow.getCell(cellNumOfRow)) { HSSFCell aCell = aRow.getCell(cellNumOfRow); // 获得列值 if (aCell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) { content.append(aCell.getNumericCellValue()); } else if (aCell.getCellType() == HSSFCell.CELL_TYPE_BOOLEAN) { content.append(aCell.getBooleanCellValue()); } else { content.append(aCell.getStringCellValue()); } } } } } } } return content.toString(); } /** * 从excel 2007文档中提取纯文本 * @param fileName * @return * @throws Exception */ private static String extractTextFromXLS2007(String fileName) throws Exception { StringBuffer content = new StringBuffer(); // 构造 XSSFWorkbook 对象,strPath 传入文件路径 XSSFWorkbook xwb = new XSSFWorkbook(fileName); // 循环工作表Sheet for (int numSheet = 0; numSheet < xwb.getNumberOfSheets(); numSheet++) { XSSFSheet xSheet = xwb.getSheetAt(numSheet); if (xSheet == null) { continue; } // 循环行Row for (int rowNum = 0; rowNum <= xSheet.getLastRowNum(); rowNum++) { XSSFRow xRow = xSheet.getRow(rowNum); if (xRow == null) { continue; } // 循环列Cell for (int cellNum = 0; cellNum <= xRow.getLastCellNum(); cellNum++) { XSSFCell xCell = xRow.getCell(cellNum); if (xCell == null) { continue; } if (xCell.getCellType() == XSSFCell.CELL_TYPE_BOOLEAN) { content.append(xCell.getBooleanCellValue()); } else if (xCell.getCellType() == XSSFCell.CELL_TYPE_NUMERIC) { content.append(xCell.getNumericCellValue()); } else { content.append(xCell.getStringCellValue()); } } } } return content.toString(); } /** * 从excel 2007文档中提取纯文本 * @param fileName * @return */ public static String getXLS2007(String fileName){ String doc = ""; try{ doc = extractTextFromXLS2007(fileName); return doc; }catch(Exception e){ return ""; } } /** * 从ppt 2003、2007文档中提取纯文本 * @param fileName * @return */ public static String getPPTX(String fileName){ String doc = ""; try{ File inputFile = new File(fileName); POITextExtractor extractor = ExtractorFactory.createExtractor(inputFile); doc = extractor.getText(); return doc; }catch(Exception e){ return ""; } } public static void main(String[] args) { try { // String wordFile = "D:/松山血战.docx"; // String wordText2007 = CovertFile.extractTextFromDOC2007(wordFile); // System.out.println("wordText2007=======" + wordText2007); // // InputStream is = new FileInputStream("D:/XXX研发中心技术岗位职位需求.xls"); // String excelText = CovertFile.extractTextFromXLS(is); // System.out.println("text2003==========" + excelText); // String excelFile = "D:/zh.xlsx"; // String excelText2007 = CovertFile.extractTextFromXLS2007(excelFile); // System.out.println("excelText2007==========" + excelText2007); String pptFile = "D:/zz3.ppt"; String pptx = CovertFile.getPPTX(pptFile); System.out.println("pptx==========" + pptx); } catch (Exception e) { e.printStackTrace(); } } }
最后突然发现其实只用两行代码就能搞定
office 2003 - office 2007
POITextExtractor extractor = ExtractorFactory.createExtractor(f); return extractor.getText();
于是我泪流满面....白忙乎了..顺路奉上解析pdf的吧
package com.lingjoin.extractors; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.IOException; import java.io.StringReader; import java.util.Date; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDDocumentInformation; import org.apache.pdfbox.util.PDFTextStripper; import com.lingjoin.paser.LingJoinFile; /** * PDF解析器 * * @author Ansj * */ public class PDFExtractor extends AbstractExtractor { private String getContent(LingJoinFile f) { // TODO Auto-generated method stub PDDocument doc = null ; try { doc = PDDocument.load(f); PDFTextStripper stripper = new PDFTextStripper(); /** * 设置文件的信息 */ this.setLingJoinFileInfo(f, doc .getDocumentInformation()); return stripper.getText(doc); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { if (doc != null) { try { doc.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } return ""; } private BufferedReader getContentReader(LingJoinFile f) { return new BufferedReader(new StringReader(this.getContent(f))); } /** * * 项目名称:FilePaser * 类描述: 设置文件的信息 * 创建人:ANSJ * 创建时间:2010-4-14 下午04:27:57 * 修改备注: * @version */ private void setLingJoinFileInfo(LingJoinFile f, PDDocumentInformation info) { if (info.getAuthor() != null) { f.setlAuthor(info.getAuthor()); } // try { // if (info.getModificationDate() != null) { // Date date = info.getModificationDate().getTime(); // f.setlModificationDate(date.getTime()); // } // } catch (IOException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } //设置标题 // if (info.getTitle() != null) { // f.setlTitle(info.getTitle()); // } } public void paserFileToReader(LingJoinFile f) throws Exception { f.setlContentReader(this.getContentReader(f)) ; } public void paserFileToString(LingJoinFile f) throws Exception { // TODO Auto-generated method stub f.setlContent(this.getContent(f)) ; } public PDFExtractor(Integer typeFlag) { // TODO Auto-generated constructor stub this.typeFlag = typeFlag ; } private Integer typeFlag = null ; public Integer getTypeFlag() { // TODO Auto-generated method stub return typeFlag; } }
评论
5 楼
ansjsun
2013-04-25
xiaorongrongcc 写道
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.poi.poifs.filesystem.POIFSFileSystem.hasPOIFSHeader(Ljava/io/InputStream;)Z
我一直会报这个错误,网上有说是包的问题,请问下你加的那些包咯
我一直会报这个错误,网上有说是包的问题,请问下你加的那些包咯
weka 神器..你用哪个吧..比这些好用
4 楼
xiaorongrongcc
2013-04-24
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.poi.poifs.filesystem.POIFSFileSystem.hasPOIFSHeader(Ljava/io/InputStream;)Z
我一直会报这个错误,网上有说是包的问题,请问下你加的那些包咯
我一直会报这个错误,网上有说是包的问题,请问下你加的那些包咯
3 楼
ansjsun
2012-04-02
fxiaozj 写道
能不能发下全部的源码,AbstractExtractor LingJoinFile
这已经是历史了..我告诉你四个字母 tiki 自己去搜去吧
2 楼
fxiaozj
2012-04-02
能不能发下全部的源码,AbstractExtractor LingJoinFile
1 楼
jordan421
2010-11-28
··· 正好,好东西,入我库拉
发表评论
-
介绍一种基于角色标注+字词体位法的人名识别方式-Ansj中文分词
2012-09-14 13:35 7246大家好.最近在做分词.在分词中遇到了各种各样的问题 ... -
介绍一种基于角色标注+字词体位法的人名识别方式-Ansj中文分词
2012-09-14 13:04 13大家好.最近在做分词.在分词中遇到了各种各样的问题 ... -
Combining Probabilities-结合概率
2012-04-19 14:23 0这就是联合概率的计算公式 介绍..原文 htt ... -
贝叶斯学习笔记
2012-04-19 11:21 1622一.什么是贝叶斯 ... -
大话字符编码发展史
2012-04-06 17:17 3766ASCII码 ASCII码于1968年提出,用于在不同计 ... -
新浪微博采集利用javascript爬取
2012-02-16 16:17 85在一个群里有人问新浪微博的抓取. 因为需求特殊..试了一次通 ... -
元宵爬虫-YuanXiaoSpider
2012-02-06 12:25 4575翻译了下..没有元宵的淫文啊....所以用PinYing吧.. ... -
到1亿的自然数,求所有数的拆分后的数字之和
2012-02-02 16:57 2145public static void main(String[ ... -
<<这就是搜索引擎>>学习笔记-算法之索引压缩
2012-01-19 16:20 2328前一段时间.在微博上中奖了. 一个叫张俊林的帅锅.送了俺一本书 ... -
文本相似度计算-Levenshtein
2012-01-13 11:26 2034参见网址http://www.merriamp ... -
一个不会重复的HelloWord 随机大小写....
2011-12-01 16:53 1237一个不会重复的HelloWord 随机大小写.... 代码没有 ... -
简单版数独计算器-升级版
2011-11-03 12:28 1708只能算初级的..高级的就溢出了 就算内存无穷大.可能性超过 ... -
java算法专题-归并排序
2011-11-02 21:32 1430归并的思想就是分治.时间复杂度..忘记了 大概实现了下..还 ... -
一个关键字标红的通用类
2011-09-15 20:32 3425import java.lang.reflect.Array; ... -
二分法查找
2011-09-13 15:03 1771import java.util.Arrays; / ... -
二叉树法插入查找例子
2011-09-13 14:52 1422二分法查找...查找... 代码比较简单...没有注释了 ... -
java Hash算法大全(转载的)
2011-09-09 00:05 2830/** * Hash算法大全<br> * 推荐 ... -
Java版本的BloomFilter (布隆过滤器)
2011-09-08 17:38 11093哈哈...我终于写了个BloomFilter 这个是干嘛用的 ... -
BitMap 用于查重..只能查数字
2011-09-01 10:26 2590package ansj.sun.util; public ... -
2B高亮.单位要用凑合用吧..自己趁着老婆洗狗的时候写的
2011-08-29 21:12 1431没有用任何算法.没有用 ...
相关推荐
Java解析JSON文件是Java开发中常见的一项任务,特别是在与Web服务交互或处理API响应时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其简洁和易于阅读及编写的特点,被广泛应用于网络数据传输...
总结来说,用JAVA解析DBC文件涉及的关键技术包括文件I/O操作、字符串处理、数据类型转换以及对象建模。在处理过程中需关注数据的大小端问题,以确保解析的正确性。同时,解析后的数据可以用于多种汽车相关的软件开发...
java解析PDF格式的文件demo。JAVA实现PDF解析,对PDF文件中的文本内容可输出仅供参考学习,不喜勿喷。
#### 三、Java解析MHT文件的关键步骤 ##### 3.1 获取MHT文件内容 在Java中,首先需要读取MHT文件的全部内容到字符串中。这可以通过`InputStream`和`IOUtils`工具类来实现。 ```java String mhts = IOUtils....
Java 解析 DBF 文件方案 Java 解析 DBF 文件方案是使用 Java 语言来读取和解析 DBF 文件的方法。DBF 文件是一种常见的数据库文件格式,广泛应用于许多行业。为了读取和解析 DBF 文件,需要使用 Java 语言中的数据库...
【标题】:“java解析DWG文件为json使用superMap” 【描述】:“java使用superMap解析DWG文件为json输出,本地通过,附件中为word操方式按照步骤可以导入数据集” 【标签】:“java解析DWG文件json java读取dwg...
Java解析CHM文件是将Microsoft的 Compiled HTML Help (CHM) 文件转换成HTML网页的过程。CHM文件是一种常见的帮助文档格式,它包含了多个HTML页面、图像和其他资源,并使用了一种特殊的压缩方法存储。在Java中处理CHM...
Java解析时,可以创建一个数据结构来存储节区信息,并根据节区头部表的指针逐一解析。 为了实现上述功能,Java程序员通常会创建自定义的类来表示ELF文件的各种结构,如`ElfHeader`、`ProgramHeader`和`Section...
在Java编程环境中,解析Shapefile(.shp)文件是一项常见的任务,特别是在地理信息系统(GIS)应用中。Shapefile是一种广泛用于存储地理空间数据的开放格式。为了在Java中处理这些文件,我们可以利用开源库GeoTools...
本文将深入探讨如何在Java中解析YAML文件,包括依赖管理、封装解析类以及源码分析。 首先,为了在Java项目中使用YAML解析功能,我们需要引入相关的库。在Maven项目中,可以在`pom.xml`文件中添加SnakeYAML的依赖: ...
本篇文章将详细讲解如何使用`meteoInfo`和`geotools`这两个Java库来解析`shp`文件,提取其中的数据,并获取边界线数据、中心点坐标以及最大和最小经纬度值。 `meteoInfo`是一个专门处理气象数据的Java库,虽然它的...
Java解析气象数据.nc文件依赖jar包,Java解析气象数据.nc文件依赖jar包
Java解析FTP服务器文本文件 Java解析FTP服务器文本文件是指使用Java语言连接FTP服务器,上传、下载、递归目录遍历等基本操作的集合。在这个过程中,我们需要引入相关的jar包,例如cpdetector.jar、jchardet-1.0.jar...
Java实现解析dcm医学影像文件并提取文件信息的方法示例 本文主要介绍了Java实现解析dcm医学影像文件并提取文件信息的方法,结合实例形式分析了Java基于第三方库文件针对dcm医学影像文件的解析操作相关实现技巧。...
下面将详细介绍如何使用Java进行GRIB2文件的读取和解析。 1. **理解GRIB2文件结构**: GRIB2文件由多个消息组成,每个消息包含一组相关的气象数据。消息由一个固定长度的头部(Header)和可变长度的数据部分(Data...
本篇将详细介绍如何在Java中解析CSV文件,并以给定的"Java解析CSV文件"主题为例,结合提供的资源——`lucky_number_format.csv`、`javacsv-2.0.jar`和`CsvUtil.java`进行深入探讨。 首先,我们来看`javacsv-2.0.jar...
在Java编程语言中,文件读取是常见的任务,可以用于处理各种类型的数据,如文本、图像、音频等。本文将详细介绍Java中四种不同的文件读取方法:按字节读取、按字符读取、按行读取以及随机读取。 1. **按字节读取...
在本主题中,我们关注的是如何利用Java解析DXF(Drawing Exchange Format)文件,这是一种由AutoCAD软件生成的二进制或ASCII格式的文件,用于存储二维图形数据。DXF文件通常包含各种几何实体,如圆(circle)、椭圆...
首先,Java解析APK主要依赖于对ZIP文件格式的理解,因为APK本质上就是一个ZIP文件,其结构遵循特定的Android规范。你可以使用Java内置的`java.util.zip`包来读取和解压APK,然后提取所需的元数据。以下是一些关键...
一个简单的分析工具,用于分析”.class/.cap/.exp”格式的Java文件。 对于CAP文件,支持version 2.1 and 2.2. 适用于JCVM的学习。 使用工具时,需保证“C:\Program Files\WinZip\WINZIP32.EXE”存在,用于解压CAP...