.NET で GroupDocs Search と Redaction を活用した同義語管理のマスター

アプリケーションがさまざまな語形変化を理解する能力を向上させるには、同義語の管理方法を効果的に行うことから始まります。より高度な検索結果や正確なコンテンツの赤字処理が必要な場合でも、このガイドでは GroupDocs.Search for .NET と GroupDocs.Redaction の使用方法を順を追って説明します。最後まで読むと、同義語辞書の作成、エクスポート、インポート、クエリができるようになり、これらの機能が実際のシナリオでどのように活用されるかが分かります。

クイック回答

  • 「how to manage synonyms」とは何ですか? それは、同義語辞書を作成、更新、使用し、検索が語形変化に対して結果を返すようにするプロセスです。
  • どのライブラリが同義語サポートを提供しますか? GroupDocs.Search for .NET は組み込みの同義語辞書を提供します。
  • 同義語辞書をインポートできますか? はい – ImportDictionary メソッドを使用して、以前にエクスポートしたファイルを読み込みます。
  • ライセンスは必要ですか? 無料トライアルで評価は可能ですが、本番環境ではフルライセンスが必要です。
  • Redaction は互換性がありますか? もちろんです – 検索主導の同義語処理と GroupDocs.Redaction を組み合わせて、ドキュメントの安全な処理が可能です。

同義語管理とは何か?

同義語管理とは、同じ意味を持つ単語のグループ(例: “buy”, “purchase”, “acquire”)を定義することです。ユーザーがある語句で検索すると、エンジンは自動的にクエリを同義語に拡張し、より包括的な結果を提供します。

同義語管理に GroupDocs Search を使用する理由

  • 組み込みの辞書 API – 独自のデータ構造を作成する必要はありません。
  • GroupDocs.Redaction とのシームレスな統合 – 同義語拡張クエリに基づいてコンテンツを赤字処理できます。
  • パフォーマンス最適化されたインデックス作成と検索で、大規模な同義語セットでも高速です。

前提条件

  • GroupDocs.Search と GroupDocs.Redaction の NuGet パッケージ。
  • .NET 開発環境(Visual Studio、VS Code、または .NET CLI)。
  • 基本的な C# の知識、特にファイル操作とコレクションに関するもの。

.NET 用 GroupDocs Redaction の設定

インストール情報

以下の方法のいずれかでプロジェクトに必要なライブラリを追加します。

.NET CLI

dotnet add package GroupDocs.Redaction

Package Manager Console

Install-Package GroupDocs.Redaction

NuGet パッケージ マネージャ UI:
GroupDocs.Redaction を検索し、最新バージョンをインストールします。

ライセンス取得手順

  1. 無料トライアル – ライセンスキーなしでコア機能を試せます。
  2. 一時ライセンス – 期間限定キーを取得して、テスト期間を延長します。
  3. フルライセンス – 本番環境で制限なく使用するために購入します。

基本初期化

using GroupDocs.Redaction;

// Initialize Redactor with a file path and apply basic configurations
Redactor redactor = new Redactor("sample.docx");
redactor.Apply(new ExactPhraseRedaction("Sensitive Info", new ReplacementOptions("[REDACTED]")));

実装ガイド

.NET プロジェクトで 同義語の管理方法 を実行するための各ステップを順に見ていきましょう。

インデックスの作成と管理

概要

インデックスの作成は、すべての同義語操作の基礎です。Index クラスをフォルダーに指し示し、検索可能なドキュメントを追加します。

手順

  • インデックスの初期化

    using GroupDocs.Search;
    
    // Specify paths according to your environment
    string indexPath = @"YOUR_DOCUMENT_DIRECTORY/ManagingDictionaries/SynonymDictionary/Index";
    Index index = new Index(indexPath);
    
  • ドキュメントの追加

    string documentsPath = @"YOUR_DOCUMENT_DIRECTORY/DocumentsPath2";
    index.Add(documentsPath);
    

単語の同義語取得

概要

特定の語句に対するすべての同義語を取得でき、サジェスト表示や辞書のデバッグに役立ちます。

手順

string[] synonyms = index.Dictionaries.SynonymDictionary.GetSynonyms("make");
foreach (string synonym in synonyms)
{
    Console.WriteLine(synonym);
}

同義語グループの取得

概要

グループは関連語をまとめて表示でき、意味解析に役立ちます。

