ナレッジ マップ - 名前付きエンティティ - リレーションシップ - 無料のラベリング ツール - クイック ラベリング - Python3

1. 機能紹介

こんにちは!これは、 Python 3 Python3に基づいた、エンティティとリレーションシップの結合ラベル付けのための小さなローカル プログラムです。Python 3実装. _ _ _ このシステムは、 Python Pythonを使用して、テキスト コーパス内の名前付きエンティティと関係または属性にラベルを付けるための半自動ソフトウェア システムです。HTML HTMLを使用してビジュアルインターフェイスと主要な機能を実現するPythonプログラミングHTMLCSSCSS _CSSヒントのマークアップ チュートリアルと仕様 (実装方法は気にしません)。

このシステムをテキスト ラベルに使用すると、元の段落テキストが、事前定義された名前付きエンティティ、関係、または属性を備えたテキスト ラベル データに更新されますショートカット キーと背景色を自動的に割り当ててテキスト内のさまざまなエンティティを区別し、注釈インターフェイスに表示する固定形式のテキストを生成します。固定シンボルを選択し、エンティティ ペア間の関係をマークし、関係番号、関係カテゴリ、および先頭と末尾のエンティティ番号を自動的に生成します。エクスポートを実行して 1 対 1 のテキストとラベルの結果を生成し、書式設定、元に戻す、ラベル付けのキャンセルなどの機能を使用してラベルを更新します。このシステムは、自然言語処理のアノテーション専門家がテキスト内のエンティティまたはエンティティ関係を抽出し、マシン トレーニング、ナレッジ マップ構築、その他の方向に結果をエクスポートするのに役立ちます。

main 関数: main 関数は、テキストの名前付きエンティティのラベリングとエンティティ間の関係のラベリングを実現します。

  1. テキスト注釈: ユーザーは、事前に合意された名前付けエンティティおよび関係属性注釈仕様に従って、主に背景色、ショートカット キー、およびカスタム特殊記号の組み合わせを通じて、テキストの名前付きエンティティ注釈と区別を形成することにより、インポートされた段落テキストに注釈を付けます。固定シンボルを選択し、エンティティ間の関係をマークすると、システムはマークされた関係カテゴリとその他の情報を自動的に更新します。
  2. 元に戻す、マークを解除する: [元に戻す] ボタンをクリックすると、操作がロールバックされ、前の状態に戻ります。マークされたエンティティおよび関係を選択してマークを解除することもできます。そうすると、セグメント内の特殊シンボルがシステムによって削除されます。
  3. 書式設定: ファイルをインポートした後、テキストを書式設定して、テキスト内の冗長な空白行やスペースなどの冗長な無効な文字を削除します。
  4. ファイルのエクスポート: ファイルをエクスポートするには、ユーザーがマークした段落テキストを解析して、テキストとラベルの間で 1 対 1 の結果ファイルを生成し、ユーザーが読み取ったテキストと同じディレクトリに保存できます。

1. コードフォルダー構造

ここに画像の説明を挿入

ビアオズ ビアオズbia oz h uフォルダーには、 configs configsがあります設定画像画像_ _ _ _画像ユーティリティユーティリティ_3つのフォルダーありbiaozhu.py biaozhu.pyがあります。ビアオズフゥ_ _ _ ぴーログインpyログイン.pyログイン_ _ _ _ p yrecode _ 1. p recode\_1.py_1 _レコ p yrecode _ 2.p recode\_2.pyreco d e _2.py registrar.py registrar.py _レジストラ. p y合計 5 つのPython PythonPythonコードファイル. _ _ _

  1. 構成、構成構成ファイルは名前付きエンティティと関係をカスタマイズするためのファイルです。これをテキスト ファイルとして開き、名前付きエンティティのカテゴリと関係をカスタマイズできます(カスタム エンティティ、関係、構成configs文件夹, b i a o z h u . p y biaozhu.py bia oz h u . p yも修正が必要です)
  2. 画像 画像imeg esフォルダにはいくつかの画像ファイルがありますが、気にする必要はありません。
  3. ユーティリティu t i lsフォルダー (Python を除く)色のレンダリングに使用されるPythonP y th o nファイルに加えて、いくつかのHTML HTMLがありますHTML CSSCSS _CSSファイル (まったく理解していなくても、通常の使用には影響しません)。
  4. ビアジュ 。py biaozhu.pybia oz h u . p yがメイン ファイルなので、それを実行するだけですぐにラベル付けを開始できます。
  5. ログイン 。pyログイン.pylog in . p yログインウィンドウ、biaozhu.py biaozhu.pybia oz h u . p yは分離されていますが、興味がなければ削除することもできます。つまり、ログインせずに直接作業を開始することもできます。
  6. 最初にログインを試してからサインアッププロセスを試したい場合は、 registrar.py registrar.pyを使用します。registrar.py . _ _ _ registrar.py registrar.pyを実行するRegistrar . p y は登録コードを生成します。登録コードを使用してログインできます。ログイン. p y情報を登録(ローカルシミュレーション)すると、プログラムは自動的にbiaozhuにジャンプします。bia oz h u . p yメイン ファイル。
  7. 残念ながらログインしてください 足のログイン.足ログイン.py registrar.py registrar.py _ _ _ _Registrar.py 2つのファイルは必要ありません。biaozhu.py biaozhu.pybia oz h u . p y仕事に取り掛かります。

