HyperTag は、すべてのファイルに対して表現力豊かなタグ システムと強力なセマンティック検索エンジンを提供します。タグを使用して自分の考えを表現します。テキスト ドキュメント (PDF も含む) や画像のセマンティック検索を使用して、探しているものを見つけます。他の既存のファイル整理ツールのように独自のファイル形式を導入する代わりに、HyperTag は手間をかけずに既存のファイルの上にスムーズに重ねるだけです。
目標: 考えてからすべての関連ファイルにアクセスするまでの時間を最小限に抑えます。
目次
PyPI で利用可能
$ pip install hypertag
(CPU のみと CUDA 高速実行の両方をサポート!)
Twitter @SeanPedersen96 からご連絡ください。
HyperTag は洗練された CLI を提供しますが、より重要なのは、シンボリック リンクとディレクトリを使用してファイルとタグをファイル システム ベースで表現するHyperTagFS
と呼ばれるディレクトリを作成することです。
HyperTag WebApp (実験的) : 洗練された HTML+JS クライアント。 HyperTag エンジンを利用して、個人ファイルを数秒で視覚化、構造化、検索します。
ディレクトリのインポート: $ hypertag import path/to/directory
使用して、既存のディレクトリ階層をインポートします。 HyperTag は、メタタグ付けを使用してタグ階層に自動的に変換します。
セマンティック テキストおよび画像検索 (実験的) : 単純なテキスト クエリを使用して、画像(jpg、png) およびテキスト ドキュメント(PDF も含む) コンテンツを検索します。テキスト検索は、素晴らしい Sentence Transformers ライブラリを利用しています。テキストから画像への検索は、OpenAI の CLIP モデルを利用しています。現在、英語のクエリのみがサポートされています。
HyperTag Daemon (Experimental) : ユーザー変更の自動インポート リストに追加されたHyperTagFS
とディレクトリを監視します (下記の「HyperTag デーモンの開始」セクションを参照)。また、セマンティック検索を大幅に高速化する DaemonService も生成します (警告: デーモン プロセスは最大 2GB の使用量で RAM を大量に消費します)。
ファジー マッチング クエリ: HyperTag はファジー マッチングを使用して、まれにタイプミスがあった場合の摩擦を最小限に抑えます。
ファイル タイプ グループ: HyperTag は、共通ファイル (例: 画像: jpg、png など、ドキュメント: txt、pdf など、ソース コード: py、js など) を含むフォルダーを自動的に作成します。これらのファイルはHyperTagFS
にあります。
HyperTag Graph : HyperTag Graph の概要をすぐに把握できます。 HyperTag は、変更ごとにメタタグ グラフを視覚化し、 HyperTagFS/hypertag-graph.pdf
に保存します。
localhost:23236 で実行されている HyperTag Web クライアント用の HTTP サーバーを生成します。
$ python3 -m hypertag.webapi
既存のディレクトリ階層から推測されたタグを持つファイルをインポートします。
$ hypertag import path/to/directory
$ hypertag add path/to/file https://github.com/SeanPedersen/HyperTag
ファイルに手動でタグを付けます。ショートカット: $ hypertag t
$ hypertag tag humans/*.txt with human "Homo Sapiens"
ファイルのタグに値を追加します。
$ hypertag tag sean.txt with name="Sean Pedersen"
ファイルからタグを手動で削除します。
$ hypertag untag humans/*.txt with human "Homo Sapiens"
タグ階層を作成するためのメタタグ タグ。ショートカット: $ hypertag tt
$ hypertag metatag human with animal
タグ A のすべての関連付け (ファイルとタグ) をタグ B にマージします。
$ hypertag merge human into "Homo Sapiens"
クエリに一致する結果セットのファイル名を出力します。クエリはタグ (値を含む) とオペランドで構成されます。タグは便宜上あいまい一致されています。ネストは現在サポートされておらず、クエリは左から右に評価されます。
ショートカット: $ hypertag q
ワイルドカードを使用して値をクエリします: $ hypertag query name="Sean*"
印刷パス: $ hypertag query human --path
あいまい一致したタグを出力します: $ hypertag query man --verbose
ファジーマッチングを無効にする: $ hypertag query human --fuzzy=0
デフォルトのオペランドは AND (交差) です。
$ hypertag query human name="Sean*"
は$ hypertag query human and name="Sean*"
と同等です。
OR (和集合):
$ hypertag query human or "Homo Sapiens"
マイナス(差):
$ hypertag query human minus "Homo Sapiens"
インデックス付きファイルのみを検索できます。
$ hypertag index
解析不可能な PDF も解析するには、tesseract をインストールします。 # pacman -S tesseract tesseract-data-eng
画像ファイルのみのインデックスを作成します: $ hypertag index --image
テキスト ファイルのみのインデックスを作成します: $ hypertag index --text
セマンティック検索とトークン一致検索を組み合わせたカスタム検索アルゴリズム。一致するスコアによってソートされたテキスト ファイル名を出力します。 HyperTag デーモンを実行すると、パフォーマンスが大幅に向上します。
ショートカット: $ hypertag s
$ hypertag search "your important text query" --path --score --top_k=10
一致スコアによってソートされた画像ファイル名を印刷します。 HyperTag デーモンを実行すると、パフォーマンスが大幅に向上します。
ショートカット: $ hypertag si
テキストから画像へ: $ hypertag search_image "your image content description" --path --score --top_k=10
画像から画像へ: $ hypertag search_image "path/to/image.jpg" --path --score --top_k=10
三重の機能を備えたデーモン プロセスを開始します。
HyperTagFS
ディレクトリでユーザーの変更を監視しますSearch Images
またはSearch Texts
でのディレクトリ作成時: 名前をセマンティック検索クエリとして解釈し (結果のサイズを制限するために top_k=42 を追加)、結果を自動的に入力します。$ hypertag daemon
$ hypertag tags filename1 filename2
$ hypertag metatags tag1 tag2
$ hypertag show
名前の印刷: $ hypertag show files
印刷パス: $ hypertag show files --path
メタタグ グラフ階層を視覚化します (HyperTagFS ルートに保存されます)。
$ hypertag graph
レイアウト アルゴリズムを指定します (デフォルト: fruchterman_reingold):
$ hypertag graph --layout=kamada_kawai
シンボリック リンクとディレクトリを使用して、ファイル システム ベースのファイルとタグの表現を生成します。
$ hypertag mount
自動インポート リストに追加されたディレクトリは、デーモンによって新しいファイルや変更が監視されます。
$ hypertag add_auto_import_dir path/to/directory
デフォルトはユーザーのホームディレクトリです。
$ hypertag set_hypertagfs_dir path/to/directory
pyproject.toml
にリストされています)。~/.config/hypertag/hypertag.db
にあります)。~/.config/hypertag/web_pages
に保存され、その他の場合は~/.config/hypertag/downloads
に保存されます。$ git clone https://github.com/SeanPedersen/HyperTag.git
$ cd HyperTag/
$ poetry install
$ poetry shell
$ pytest -v
$ black hypertag/
$ flake8
$ mypy hypertag --no-namespace-packages
$ bandit --exclude tests/ -r .
$ python -m hypertag
HyperTag の存在意義は何ですか?
HyperTag は、インポート、セマンティック検索、グラフ作成、あいまい一致機能など、非常に使いやすい独自の機能を多数提供します。一方、HyperTag のコード ベースは、TMSU (Go で >10,000 LOC) や SuperTag (Rust で >25,000 LOC) などの同様のプロジェクトと比較して、2000 LOC 未満と比較的小さいため、ハッキングが容易です。
セマンティック検索の代替手段