「類義語アウトプット【Python】」の版間の差分

提供: MeryWiki
ナビゲーションに移動 検索に移動
編集の要約なし
MSY-07 (トーク | 投稿記録)
MSY-07 (トーク) による版 9056 を取り消し
タグ: 取り消し
 
(2人の利用者による、間の29版が非表示)
1行目: 1行目:
= 概要 =
== 概要 ==
類義語の検索結果をアウトプットバーに表示します<br>
類義語の検索結果をアウトプットバーに表示します。
検索は日本語WordNetを使用します、少し大きめのファイルです<br>
またPythonも使用しており導入までがちょっと大変です<br>


= 準備 =
検索は日本語WordNetを使用します、少し大きめのファイルです。
== 日本語WordNetの準備 ==
日本語WordNetは国立研究開発法人情報通信研究機構(NICT)が開発している日本語の概念辞書です。商用フリー、申込み不要で利用できます<br>
当マクロでは類義語辞書、国語辞書、英和辞書としての機能を実現するため、日本語WordNetを使用しています<br>


『日本語WordNet』<br>
またPythonも使用しており導入までがちょっと大変です。
http://compling.hss.ntu.edu.sg/wnja/


上記サイトのダウンロードページから
== 準備 ==
『Japanese Wordnet and English WordNet in an sqlite3 database』<br>
=== 日本語WordNetの準備 ===
こちらのファイルをダウンロードして下さい<br>
日本語WordNetは国立研究開発法人情報通信研究機構(NICT)が開発している日本語の概念辞書です。商用フリー、申込み不要で利用できます。


ダウンロードしたファイルを解凍すると『wnjpn.db』というファイルが作成されます。これがデータベースという事のようです<br>
当マクロでは類義語辞書、国語辞書、英和辞書としての機能を実現するため、日本語WordNetを使用しています。
この『wnjpn.db』をMacrosフォルダに配置して下さい<br>
 
『日本語WordNet』
 
https://bond-lab.github.io/wnja/
 
上記サイトのダウンロードページから、
 
『Japanese Wordnet and English WordNet in an sqlite3 database』
 
こちらのファイルをダウンロードして下さい。
 
ダウンロードしたファイルを解凍すると『wnjpn.db』というファイルが作成されます。これがデータベースという事のようです。
 
この『wnjpn.db』をMacrosフォルダに配置して下さい。
 
=== Python環境の準備 ===
『知っておくと便利なテキストエディタ「Mery」の10個の小技』


== Python環境の準備 ==
『知っておくと便利なテキストエディタ「Mery」の10個の小技』<br>
https://www.haijin-boys.com/software/mery/mery-tips
https://www.haijin-boys.com/software/mery/mery-tips


こちらの記事で『マクロをPythonで記述する』という内容が紹介されています<br>
こちらの記事で『マクロをPythonで記述する』という内容が紹介されています。
  1.Python のインストール<br>
  2.Python for Windows (pywin32) Extensions のインストール<br>
  3.Python を ActiveScript のエンジンとして登録する<br>
  4.Mery のマクロで Python が使えるか試してみる<br>


以上の手順を完了させて下さい<br>
# Python のインストール
(当マクロの場合は、1だけで良いかもしれませんがテストしていません)
# Python for Windows (pywin32) Extensions のインストール
# Python を ActiveScript のエンジンとして登録する
# Mery のマクロで Python が使えるか試してみる


== ダウンロード ==
以上の手順を完了させて下さい。
 
(当マクロの場合は、1だけで良いかもしれませんがテストしていません)
 
(→確認しました 2021-01 シリル、1だけでも大丈夫です、しかし折角ですから4まで進めることをお勧めします)
 
=== ダウンロード ===
[[ファイル:類義語出力.zip]]
[[ファイル:類義語出力.zip]]


こちらのZipファイルには『類義語.js』と『synonym.py』が含まれています<br>
こちらのZipファイルには『類義語出力(Ver 3.7.2以降).js』と『類義語出力(Ver 3.7.2以前).js』、『synonym.py』が含まれています。これらをMacrosフォルダに配置して下さい。
これらをMacrosフォルダに配置して下さい<br>
 
