Tika Restサーバーを使用してTikaを利用できるようにするApache TikaライブラリのPythonポート。
これにより、Apache TikaはPythonライブラリとして利用可能になり、SetUptools、PIP、Easyインストールを介してインストールできます。
このライブラリを使用するには、Tika-PythonがバックグラウンドでTika Restサーバーを起動するため、Java 7+をシステムにインストールする必要があります。
Aptivate Tikaに触発されました。
pip install tikapython setup.py buildpython setup.py installこれを切断された環境で動作させるには、Tikaサーバーファイル(ここにあるTika-Server.jar.jar.jar.jar.jar.md5の両方)をダウンロードし、tika_server_jar = "ファイルにtika_server_jar ="ファイルに設定しますpython-tika /tmp/tika-server-standard.jarに、背景プロセスとして実行します。
これは、インターネットアクセスなしでpython-tikaを実行する唯一の方法です。このセットがなければ、デフォルトはTikaバージョンをチェックし、Apacheから毎回最新のプルをプルすることです。
これらは、Tika/Tika.pyが最初にロードされ、その後全体で使用されるときに1回読まれます。
TIKA_VERSION文字列に設定されています。TIKA_SERVER_JARダウンロードしてキャッシュするために、リモートTikaサーバーJARのフルURLに設定します。TIKA_SERVER_ENDPOINT実行中のTikaサーバーJARのホスト(ローカルまたはリモート)に設定します。TIKA_CLIENT_ONLY -trueに設定すると、 TIKA_SERVER_JAR無視され、 TIKA_SERVER_ENDPOINTの値に依存し、Tikaを休憩クライアントのように扱います。TIKA_TRANSLATOR -Tika翻訳者の実装のために、完全に資格のあるクラス名(デフォルトはLingo24にデフォルト)に設定されています。TIKA_SERVER_CLASSPATH TikaサーバーJARパスにPREARENDするために、文字列(追加のパスごとに区切られた ':')に設定します。TIKA_LOG_PATH書き込み許可を備えたディレクトリに設定され、 tika.logおよびtika-server.logファイルがこのディレクトリに配置されます。TIKA_PATH書き込み許可を備えたディレクトリに設定され、 tika_server.jarファイルがこのディレクトリに配置されます。TIKA_JAVA javaランタイム名、たとえばjavaまたはjava9を設定しますTIKA_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コンテンツを抽出するためのより良い方法の1つです。
注記:
パーサーインターフェイスには、抽出されたコンテンツを印刷するためにコンソールに設定された次の環境変数が必要です。 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 Server URLを通話とともに渡すことができます。マルチインスタンスの実行に役立つもの、またはTikaがDockerzed/Linkedの場合に役立ちます。
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'})
パーサーインターフェイスは、オプションで、コンテンツをプレーンテキストではなくXHTMLとして出力することができます。
注記:
パーサーインターフェイスには、抽出されたコンテンツを印刷するためにコンソールに設定された次の環境変数が必要です。 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. 開梱インターフェイスは、1回の呼び出しでメタデータとテキスト抽出の両方を処理し、内部で開梱されたメタデータとテキストエントリのターボールを内部的に返し、抽出のためにワイヤー負荷を減らします。
#!/usr/bin/env python
import tika
from tika import unpack
parsed = unpack . from_file ( '/path/to/file' )Detectインターフェイスは、提供されたファイルのIANA MIMEタイプの分類を提供します。
#!/usr/bin/env python
import tika
from tika import detector
print ( detector . from_file ( '/path/to/file' ))構成インターフェイスを使用すると、サーバーが構成されているパーサー、MIMEタイプ、検出器など、Tikaサーバー環境の構成を検査できます。
#!/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' ))翻訳インターフェイスは、ソース言語からティカによってティカによって自動的に抽出されたテキストを翻訳し、宛先言語に変換します。
#!/usr/bin/env python
from tika import translate
print ( translate . from_file ( '/path/to/spanish' , 'es' , 'en' ))注パーサーと検出器.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次に、いずれかのメソッドを実行でき、Checkを完全に省略して、LocalHostのサービスが実行されているかどうかを確認し、チェックメッセージの印刷を省略します。
Tika Serverが使用するClassPathが「: 'の区切り文字列」のセットとして設定することで、使用するクラスパスを更新できます。たとえば、Tika-PythonをGeotopicParsingで作業させたい場合は、これを行い、以下のパスを独自のパスに置き換えて、ここで特定し、これを行ったことを確認できます。
ティカサーバーを殺す(すでに実行されている場合):
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を設定することにより、Tikaサーバーへの送信HTTPリクエストをカスタマイズできます。これは、リクエスト方法に渡される議論の辞書でなければなりません。リクエストメソッドのドキュメントは、有効な引数を指定します。これにより、 urlおよびparams / dataを除くデフォルトがオーバーライドされます。
from tika import parser
parsed = parser . from_file ( '/path/to/file' , requestOptions = { 'timeout' : 120 })Tika-Pythonをインストールすると、新しいコマンドラインクライアントツール、 tika-python /path/to/python/binディレクトリにインストールされます。
コマンドラインツールのオプションとヘルプは、引数なしで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)クリス・A・マットマンに送ってください。
この作業の元の部分のほとんどに資金を提供してくれたDARPA Memexプログラムに感謝します。
Apacheライセンス、バージョン2