LoginSignup
3
3

More than 5 years have passed since last update.

「日本語ワードネット」を用いた複数キーワードの類語一括抽出方法

Last updated at Posted at 2017-07-10

はじめに

国立研究開発法人情報通信研究機構(NICT)で公開されている、「日本語ワードネット」という日本語の類語辞書があります。
http://compling.hss.ntu.edu.sg/wnja/

これを用いる事で、ある語に対しての類語が引ける訳なのですが、実際に実用するとなると、複数の語(キーワード)に対してまとめて類語を抽出したいといった要求が出てきます。
ですが、現状どのサイトを見ても「(1つの)キーワードに対して類語取れました、以上」と言ったものばかりだったので、複数キーワードに対して一括して類語抽出する手順についてまとめてみました。

手順

1.辞書のDL

まずは辞書をサイトからDLします。
サイトのメニューから「リリース・ダウンロード」を選択します。
[Japanese Wordnet and English WordNet in an sqlite3 database]とあるリンクをクリックしてDLします。

2.sqliteのインストール

サイトよりDLしてインストールします。

3.SQLの作成

sqliteで実行するselect文を列挙したSQLのファイルを作成します。

検索するといくつか記述方法があるようですが、今回はこちらのサイトを参考にしました。

但しこの際にselectする項目を"word2.*"とだけしてしまうと、連続でselect文を実行した場合、どこからどこまでが何のキーワードで検索した結果なのかが分からなくなってしまうため、適当なカラム名でキーワードも出力するようなselect文に拡張します。
("適当なカラム名 AS キーワード"をselectに追加)

実際のSQLのイメージ
(以下'キーワード'を実際に検索したいキーワードに置き換えて下さい)


select 'キーワード' as KEYWORD, word2.*
from word as word1 inner join sense as sense1 on ( word1.wordid = sense1.wordid)inner join sense as sense2 on ( sense1.synset = sense2.synset)
inner join word as word2 on ( word2.wordid = sense2.wordid and word2.lang='jpn')
where word1.lemma = 'キーワード' and word1.lang = 'jpn';


上記のSQLを類語抽出したいキーワード分列挙したテキストファイルを作成します。
  → ※文字コードをUTF-8としないとsqliteで読み込めないので注意

4.実行

コマンドラインで作成したSQLを実行します。

・コマンドラインを起動し、sqliteのインストール先のフォルダに移動

・sqliteを起動
 sqlite3 データベース名

・出力ファイルを指定
 .output 出力ファイル名

  → ※以降全てのコマンド入力の結果はコンソールに表示されないので注意

・SQLファイルを読込実行
 .read SQLファイル名

といった手順で、出力ファイルに結果が出力されます。


結果例)
「発注」と「労働」といったキーワードで実施した場合

発注|157855|jpn|誂える||v
発注|162377|jpn|註文||v
発注|182242|jpn|頼む||v
発注|191970|jpn|オーダー||v
発注|203269|jpn|注文||v
発注|207209|jpn|発注||v
発注|217629|jpn|発註||v
発注|227948|jpn|オーダ||v
労働|159374|jpn|労働||n
労働|207938|jpn|労役||n
労働|228799|jpn|肉体労働||n
労働|159374|jpn|労働||n
労働|179519|jpn|バイト||n
労働|195552|jpn|雇用||n
労働|196648|jpn|働き口||n
労働|206010|jpn|アルバイト||n
労働|213311|jpn|仕事||n
労働|155790|jpn|就労||v
労働|159375|jpn|労働||v
労働|169181|jpn|勤労||v
労働|195589|jpn|働く||v
労働|220551|jpn|勤める||v
労働|230042|jpn|勤務||v
労働|159375|jpn|労働||v
労働|169181|jpn|勤労||v
労働|173457|jpn|立ち働く||v
労働|195589|jpn|働く||v

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3