『類義語.js』が当マクロの本体になりますのでマクロのカスタマイズから『類義語.js』を追加して下さい<br>
『類義語.js』が当マクロの本体になりますので、マクロのカスタマイズから『類義語.js』を追加して下さい。
 
== 使い方 ==
例えば『執筆』を選択して当マクロを実行すると以下のように表示します。


= 使い方 =
例えば『執筆』を選択して当マクロを実行すると以下のように表示します<br>
  ◇【執筆】の類義語を出力します[類義語辞典モード]
  ◇【執筆】の類義語を出力します[類義語辞典モード]
  類義語:公刊,著作,版行,発刊,書き著す,出版,刊行,発行,物する,印行,著わす,著す,書く,著述
  類義語:公刊,著作,版行,発刊,書き著す,出版,刊行,発行,物する,印行,著わす,著す,書く,著述
47行目: 60行目:
  類義語:起稿,書きおろす,書きつづる,著作,書き下ろす,書き下す,記す,書きあらわす,書表わす,起案,書き表わす,案文,書下ろす,詠む,書綴る,書する,物する,書き綴る,著わす,綴る,書表す,著す,書く,著述,起草
  類義語:起稿,書きおろす,書きつづる,著作,書き下ろす,書き下す,記す,書きあらわす,書表わす,起案,書き表わす,案文,書下ろす,詠む,書綴る,書する,物する,書き綴る,著わす,綴る,書表す,著す,書く,著述,起草


本来は類義語の結果表示には英単語も含んでいますが、独断と偏見により削除して表示しています<br>
本来は類義語の結果表示には英単語も含んでいますが、独断と偏見により削除して表示しています。
 
『猫』の直前にキャレットを置いて当マクロを実行すると以下のように表示します。


『猫』の直前にキャレットを置いて当マクロを実行すると以下のように表示します<br>
  ◇【猫】の類義語を出力します[類義語辞典モード]
  ◇【猫】の類義語を出力します[類義語辞典モード]
  類義語:ねんねこ,にゃんにゃん,キャット,ネコ
  類義語:ねんねこ,にゃんにゃん,キャット,ネコ


付近の単語(この場合は猫)を選択します<br>
付近の単語(この場合は猫)を選択します。


起動直後に何も選択していないような状態、またはアウトラインやアウトプットバーにフォーカスがある場合に当マクロをツールバーなどから実行した場合、『synonym』が選択されたものとして以下のように表示します<br>
起動直後に何も選択していないような状態、またはアウトラインやアウトプットバーにフォーカスがある場合に当マクロをツールバーなどから実行した場合、『synonym』が選択されたものとして以下のように表示します。


  ◇【synonym】の類義語を出力します[類義語辞典モード]
  ◇【synonym】の類義語を出力します[類義語辞典モード]
  類義語:類義語,同義語,類語,同意語,シノニム
  類義語:類義語,同義語,類語,同意語,シノニム


『日本語WordNet』に存在しない単語を選択した場合、以下のように表示します<br>
『日本語WordNet』に存在しない単語を選択した場合、以下のように表示します。


  ※【〇〇】は、Wordnetに存在しない単語です
  ※【〇〇】は、Wordnetに存在しない単語です。


残念ながら、存在しない単語はたくさんあるようです<br>
残念ながら、存在しない単語はたくさんあるようです。


= 設定 =
== 設定 ==
== 類義語.jsの設定 ==
=== 類義語.jsの設定 ===
<source lang="javascript">
<syntaxhighlight lang="javascript">
//------------------------------------------------------------------------------
//--------------------------------------------------------------------------
// 設定
// 設定
var exepath = "Pythonw"; // Pythonのパスを通してインストールしている場合
var exepath = "Pythonw"; // Pythonのパスを通してインストールしている場合
var src = "synonym.py"; // synonym.pyをMery.exeと同じ場所に配置
var src = "synonym.py"; // synonym.pyをMacrosフォルダに配置
//var src = "D:\\python\\synonym.py"; // synonym.pyのフルパス例
//var src = "D:\\python\\synonym.py"; // synonym.pyのフルパス例
var key = "ctrl"; // "ctrl" "shift" "alt"
var key = "ctrl"; // "ctrl" "shift" "alt"
OutputBar.Clear(); // 実行ごとにアウトプットバーをクリアする
OutputBar.Clear(); // 実行ごとにアウトプットバーをクリアする
//------------------------------------------------------------------------------
//--------------------------------------------------------------------------
</source>
</syntaxhighlight>
 