2. 動作環境

このシステムはWindows Windows を介して実行されますWindows Python3.7 Python3.7 _ _ _Python 3.7開発されました_ _ _ コードを実行する前に、Python をPythonローカル環境は次のツールがありますか (そのうちのいくつかは必須ですpython科学库)。

# Windows python3.7
ast、tkinter、platform、collections、json、re、time、PIL、webbrowser、os、sys、datetime;

3. 名前付きエンティティと関係テンプレートをカスタマイズする

名前付きエンティティと関係をカスタマイズするには、それらを 2 か所で変更する必要があります。最初の場所はconfigs configsco n f i gsフォルダー、2 番目の場所はbiaozhu.py biaozhu.pybia oz h u . p yファイル。

  1. configs configsconfig sフォルダー、 entity.config が含まれていますエンティティ_ _ _ _ _ 設定関係 _ _ _ 設定関係.config2つのファイル関連.configテキストファイルとして開くことできます
    ここに画像の説明を挿入
    たとえば、entity.config エンティティ.configen t it y . configには、名前付きエンティティの辞書が格納されキーはキーボードのショートカット キー、値は特定の名前付きエンティティですたとえば、テキストを選択してキーボードのaa選択したテキストをdis disとしてマークできますdはこのエンティティです関係.config 関係.config.configに関してカスタム関係同様です_ _ _ _
    ここに画像の説明を挿入

  2. 在彪州py biaozhu.pybia oz h u . p yファイルでdict 1 dict1辞書1 辞書2辞書2d i c t 2 は、キーボード ショートカットから名前付きエンティティへのマッピングと、名前付きエンティティの英語略語からキーボード ショートカットへの 2 つのマッピングを表します。
    ここに画像の説明を挿入
    上記の 2 つの手順を正常に変更すると、このツールを独自のローカリゼーション タスクに使用できるようになります。(ここでは 2 つのステップを 1 つに結合してみることができます)

4. ファイルをインポートする

  1. 运行 b i a o z h u . p y biaozhu.py bia oz h u . p yメイン ファイルを開くと、以下に示すメイン インターフェイスが自動的に表示され、ラベル付け作業を開始できます。
    ここに画像の説明を挿入
  2. メインページに入ったら、右上の赤いボタンをクリックしてファイルを開き、マークするテキストファイルを選択します(ファイル形式、拡張子はtxt txt )t × tアンアンann s が最適です)。ファイルがインポートされると、テキストのローカルの場所を読み取るための永続的なリマインダーが表示され、現在のキーボードを大文字の英語にする必要があること、インポートされたファイルのステータス、および現在のカーソルがあるテキスト段落の位置が示されます。位置しています。
    ここに画像の説明を挿入

5. カスタム エンティティと関係ファイルを選択します

  1. メイン ページの右側のテンプレート選択で、[エンティティの選択]ドロップダウン ボックスをクリックして事前にカスタマイズした名前付きエンティティ ファイルを選択し、[関係の選択]ドロップダウン ボックスをクリックして事前にカスタマイズした関係ファイルを選択します。この設計により、複数のラベル付けタスクを容易に実行できます。
    ここに画像の説明を挿入
  2. 読み込んだファイルに無効な空白行やスペースが多数ある場合は、右側のメニュー バーの [書式設定] をクリックして、後続の注釈のために読み取ったテキストの形式をクリーンアップします。
    フォーマットされていない
    フォーマット後