手順

string[][] synonymGroups = index.Dictionaries.SynonymDictionary.GetSynonymGroups("make");
foreach (string[] group in synonymGroups)
{
    Console.WriteLine(string.Join(", ", group));
}

辞書の同義語のクリアと追加

概要

動的なアプリケーションでは、インデックス全体を再構築せずに同義語リストを更新する必要があります。

手順

if (index.Dictionaries.SynonymDictionary.Count > 0)
{
    index.Dictionaries.SynonymDictionary.Clear();
}
string[][] newSynonymGroups = new string[][
    { "achieve", "accomplish", "attain", "reach" },
    { "accept", "take", "have" }
];

index.Dictionaries.SynonymDictionary.AddRange(newSynonymGroups);

同義語辞書のエクスポートとインポート

概要

エクスポートにより同義語データのバックアップや共有が可能になり、インポートで後から復元したり共有辞書を読み込んだりできます。

手順

string fileName = @"YOUR_DOCUMENT_DIRECTORY/ManagingDictionaries/SynonymDictionary/Synonyms.dat";
index.Dictionaries.SynonymDictionary.ExportDictionary(fileName);
index.Dictionaries.SynonymDictionary.ImportDictionary(fileName);

インデックスでの同義語検索の実行

概要

検索クエリ時に同義語拡張を有効にすることで、ユーザーが別の表現を使用しても関連ドキュメントを見つけられます。

手順

string query = "better";
SearchOptions options = new SearchOptions() { UseSynonymSearch = true };
SearchResult result = index.Search(query, options);

// Display results (implementation-dependent)
foreach (FoundDocument doc in result)
{
    Console.WriteLine($"Document: {doc.DocumentInfo.FilePath}");
}

実用的な活用例

  • 法務文書管理 – 同義の法的用語で契約書を検索します。
  • コンテンツレコメンデーションエンジン – 同義語拡張クエリに基づいて記事を提案します。
  • カスタマーサポートシステム – 表現が異なってもチケットをナレッジベースの記事とマッチさせます。
  • Eコマースプラットフォーム – “sofa” や “couch” のような同義語を認識して商品検索を向上させます。

パフォーマンス上の考慮点

  • インデックス戦略 – 同義語データを最新に保つため、インデックスを段階的に再構築または更新します。
  • リソース使用量 – 大規模な同義語辞書をロードする際はメモリを監視し、Index オブジェクトは速やかに破棄します。
  • スレッド安全性 – 適切な同期なしに単一の Index インスタンスを複数スレッドで共有しないでください。

よくある問題と解決策

問題原因解決策
同義語で結果が返されない同義語辞書がロードされていない、または UseSynonymSearch が false に設定されているSearchOptions.UseSynonymSearch = true を設定し、辞書が正しくインポートされていることを確認してください。
再インポート後に重複エントリが発生インポート前にクリアしていないImportDictionary の前に index.Dictionaries.SynonymDictionary.Clear() を呼び出してください。
メモリ使用量が高い非常に大きな同義語ファイルがメモリにロードされている同義語を複数の小さな辞書に分割するか、オンデマンドでロードしてください。

よくある質問

Q: 更新後に同義語辞書をインポートするにはどうすればよいですか?
A: 必要に応じて既存の辞書をクリアした後、index.Dictionaries.SynonymDictionary.ImportDictionary(filePath) を使用します。

Q: 同義語検索とフレーズ検索を組み合わせられますか?
A: はい – SearchOptions で UseSynonymSearch と UsePhraseSearch の両方を有効にすれば、組み合わせた動作が得られます。

Q: 同義語を変更した後にインデックスを再構築する必要がありますか?
A: いいえ、同義語の変更は辞書に保存され、新しい検索に対して即座に有効になります。

Q: 同義語を人間が読める形式でエクスポートできますか?
A: ExportDictionary メソッドはバイナリファイルを書き出しますが、デシリアライズするか、可読性のために JSON/YAML の並行ファイルを保持することができます。

Q: Redaction は同義語拡張クエリを尊重しますか?
A: もちろんです – まず同義語検索を実行し、得られたドキュメントリストを GroupDocs.Redaction に渡して安全に処理できます。


最終更新日: 2026-04-11
テスト環境: GroupDocs.Search 23.11 for .NET, GroupDocs.Redaction 23.11 for .NET
作者: GroupDocs