各種パスを設定できるようにしていますが、Macrosフォルダに配置していればファイル名のみで大丈夫なようです。
 
実行ごとにアウトプットバーをクリアしたくない場合は、該当行をコメントアウトして下さい。


各種パスを設定できるようにしていますが、Macrosフォルダに配置していればファイル名のみで大丈夫なようです<br>
『Pythonw』のお尻に"w"がくっついていますが、これは書き間違いではなく黒い画面がちらつかないためのおまじないです。
実行ごとにアウトプットバーをクリアしたくない場合は、該当行をコメントアウトして下さい<br>
『Pythonw』のお尻に"w"がくっついていますが、これは書き間違いではなく黒い画面がちらつかないためのおまじないです<br>


== synonym.pyの設定 ==
=== synonym.pyの設定 ===
<source lang="Python">
<syntaxhighlight lang="Python">
#-------------------------------------------------------------------------------
#---------------------------------------------------------------------------
# 設定
# 設定
conn = sqlite3.connect("wnjpn.db") # wnjpn.dbファイル名のみ
conn = sqlite3.connect("wnjpn.db") # wnjpn.dbファイル名のみ
#conn = sqlite3.connect("D:\\python\\wnjpn.db") # wnjpn.dbのフルパス例
#conn = sqlite3.connect("D:\\python\\wnjpn.db") # wnjpn.dbのフルパス例
#-------------------------------------------------------------------------------
#---------------------------------------------------------------------------
</source>
</syntaxhighlight>
 
『wnjpn.db』のパスを設定できます。


『wnjpn.db』のパスを設定できます<br>
== 注意事項 ==
当マクロは外部の『wnjpn.db』にアクセスします、またPythonにスクリプトを実行させますので環境によっては動作が重いかもしれません、申し訳ありません。


= 注意点 =
『wnjpn.db』は200メガバイト程度のサイズがあります。
当マクロは外部の『wnjpn.db』にアクセスします、またPythonにスクリプトを実行させますので環境によっては動作が重いかもしれません、申し訳ありません<br>
『猫』は検索できても『ねこ』は検索できなかったりと使いにくいと感じる場面はあるかと思います、予めご了承下さい<br>


= 発展 =
『猫』は検索できても『ねこ』は検索できなかったりと使いにくいと感じる場面はあるかと思います、予めご了承下さい。
pizzさん作成の『GetKeyState.exe』を導入すれば、国語辞書・英和辞書としても当マクロを利用することができるようになります<br>