6. テキスト注釈

  1. テキストを正常にインポートし、エンティティ ファイルと関係ファイルを選択したら、ラベル付けを開始できます。キーボードを大文字のままにし、マウスを使用してマークするエンティティを選択し、キーボードの右側のメニュー バーにデフォルトで割り当てられているショートカット キーをクリックしてエンティティ マークを完了します。関係にラベルを付ける前にすべてのエンティティにラベルを付ける必要はなく、エンティティと関係に交互にラベルを付けることができます。(明らかに、タスクのラベル付けのニーズに基づいて、ラベル付けできるのはエンティティのみであり、リレーションシップにはラベル付けできません)。つまり、テキストを選択してキーボード ショートカットを押すと、インターフェイスが自動的に色とラベル カテゴリをレンダリングし、同心円を生成します。同心円は、2 つのエンティティ間の関係をラベル付けするのに便宜的なものです。
    選択されたテキスト
    ショートカットキーを押す
    多くのエンティティに注釈を付けた
  2. 固定の特殊記号(同心円)を選択し、ショートカットキーを押すことで関係をマークすることができます。関係にラベルを付けると、システムは関係のシリアル番号、関係のカテゴリ、および先頭エンティティと末尾エンティティの情報を各関係に自動的に割り当てます。2 つの名前付きエンティティをマークした直後に、2 つの名前付きエンティティ間の関係をマークすることをお勧めします。システムはラベル情報を自動的に生成します。たとえば、エンティティ「ヨウ素過剰」に対して関係R 7 _ K 1 R7\_K1をマークします。R 7_ K 1 . エンティティ「ヨウ素欠乏症」の関係をマークR 7 _ K 2 R7\_K2R7_K2 R7_K1 R7 \ _K1R 7_ K 1 7 番目の関係ペアを表します。関係カテゴリはKKKの 1 (先頭) エンティティは、デコード時に自動的にR 7 _ K 2 R7\_K2を探します。R 7_ K 2の 2 (テール) エンティティ
    エンティティと関係にラベルを付ける

7. 失効とマーク解除

ラベル付けプロセス中に、前のステップに戻る必要がある場合、または複数前のステップに戻る必要がある場合は、右側のメニュー バーの「元に戻す」をクリックしてキャンセルできます。注釈の完了後、エンティティまたは関係のマークを解除する必要があることが判明した場合は、フォーマット エラーを防ぐために、マウスを使用してマークを解除するセグメントを選択し、ショートカット キーを入力して注釈をキャンセルする必要があります。注釈がキャンセルされると、残りのテキストは元の位置に固定されます。

テキストを選択
ここに画像の説明を挿入
「元に戻す」を選択
ここに画像の説明を挿入

8. エクスポートしてエクスポートしてシステムを終了します

注釈ファイルをローカルにエクスポートするには、「エクスポート」をクリックします。エクスポートされたコンテンツのスタイルは、現在のページに表示されるスタイルです (次の注釈付けが容易になるため、エクスポート前にトリプレットに解析されません)、ファイルの保管場所とインポートが行われますファイルの場所は同じディレクトリ内にあります。また、「エクスポートしてシステムを終了」を選択すると、ファイルをエクスポートしてシステムを終了し、エクスポートされたファイルは、読み取ったファイル名+ユーザー情報+エクスポート時刻をファイル名としてローカルに保存されます。ファイルをエクスポートせずに直接終了する場合は、右上のシステムの閉じるボタンをクリックすると、ファイルの保存を求めるメッセージが表示され、システムを終了できます。
ここに画像の説明を挿入
ここに画像の説明を挿入

9. ファイルのエクスポート後に解析する

  1. 直接エクスポートされたファイル形式は解析されません。その理由は解析されないためです。そのため、次回ラベル付けを続けるのに便利です。つまり、ファイルをエクスポートした後、エクスポートされたファイルを開いてラベル付けを続行します (関係ラベルは再ラベル付けされます)。次回開いたときに、これは通常の使用には影響しません。解析時に、タグはルールを満たす最も近いタグと一致するためです)。もう 1 つの理由は、作業の解析部分も非公開化されており、ナレッジ マップのラベル付けが異なることです。タスクにはさまざまな要件があり、モジュール化はフォローアップタスクに便利です。理解しやすいように、biaozhu.py biaozhu.pyを参照してください。bia oz h u . p yによってエクスポートされたラベル ファイルのAAファイル
    これは直接エクスポートされたファイルです -A
    ここに画像の説明を挿入
  2. recode_1.py recode\_1.pyを実行しますrecode_1.py文件,读入 b i a o z h u . p y biaozhu.py bia oz h u . p yによってエクスポートされたAAA、次の形式のファイルBBBBrat Bratアン・アン・オブブラット吹き出しツールアンファイル。BBファイルBではrecode_1.py recode\_1.pyreco d e _1. p y はテキストの各段落にラベルを付けます。
    ここに画像の説明を挿入
  3. 下流のタスクに適した 1 対 1 のラベル形式に直接変換してみませんか? 前のステップで、一部のテキストとラベルは手動またはプログラミング ルールを通じて修正できるためです。たとえば、カテゴリはOOですOはテキストが多すぎたり、繰り返しの内容が多すぎたりする場合は削除できますが、1 対 1 のラベル形式に変換して処理すると、余計な難易度が高くなります。recode_2.py recode\_2.py
    を実行しますrecode _2.pyファイルrecode_1.py recode\ _1.py読み込むrecode _1.pyによって生成BBBファイル。最終的には下流タスクに 1 対 1 で適したファイルCCC。(recode _ 2 . recode\_2reco d e _2. p y はエンティティとリレーションシップの結合抽出とラベル付けを実装しており、独自のグラフ作業に合わせてコードを調整でき、実装は簡単です)。同時に5タプルのCSVCS Vファイル (wps wpswpsまたはメモ帳を開いている)、CSV CSVCSVファイルには、先頭エンティティ、先頭エンティティのカテゴリ、先頭エンティティと末尾エンティティの関係、末尾エンティティのカテゴリ、および末尾エンティティが表示されます。

