Natural-language-toolkit-synonym-antonym-replacement
同義語と反意語の置換
単語を一般的な同義語で置き換える
NLPでの作業中、特に頻度分析とテキストインデックス作成の場合、大量のメモリを節約するため、意味を失うことなく語彙を圧縮することは常に有益です。 これを実現するには、単語の類義語へのマッピングを定義する必要があります。 以下の例では、 word_syn_replacer という名前のクラスを作成します。これは、単語を共通の同義語で置き換えるために使用できます。
例
まず、正規表現を使用するために必要なパッケージ re をインポートします。
次に、単語置換マッピングを取るクラスを作成します-
このpythonプログラム(たとえばreplacesyn.py)を保存して、pythonコマンドプロンプトから実行します。 実行後、単語を一般的な同義語で置き換える場合は、 word_syn_replacer クラスをインポートします。 方法を見てみましょう。
出力
完全な実装例
上記のプログラムを保存して実行したら、クラスをインポートして次のように使用できます-
出力
上記の方法の欠点は、類義語をPython辞書にハードコードする必要があることです。 CSVとYAMLファイルの形式の2つのより良い代替案があります。 シノニム語彙を上記のファイルのいずれかに保存し、それらから word_map 辞書を構築できます。 例を使用して概念を理解しましょう。
CSVファイルの使用
この目的でCSVファイルを使用するには、ファイルに2つの列が必要です。最初の列は単語で構成され、2番目の列はそれを置き換えるための同義語で構成されます。 このファイルを* syn.csvとして保存します。以下の例では、 *CSVword_syn_replacer という名前のクラスを作成します。これは、 replacesyn.py ファイルの word_syn_replacer を拡張し、 word_map の作成に使用されます。 syn.csv ファイルの辞書。
例
まず、必要なパッケージをインポートします。
次に、単語置換マッピングを取るクラスを作成します-
実行後、 CSVword_syn_replacer クラスをインポートして、単語を一般的な同義語に置き換えます。 方法を見てみましょうか?
出力
完全な実装例
上記のプログラムを保存して実行したら、クラスをインポートして次のように使用できます-
出力
YAMLファイルの使用
CSVファイルを使用したので、この目的のためにYAMLファイルを使用することもできます(PyYAMLがインストールされている必要があります)。 ファイルを* syn.yaml。として保存します。以下の例では、 *YAMLword_syn_replacer という名前のクラスを作成します。これは、 replacesyn.py ファイルの word_syn_replacer を拡張し、 word_map の作成に使用されます。 syn.yaml ファイルの辞書。
例
まず、必要なパッケージをインポートします。
次に、単語置換マッピングを取るクラスを作成します-
実行後、単語を一般的な同義語に置き換える場合は、 YAMLword_syn_replacer クラスをインポートします。 方法を見てみましょうか?
出力
完全な実装例
上記のプログラムを保存して実行したら、クラスをインポートして次のように使用できます-
出力
反意語の置換
私たちが知っているように、反意語は別の単語の反対の意味を持つ単語であり、同義語置換の反対は反意語置換と呼ばれます。 このセクションでは、反意語の置換、つまりWordNetを使用して単語を明確な反意語に置き換える方法について説明します。 以下の例では、 word_antonym_replacer という名前のクラスを作成します。このクラスには2つのメソッドがあり、1つは単語を置き換えるためのもので、もう1つは否定を削除するためのものです。
例
まず、必要なパッケージをインポートします。
次に、 word_antonym_replacer という名前のクラスを作成します-
このpythonプログラム(たとえばreplaceantonym.py)を保存して、pythonコマンドプロンプトから実行します。 実行後、単語を明確な反意語で置き換える場合は word_antonym_replacer クラスをインポートします。 方法を見てみましょう。
出力
出力
完全な実装例
上記のプログラムを保存して実行したら、クラスをインポートして次のように使用できます-