[https://www.haijin-boys.com/wiki/GetKeyState.exe(%E3%82%AD%E3%83%BC%E7%8A%B6%E6%85%8B%E5%8F%96%E5%BE%97%E5%AE%9F%E8%A1%8C%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB) GetKeyState.exe(キー状態取得実行ファイル)]
== 発展 ==
Mery Ver 3.7.2以前のマクロでは、pizzさん作成の「[[GetKeyState.exe(キー状態取得実行ファイル)]]」を導入すれば、国語辞典・英和辞典としても当マクロを利用することができるようになります。「GetKeyState.exe」はMacrosフォルダに配置して下さい。


『GetKeyState.exe』はMacrosフォルダに配置して下さい<br>
なお、Mery Ver.3.7.2以降のマクロでは[[マクロリファレンス:3:Shell オブジェクト#GetKeyState メソッド|shell.GetKeyStateメソッド]]を使用しているため、GetKeyState.exeは必要ありません。


例えば当マクロのショートカットキーに「Alt+T」「Ctrl+T」を割り当て、『コマンド』という単語を選択し、「Alt+T」を実行すると以下のように表示します<br>
例えば当マクロのショートカットキーに「Alt+T」「Ctrl+T」を割り当て、『コマンド』という単語を選択し、「Alt+T」を実行すると以下のように表示します。


  ◇【コマンド】の類義語を出力します[類義語辞典モード]
  ◇【コマンド】の類義語を出力します[類義語辞典モード]
112行目: 129行目:
  類義語:ステイトメント,インストラクション,ステートメント,命令
  類義語:ステイトメント,インストラクション,ステートメント,命令


類義語辞典モードで動作します。同様にして「Ctrl+T」を実行すると、<br>
類義語辞典モードで動作します。同様にして「Ctrl+T」を実行すると、


  ◇【コマンド】の意味を出力します[国語英和辞典モード]
  ◇【コマンド】の意味を出力します[国語英和辞典モード]
120行目: 137行目:
  意味:コンピュータプログラムの一部分として書かれたコードの一行
  意味:コンピュータプログラムの一部分として書かれたコードの一行


このように国語辞典として動作します<br>
このように国語辞典として動作します。
選択範囲の単語が英単語なら英和辞典として動作します<br>
 
選択範囲の単語が英単語なら英和辞典として動作します。
 
デフォルトでは「Ctrl」キーを状態取得の対象としていますが、「いや、類義語モードをCtrlで使いたいんだ」という場合もあるかと思います。設定のkeyのところで「Shift」キーや「Alt」キーに変更することが可能です。
 
== 所感 ==
ポンとショートカットキーを押した時、アウトプットバーに類義語が表示されれば嬉しいなと思いました。JscriptもPythonも初心者、SQLなんて触ったこともない私ですので「類義語 無料」などで検索して具体的なコードが公開されているのを見つけた時、飛びついてしまったわけです。
 
Jscriptのみで作成すればもっとすっきりしていたと思います。どうせPythonを使うならスクレイピングした方がより詳細だったかもしれません。


デフォルトでは「Ctrl」キーを状態取得の対象としていますが、「いや、類義語モードをCtrlで使いたいんだ」という場合もあるかと思います。設定のkeyのところで「Shift」キーや「Alt」キーに変更することが可能です<br>
当初はPythonスクリプトをMeryマクロとして動作させようとしてましたがデバッグがやりにくくて早々に投げ出してしまいました。Pythonに標準出力させて、それをまるっと受け取って加工してアウトプットバーに表示ってかなり面妖ですよね。


= 所感 =
どこかのサイトが類義語のAPIを提供してくれてないかな、それを使ってどなたか類義語マクロを作ってくれないかなと思っています。
ポンとショートカットキーを押した時、アウトプットバーに類義語が表示されれば嬉しいなと思いました。JscriptもPythonも初心者、SQLなんて触ったこともない私ですので「類義語 無料」などで検索して具体的なコードが公開されているのを見つけた時、飛びついてしまったわけです<br>
Jscriptのみで作成すればもっとすっきりしていたと思います。どうせPythonを使うならスクレイピングした方がより詳細だったかもしれません<br>
当初はPythonスクリプトをMeryマクロとして動作させようとしてましたがデバッグがやりにくくて早々に投げ出してしまいました。Pythonに標準出力させて、それをまるっと受け取って加工してアウトプットバーに表示ってかなり面妖ですよね<br>
どこかのサイトが類義語のAPIを提供してくれてないかな、それを使ってどなたか類義語マクロを作ってくれないかなと思っています<br>


= 更新履歴 =
== 変更履歴 ==
・2019/03/24 初版<br>
* 1.0.2 (2019-03-26)
** 表示の際に改行がちょっと多かったので修正しました。また設定のコメント欄が間違っていたので修正しました
* 1.0.1 (2019-03-25)
** 英単語は小文字でしか検索できないようだったので、コマンド引数としてPythonに渡す前に.toLowerCase()するように修正しました
* 1.0.0 (2019-03-24)
** 初版

2025年6月30日 (月) 08:51時点における最新版

概要[編集]

類義語の検索結果をアウトプットバーに表示します。

検索は日本語WordNetを使用します、少し大きめのファイルです。

またPythonも使用しており導入までがちょっと大変です。

準備[編集]

日本語WordNetの準備[編集]

日本語WordNetは国立研究開発法人情報通信研究機構(NICT)が開発している日本語の概念辞書です。商用フリー、申込み不要で利用できます。

当マクロでは類義語辞書、国語辞書、英和辞書としての機能を実現するため、日本語WordNetを使用しています。

『日本語WordNet』

https://bond-lab.github.io/wnja/

上記サイトのダウンロードページから、

『Japanese Wordnet and English WordNet in an sqlite3 database』

こちらのファイルをダウンロードして下さい。

ダウンロードしたファイルを解凍すると『wnjpn.db』というファイルが作成されます。これがデータベースという事のようです。

この『wnjpn.db』をMacrosフォルダに配置して下さい。

Python環境の準備[編集]

『知っておくと便利なテキストエディタ「Mery」の10個の小技』

https://www.haijin-boys.com/software/mery/mery-tips

こちらの記事で『マクロをPythonで記述する』という内容が紹介されています。

  1. Python のインストール
  2. Python for Windows (pywin32) Extensions のインストール
  3. Python を ActiveScript のエンジンとして登録する
  4. Mery のマクロで Python が使えるか試してみる

以上の手順を完了させて下さい。

(当マクロの場合は、1だけで良いかもしれませんがテストしていません)

(→確認しました 2021-01 シリル、1だけでも大丈夫です、しかし折角ですから4まで進めることをお勧めします)

ダウンロード[編集]

ファイル:類義語出力.zip

こちらのZipファイルには『類義語出力(Ver 3.7.2以降).js』と『類義語出力(Ver 3.7.2以前).js』、『synonym.py』が含まれています。これらをMacrosフォルダに配置して下さい。

『類義語.js』が当マクロの本体になりますので、マクロのカスタマイズから『類義語.js』を追加して下さい。

使い方[編集]

例えば『執筆』を選択して当マクロを実行すると以下のように表示します。

◇【執筆】の類義語を出力します[類義語辞典モード]
類義語:公刊,著作,版行,発刊,書き著す,出版,刊行,発行,物する,印行,著わす,著す,書く,著述
類義語:書きおろす,書きつづる,筆記,書き下ろす,書き下す,認める,揮毫,記す,書きあらわす,書表わす,したためる,書き表わす,書下ろす,書する,染筆,書き綴る,綴る,書表す,呵する,書く,表記
類義語:書きおろす,書きつづる,筆記,書き下ろす,書き下す,認める,記す,書き送る,書きあらわす,書表わす,したためる,書き表わす,書下ろす,書する,物する,書き綴る,著わす,綴る,書表す,著す,呵する,書く,著述,書きおくる,表記
類義語:起稿,書きおろす,書きつづる,著作,書き下ろす,書き下す,記す,書きあらわす,書表わす,起案,書き表わす,案文,書下ろす,詠む,書綴る,書する,物する,書き綴る,著わす,綴る,書表す,著す,書く,著述,起草

本来は類義語の結果表示には英単語も含んでいますが、独断と偏見により削除して表示しています。

『猫』の直前にキャレットを置いて当マクロを実行すると以下のように表示します。

◇【猫】の類義語を出力します[類義語辞典モード]
類義語:ねんねこ,にゃんにゃん,キャット,ネコ

付近の単語(この場合は猫)を選択します。

起動直後に何も選択していないような状態、またはアウトラインやアウトプットバーにフォーカスがある場合に当マクロをツールバーなどから実行した場合、『synonym』が選択されたものとして以下のように表示します。

◇【synonym】の類義語を出力します[類義語辞典モード]
類義語:類義語,同義語,類語,同意語,シノニム

『日本語WordNet』に存在しない単語を選択した場合、以下のように表示します。

※【〇〇】は、Wordnetに存在しない単語です。

残念ながら、存在しない単語はたくさんあるようです。

設定[編集]

類義語.jsの設定[編集]

//--------------------------------------------------------------------------
// 設定
var exepath = "Pythonw";	// Pythonのパスを通してインストールしている場合
var src = "synonym.py";		// synonym.pyをMacrosフォルダに配置
//var src = "D:\\python\\synonym.py";	// synonym.pyのフルパス例
var key = "ctrl";	// "ctrl" "shift" "alt"
OutputBar.Clear();	// 実行ごとにアウトプットバーをクリアする
//--------------------------------------------------------------------------

各種パスを設定できるようにしていますが、Macrosフォルダに配置していればファイル名のみで大丈夫なようです。

実行ごとにアウトプットバーをクリアしたくない場合は、該当行をコメントアウトして下さい。

『Pythonw』のお尻に"w"がくっついていますが、これは書き間違いではなく黒い画面がちらつかないためのおまじないです。

synonym.pyの設定[編集]

#---------------------------------------------------------------------------
# 設定
conn = sqlite3.connect("wnjpn.db")	# wnjpn.dbファイル名のみ
#conn = sqlite3.connect("D:\\python\\wnjpn.db")	# wnjpn.dbのフルパス例
#---------------------------------------------------------------------------

『wnjpn.db』のパスを設定できます。

注意事項[編集]

当マクロは外部の『wnjpn.db』にアクセスします、またPythonにスクリプトを実行させますので環境によっては動作が重いかもしれません、申し訳ありません。

『wnjpn.db』は200メガバイト程度のサイズがあります。

『猫』は検索できても『ねこ』は検索できなかったりと使いにくいと感じる場面はあるかと思います、予めご了承下さい。

発展[編集]

Mery Ver 3.7.2以前のマクロでは、pizzさん作成の「GetKeyState.exe(キー状態取得実行ファイル)」を導入すれば、国語辞典・英和辞典としても当マクロを利用することができるようになります。「GetKeyState.exe」はMacrosフォルダに配置して下さい。

なお、Mery Ver.3.7.2以降のマクロではshell.GetKeyStateメソッドを使用しているため、GetKeyState.exeは必要ありません。

例えば当マクロのショートカットキーに「Alt+T」「Ctrl+T」を割り当て、『コマンド』という単語を選択し、「Alt+T」を実行すると以下のように表示します。

◇【コマンド】の類義語を出力します[類義語辞典モード]
類義語:レインジャー,レーンジャー,レンジャー
類義語:言いつけ,命令すること,指示,命令,指図
類義語:ステイトメント,インストラクション,ステートメント,命令

類義語辞典モードで動作します。同様にして「Ctrl+T」を実行すると、

◇【コマンド】の意味を出力します[国語英和辞典モード]
意味:敵地に奇襲をかける訓練を積んだ水陸両用の軍事部隊
意味:奇襲のための突撃専用部隊として訓練を受けた部隊の隊員
意味:何かをする正式の指示か命令
意味:コンピュータプログラムの一部分として書かれたコードの一行

このように国語辞典として動作します。

選択範囲の単語が英単語なら英和辞典として動作します。

デフォルトでは「Ctrl」キーを状態取得の対象としていますが、「いや、類義語モードをCtrlで使いたいんだ」という場合もあるかと思います。設定のkeyのところで「Shift」キーや「Alt」キーに変更することが可能です。

所感[編集]

ポンとショートカットキーを押した時、アウトプットバーに類義語が表示されれば嬉しいなと思いました。JscriptもPythonも初心者、SQLなんて触ったこともない私ですので「類義語 無料」などで検索して具体的なコードが公開されているのを見つけた時、飛びついてしまったわけです。

Jscriptのみで作成すればもっとすっきりしていたと思います。どうせPythonを使うならスクレイピングした方がより詳細だったかもしれません。

当初はPythonスクリプトをMeryマクロとして動作させようとしてましたがデバッグがやりにくくて早々に投げ出してしまいました。Pythonに標準出力させて、それをまるっと受け取って加工してアウトプットバーに表示ってかなり面妖ですよね。

どこかのサイトが類義語のAPIを提供してくれてないかな、それを使ってどなたか類義語マクロを作ってくれないかなと思っています。

変更履歴[編集]

  • 1.0.2 (2019-03-26)
    • 表示の際に改行がちょっと多かったので修正しました。また設定のコメント欄が間違っていたので修正しました
  • 1.0.1 (2019-03-25)
    • 英単語は小文字でしか検索できないようだったので、コマンド引数としてPythonに渡す前に.toLowerCase()するように修正しました
  • 1.0.0 (2019-03-24)
    • 初版
スポンサーリンク