1. 程式人生 > >Tika提取pdf文字的內容,並用IKAnalyzer進行分詞處理。

Tika提取pdf文字的內容,並用IKAnalyzer進行分詞處理。

package test;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;

import org.apache.tika.metadata.Metadata;
import org.apache.tika.parser.AutoDetectParser;
import org.apache.tika.parser.ParseContext;
import org.apache.tika.parser.Parser;
import org.apache.tika.sax.BodyContentHandler;
import org.xml.sax.ContentHandler;

/**
 * 此類用於提取pdf檔案的文字內容
 *
 * @author gujie
 *
 */
public class TikaUtil {

   public String getBody(File file) throws Exception {


     Parser parser = new AutoDetectParser();


     InputStream input = new FileInputStream(file);


     Metadata meta = new Metadata();


     System.out.println(meta.get(Metadata.CONTENT_ENCODING));


     ContentHandler handler = new BodyContentHandler();


     parser.parse(input, handler, meta, new ParseContext());


     return handler.toString();
 }

 public static void main(String[] args) {


  try {


   System.out.println(new TikaUtil().getBody(new File("f:\\哈哈哈哈.pdf")));


  } catch (Exception e) {


   e.printStackTrace();


  }
 }

}

package test;
import java.io.File;
import java.io.IOException;
import java.io.StringReader;

import org.wltea.analyzer.IKSegmentation;
import org.wltea.analyzer.Lexeme;

/**
 * 此類用於處理分詞
 * @author gujie
 *
 */
public class IKAnalyzerTest {

 /**
  * @param args
  */
 public static void main(String[] args) throws Exception {

  long start = System.currentTimeMillis();


  IKSegmentation ikSeg = new IKSegmentation(new StringReader(new TikaUtil().getBody(new File("f:\\哈哈哈哈.pdf"))) ,true);


  long end = System.currentTimeMillis();


  try {


   Lexeme l = null;


   while( (l = ikSeg.next()) != null){


    System.out.println(l.getLexemeText());//迴圈打印出分詞之後的結果


   }


  } catch (IOException e) {


   e.printStackTrace();


  }
  System.out.println("耗時:"+(end-start)+"毫秒");
 }

}

相關推薦

Tika提取pdf文字內容並用IKAnalyzer進行處理

package test; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import org.apache.tika.metadata.Metadata;

Java 讀取PDF文字內容

本文將介紹如何在Java應用程式中讀取PDF檔案的文字內容。 在Java應用程式中讀取PDF,我們可以藉助第三方PDF控制元件,本文所使用的控制元件是免費Java PDF元件Free Spire.PDF for JAVA。 在使用以下程式碼前,你需要下載Free Spire.PDF fo

jquery 如何獲取標籤本身的文字內容不包含子元素

 <li><a href="http://gz.ihk.cn/esf/houselist/?lp=保利花園" ><strong id="aaaa">保利花園<b>海珠 工業大道中</b></strong></a&

完成一個“可以由使用者鍵入文字內容並輸出其字元個數”的Java應用程式

一、任務目標     完成一個 java application應用程式,可以接收使用者通過鍵盤輸入的文字,並輸出此段文字字元的個數。   二、Scanner類     Scanner是JDK1.5新增的一個類,可以使用該類建立一個物件。它是一個可以使用正則表示

用python提取PDF表格內容儲存到excel

一 提取pdf方法介紹 任務是用python提取PDF裡的表格檔案到excel裡面去。做為一個 學了一個周python的人來說當然像嘗試一下看能不能做到,事實證明是可以的只是可能程式碼有點爛。。。。。。 樣本大概是這樣的 首先網上查一下用python處

點選複製按鈕複製指定文字內容實現網頁中的複製功能

<div style="width: 48px; height: 36px; position: absolute; margin-left: 232px;*margin-left:0px;_margin-left: 0">

js處理去掉富文字編輯的html樣式只顯示純文字內容以供列表頁使用

<script type="text/javascript"> var description = '<p style="margin-top:19.5pt;margin-right:0cm;margin-bottom:19.5pt;margin-lef