Neo 4 j Neo4jに簡単かつ迅速にインポートするための 5 つのテーブルを自動的に生成します。N eo 4 j图库、SQLS サーバー SQL ServerSQLサーバー MySQL MySQL _ _SQL構造化データベース。
ここに画像の説明を挿入

結果として得られる 1 対 1 適合の下流タスク ラベル。( recode_2.py recode\_2.pyを変更できますreco d e _2. p y、ラベル生成ルールを調整します)
ここに画像の説明を挿入

10. マーキング仕様とKG仕様

ラベル付けプロセス中に、ラベル付けチュートリアル、KG 仕様、およびラベル付け仕様を表示する必要がある場合は、右側のメニュー バーのボタンをクリックすると、HTML ページが自動的に開き、情報が表示されます。知識実績を伴うため、フォルダ内のKG仕様書.html KG仕様書.htmlK G仕様. h t mlおよびアノテーション仕様 . html アノテーション仕様.htmlマーキング仕様.html空のファイルを提供しますが、通常の使用には影響しません
ここに画像の説明を挿入

11. システムプロンプト

無効なショートカット キーが入力された場合、またはテキストが選択されていない場合は、システムの右上に現在の状態を示すプロンプトが表示されます。例: 選択されていないテキスト、無効なショートカット キー、成功したインポート、失敗したエクスポート、間違った構成情報など。元のテキストが PDF、画像、表などの形式で存在する場合、カスタム コンバーターを使用してテキスト文書に変換し、上記の手順でさらに注釈を付ける必要があります。
ここに画像の説明を挿入

2. メリットと今後の取り組み

  1. このプロジェクトでは、特殊な形式の記号と背景色を使用して段落テキスト内のエンティティと関係をマークし、正規表現を使用してマークアップ結果を分析することで、一般的なマークアップ ソフトウェアと比較して、エンティティ間の関係をマークする機能と、エンティティ間の関係をマークする機能が追加されています。マークアップの取り消しとキャンセル。大規模なラベル付けプラットフォームと比較して、このプロジェクトのソフトウェアは、シンプルかつ直接的な操作と使用の敷居が低いという利点があります。
  2. 将来的には、ワンクリックのラベル付け機能、つまりエンティティを選択することで、記事全体で同じ名前を持つすべてのエンティティをマークできる機能が実現される可能性があります。将来的には、Web ページの形式で展開することもできますが、これには明らかにユーザー情報の問題も伴います。

3. ラベル作成ソフトの入手方法

パッケージを入手するには、次の方法があります。

  1. コメント欄にメールを残していただければ、定期的に返信させていただきます。
  2. ブログのプライベートメッセージ機能を通じてメッセージを送ってください。
  3. GitHub アドレスへの直接アクセス - 公開かつ無料: 「Mars」注釈ツール
  4. 表示:私のリソース

4.アップデート

先ほどのさまざまなニーズを考慮して、リンクが切れる場合はポッドキャストのホームページで見つけることができますので、次の記事を参照してください。

1. Recode_2.py ファイル更新コード! (https://blog.csdn.net/AdamCY888/article/details/130747036)

2. utils フォルダーの下の Colors.py と Colors_1.py を更新します((https://blog.csdn.net/AdamCY888/article/details/130747230))

ありがとう

注釈ツールYEDDA YEDDA をオープンソース化する Fangzun の曲の取り組み感謝します。Y E D A Python 3 Python3に移植パイソン3 _ _ _ _ _

この記事の注釈ツールは Fangzun の曲に基づいて改良および最適化されたバージョンです。

おすすめ

転載: blog.csdn.net/AdamCY888/article/details/127613010