Tika REST 서버를 사용하여 Tika를 사용할 수 있도록 Apache Tika 라이브러리의 파이썬 포트.
이를 통해 Apache Tika는 Python Library로, Setupools, PIP 및 Easy 설치를 통해 설치할 수 있습니다.
이 라이브러리를 사용하려면 Tika-Python이 백그라운드에서 Tika REST 서버를 시작하므로 시스템에 Java 7+를 설치해야합니다.
적성 티카에서 영감을 얻었습니다.
pip install tikapython setup.py buildpython setup.py install 연결이 끊어진 환경 에서이 작업을 수행하려면 Tika Server 파일 (Tika-Server.jar 및 Tika-Server.jar.md5, 여기에서 찾을 수있는 Tika_Server_Jar 환경 변수를 Tika_Server_jar = "파일 : //tika-server-standard.jar"로 설정하여 python-tika 사용하여 PITHONTIKA를 통해 TIKA_SERVER_JAR 변수를 설정하십시오. /tmp/tika-server-standard.jar 로, 배경 프로세스로 실행하십시오.
이것은 인터넷 액세스없이 python-tika 실행하는 유일한 방법입니다. 이 세트가 없으면 기본값은 Tika 버전을 확인하고 Apache에서 매번 최신 시간을 가져 오는 것입니다.
Tika/Tika.py가 처음에로드되어 그 후에 사용될 때 한 번 읽습니다.
TIKA_VERSION 버전 문자열로 설정 (예 : 1.12 또는 현재 Tika 버전으로 기본값).TIKA_SERVER_JAR 원격 Tika 서버 JAR의 전체 URL로 설정하여 다운로드 및 캐시.TIKA_SERVER_ENDPOINT 실행중인 Tika 서버 JAR의 호스트 (로컬 또는 리모컨)로 설정합니다.TIKA_CLIENT_ONLY true로 설정되면 TIKA_SERVER_JAR 무시되고 TIKA_SERVER_ENDPOINT 의 값에 의존하고 Tika를 REST 클라이언트처럼 취급합니다.TIKA_TRANSLATOR TIKA 번역기 구현을 위해 자격을 갖춘 클래스 이름 (Lingo24로의 기본값)으로 설정합니다.TIKA_SERVER_CLASSPATH Tika Server Jar 경로로 Prepend를 위해 문자열 (각 추가 경로에 의해 구분)로 설정하십시오.TIKA_LOG_PATH 쓰기 권한이있는 디렉토리로 설정하고 tika.log 및 tika-server.log 파일 이이 디렉토리에 배치됩니다.TIKA_PATH 쓰기 권한이있는 디렉토리로 설정하고 tika_server.jar 파일 이이 디렉토리에 배치됩니다.TIKA_JAVA -Java 런타임 이름 설정 (예 : java 또는 java9TIKA_STARTUP_SLEEP 런타임에 Tika 서버가 시작되는 경우 수표 당 기다릴 수있는 초 ( float )TIKA_STARTUP_MAX_RETRY 런타임에 출시 될 경우 Tika 서버 시작을 시도 할 수표 수 ( int )TIKA_JAVA_ARGS Java 런타임 인수 설정, 예를 들어 -Xmx4gTIKA_LOG_FILE 로그 파일의 파일 이름을 설정하십시오. 기본값 : tika.log . 빈 문자열 ( '' ) 인 경우 로그 파일이 생성되지 않습니다. #!/usr/bin/env python
import tika
tika . initVM ()
from tika import parser
parsed = parser . from_file ( '/path/to/file' )
print ( parsed [ "metadata" ])
print ( parsed [ "content" ])파서 인터페이스는 /rmeta 인터페이스를 사용하여 텍스트와 메타 데이터를 추출합니다. 이것은 내부 XHTML 컨텐츠를 추출하는 더 좋은 방법 중 하나입니다.
메모:
Parser 인터페이스는 추출 된 컨텐츠의 인쇄를 위해 콘솔에 다음 환경 변수를 설정해야합니다. export PYTHONIOENCODING=utf8
#!/usr/bin/env python
import tika
from tika import parser
parsed = parser . from_file ( '/path/to/file' )
print ( parsed [ "metadata" ])
print ( parsed [ "content" ])선택적으로, 다중 인스턴스 실행에 유용한 호출 또는 Tika가 Dockerzed/Linked시기에 Tika Server URL을 통과 할 수 있습니다.
parsed = parser . from_file ( '/path/to/file' , 'http://tika:9998/tika' )
string_parsed = parser . from_buffer ( 'Good evening, Dave' , 'http://tika:9998/tika' )이진 스트림을 통과 할 수도 있습니다
with open(file, 'rb') as file_obj:
response = tika.parser.from_file(file_obj)
Tika 1.24.1 이후 입력 및 출력 스트림의 GZIP 압축이 허용됩니다.
GZIP 또는 Zlib로 입력 압축을 달성 할 수 있습니다.
import zlib
with open(file, 'rb') as file_obj:
return tika.parser.from_buffer(zlib.compress(file_obj.read()))
...
import gzip
with open(file, 'rb') as file_obj:
return tika.parser.from_buffer(gzip.compress(file_obj.read()))
헤더와 함께 출력 :
with open(file, 'rb') as file_obj:
return tika.parser.from_file(file_obj, headers={'Accept-Encoding': 'gzip, deflate'})
Parser 인터페이스는 선택적으로 일반 텍스트가 아닌 컨텐츠를 XHTML로 출력 할 수 있습니다.
메모:
Parser 인터페이스는 추출 된 컨텐츠의 인쇄를 위해 콘솔에 다음 환경 변수를 설정해야합니다. export PYTHONIOENCODING=utf8
#!/usr/bin/env python
import tika
from tika import parser
parsed = parser . from_file ( '/path/to/file' , xmlContent = True )
print ( parsed [ "metadata" ])
print ( parsed [ "content" ])
# Note: This is also available when parsing from the buffer. 포장되지 않은 인터페이스는 단일 통화로 메타 데이터와 텍스트 추출을 모두 처리하고 내부적으로 메타 데이터의 타르볼과 내부적으로 포장되지 않은 텍스트 항목을 반환하여 추출을 위해 와이어로드를 줄입니다.
#!/usr/bin/env python
import tika
from tika import unpack
parsed = unpack . from_file ( '/path/to/file' )감지 인터페이스는 제공된 파일에 대한 IANA MIME 유형 분류를 제공합니다.
#!/usr/bin/env python
import tika
from tika import detector
print ( detector . from_file ( '/path/to/file' ))Config 인터페이스를 사용하면 서버가 구성된 구문 분석기, MIME 유형 및 탐지기를 포함하여 Tika Server 환경의 구성을 검사 할 수 있습니다.
#!/usr/bin/env python
import tika
from tika import config
print ( config . getParsers ())
print ( config . getMimeTypes ())
print ( config . getDetectors ())언어 감지 인터페이스는 제공된 파일의 텍스트를 기반으로 문자 메시지를받은 2 문자 코드를 제공합니다.
#!/usr/bin/env python
from tika import language
print ( language . from_file ( '/path/to/file' ))번역 인터페이스는 Tika가 소스 언어에서 대상 언어로 자동 추출한 텍스트를 번역합니다.
#!/usr/bin/env python
from tika import translate
print ( translate . from_file ( '/path/to/spanish' , 'es' , 'en' ))참고 Parser 및 Detector .from_buffer (String | Bufferediobase) 메소드를 사용하여 Python에서 문자열 또는 바이트 버퍼를 동적으로 구문 분석하고 MIME 유형을 감지 할 수도 있습니다. 콘텐츠를 이미 메모리에로드 한 경우 유용합니다.
string_parsed = parser . from_buffer ( 'Good evening, Dave' )
byte_data : bytes = b'B xc3 xa4 ume'
parsed = parser . from_buffer ( io . BytesIO ( byte_data ))Tika를 설정하여 클라이언트 전용 모드를 사용하도록 설정할 수 있습니다.
import tika
tika . TikaClientOnly = True그런 다음 메소드를 실행할 수 있으며 LocalHost의 서비스가 실행 중인지 확인하고 확인 메시지 인쇄를 생략하기 위해 수표를 완전히 생략합니다.
ClassPath를 ':'Delimited Strings 세트로 설정하여 Tika Server가 사용하는 클래스 경로를 업데이트 할 수 있습니다. 예를 들어 Tika-Python이 Geotopicparsing으로 작업하려면이 작업을 수행하고 여기에서 확인 된대로 아래 경로를 자신의 경로로 바꾸고 다음을 수행했는지 확인하십시오.
Tika Server 킬 (이미 실행중인 경우) :
ps aux | grep java | grep Tika
kill -9 PID import tika . tika
import os
from tika import parser
home = os . getenv ( 'HOME' )
tika . tika . TikaServerClasspath = home + '/git/geotopicparser-utils/mime:' + home + '/git/geotopicparser-utils/models/polar'
parsed = parser . from_file ( home + '/git/geotopicparser-utils/geotopics/polar.geot' )
print parsed [ "metadata" ] .from_file 및 .from_buffer 메소드에서 requestOptions 설정하여 나가는 HTTP 요청을 Tika 서버에 사용자 정의 할 수 있습니다 (파서, 포장 풀기, 감지, 구성, 언어, 번역). 요청 방법으로 전달되는 인수 사전이어야합니다. 요청 방법 문서는 유효한 인수를 지정합니다. url 및 params / data 를 제외한 모든 기본값을 대체합니다.
from tika import parser
parsed = parser . from_file ( '/path/to/file' , requestOptions = { 'timeout' : 120 }) Tika-Python을 설치하면/path/to/python/bin 디렉토리에 새로운 명령 줄 클라이언트 도구 인 tika-python 설치됩니다.
명령 줄 도구의 옵션과 도움말은 인기없이 tika-python 입력하여 볼 수 있습니다. 이것은 또한 Tika-Server Jar의 사본을 다운로드하여 아직하지 않은 경우 시작합니다.
tika.py [-v] [-o < outputDir > ] [--server < TikaServerEndpoint > ] [--install < UrlToTikaServerJar > ] [--port < portNumber > ] < command > < option > < urlOrPathToFile >
tika.py parse all test.pdf test2.pdf (write output JSON metadata files for test1.pdf_meta.json and test2.pdf_meta.json)
tika.py detect type test.pdf (returns mime-type as text/plain)
tika.py language file french.txt (returns language e.g., fr as text/plain)
tika.py translate fr:en french.txt (translates the file french.txt from french to english)
tika.py config mime-types (see what mime-types the Tika Server can handle)
A simple python and command-line client for Tika using the standalone Tika server (JAR file).
All commands return results in JSON format by default (except text in text/plain).
To parse docs, use:
tika.py parse < meta | text | all > < path >
To check the configuration of the Tika server, use:
tika.py config < mime-types | detectors | parsers >
Commands:
parse = parse the input file and write a JSON doc file.ext_meta.json containing the extracted metadata, text, or both
detect type = parse the stream and ' detect ' the MIME/media type, return in text/plain
language file = parse the file stream and identify the language of the text, return its 2 character code in text/plain
translate src:dest = parse and extract text and then translate the text from source language to destination language
config = return a JSON doc describing the configuration of the Tika server (i.e. mime-types it
can handle, or installed detectors or parsers)
Arguments:
urlOrPathToFile = file to be parsed, if URL it will first be retrieved and then passed to Tika
Switches:
--verbose, -v = verbose mode
--encode, -e = encode response in UTF-8
--csv, -c = report detect output in comma-delimited format
--server < TikaServerEndpoint > = use a remote Tika Server at this endpoint, otherwise use local server
--install < UrlToTikaServerJar > = download and exec Tika Server (JAR file), starting server on default port 9998
Example usage as python client:
-- from tika import runCommand, parse1
-- jsonOutput = runCommand( ' parse ' , ' all ' , filename)
or
-- jsonOutput = parse1( ' all ' , filename)Chris A. Mattmann에게 보내십시오.
이 작품의 원래 부분의 대부분을 자금으로 지원해 주신 DARPA Memex 프로그램 덕분입니다.
아파치 라이센스, 버전 2