pdf轉圖片、提取pdf文字提取pdf圖片

    package com.midevip.common.util;   import com.itextpdf.text.pdf.PdfReader;

java/poi讀取word並替換word中的文字內容向word中插入圖片的操作

先貼程式碼,注:部分程式碼源自網路其他前輩的文章,這裡只是做一個功能整合。 package fcjTool; import java.io.IOException; import java.io.InputStream; import org.ap

java提取PDF文字座標

常用java操作PDF的庫有PDFbox和itext,下面我會介紹如何使用PDFbox和itext來提取PDF的文字座標。 一、itext提取文字座標 itext版本:5.5.6,低版本的可能沒有提供這種方法。 1、通過定義一個類實現RenderListener,可以通過裡

單行和多行的文字省略並用省略號代替

單行文字省略: {   overflow:hidden;    //超出部分隱藏   white-space:nowrap; //強制不換行   text-overflow:ellipsis //省略號 }; 寫在css裡,很簡單的三行程式碼,但是注

2.5給定兩個用鏈表表示的整數每個結點包含一個數位這些數位是反向存放的也就是個位排在鏈表首部編寫函數對這兩個整數求和並用鏈表形式返回結果

直接 logs next 末尾 做的 nbsp before != 結果 其實仔細想想是挺簡單的,我們要做的只是記得進位。 LinkedListNode addLists(LinkedListNode l1, LinkedListNode l2, int carry) /

【Apache】從Apache官網下載windows版apache伺服器並用AB進行壓力測試

1、下載穩定版2.2.31     http://httpd.apache.org/ 2.2.*和2.4.*區別?     httpd-2.2.x(prefork)     httpd-2.4.x(event) 編譯時可以使用--with-mpm=prefork手動指定

文字分析--關鍵詞獲取(jiebaTF-IDF模型)

關鍵詞獲取可以通過兩種方式來獲取:       1、在使用jieba分詞對文字進行處理之後,可以通過統計詞頻來獲取關鍵詞:jieba.analyse.extract_tags(news, to

手把手教程:用Python開發一個自然語言處理模型並用Flask進行部署

今年企業對Java開發的市場需求,你看懂了嗎? >>>   

用量子計算模擬器ProjectQ生成隨機數並用pytest進行單元測試與覆蓋率測試

# 技術背景 本文中主要包含有三個領域的知識點:隨機數的應用、量子計算模擬產生隨機數與基於pytest框架的單元測試與覆蓋率測試,這裡先簡單分別介紹一下背景知識。 ## 隨機數的應用 在上一篇介紹[量子態模擬取樣](https://www.cnblogs.com/dechinphy/p/state.html)

python中文使用結巴對python進行

php 分詞 在采集美女站時,需要對關鍵詞進行分詞,最終采用的是python的結巴分詞方法.中文分詞是中文文本處理的一個基礎性工作,結巴分詞利用進行中文分詞。其基本實現原理有三點:基於Trie樹結構實現高效的詞圖掃描,生成句子中漢字所有可能成詞情況所構成的有向無環圖(DAG)采用了動態規劃查找最大概率

輸入一串隨機數字然後按千位輸出

shell腳本 千分位輸出 for循環 切片數組 輸入一串隨機數字,然後按千分位輸出。比如輸入數字串為“123456789”,輸出為123,456,789#!/bin/bash read -p "輸入一串數字:" num v=`echo $num| sed 's/[

使用js方法將table表格中指定列指定行中相同內容的單元格進行合並操作

var get 是否 for true ntb doc ide 就是 一、簡介 使用js方法對html中的table表格進行單元格的行列合並操作。 網上執行此操作的實例方法有很多,但根據實際業務的區別,大多不適用。 所以在網上各位大神寫的方法的基礎上進行了部分修改以適合自己

IKAnalyzer中文器V2012_FF使用手冊

nal nbsp 使用手冊 href 分詞 analyzer ref 使用 中文分詞 IKAnalyzer中文分詞器V2012_FF使用手冊.pdfIKAnalyzer中文分詞器V2012_FF使用手冊