JLit KWIC コンコーダンサ 操作マニュアル
Step 3「再構築からKWICへ」で作る KWIC コンコーダンサの使い方。 画面の各欄の見出しにある ? を押すと,このマニュアルの該当する節が開く。
1この道具で何をするか
KWIC(KeyWord In Context)は,検索した語を中央にそろえ,その前後の文脈を並べて見せる形式である。 頻度表・キーワード・word embedding は問いを作る道具で,答えは本文にある。 数えたあとに本文へ戻り,その語が実際にどう使われているかを読むために使う。
- 語彙素(辞書の見出し)でも,本文に現れたままの表層形でも引ける
- 用例には出典(時代区分・著者・作品)が付き,行を押すと前後の本文が開く
- 時代区分ごとの分布(1万語あたり),共起語,異綴形(表記の違い)を同じ画面で見る
2マニュアルを横に並べて使う
画面右上の 操作マニュアル ↗ と,各欄の ? は, このマニュアルを別のウィンドウで開く。何度押しても同じウィンドウが使われ,該当する節まで送られる。
- コンコーダンサの画面で 操作マニュアル ↗ を押す(別のウィンドウが開く)
- macOS では,ウィンドウ左上の緑のボタンにポインタを載せ,出てくるメニューから 画面の左半分に並べる項目を選ぶ(macOS の版によって表記が違う)。もう一方のウィンドウを右半分に選ぶ
- 大きなモニターや2台目のモニターがあれば,マニュアルのウィンドウをそちらへ移す
3起動と終了
ノートブックから(ふつうはこちら)
- Step 3 の「索引を作る」のセルを実行する(
15_kwic_index.py)。 05(UniDic 解析)を実行し直したら,索引も必ず作り直す - 「画面を起動する」のセルを実行し,出てきたリンク KWIC コンコーダンサを開く(127.0.0.1:8765) を押す
- 使い終わったら,「止める」のセルで
STOP_KWIC = Trueにして実行する
サーバはカーネルを再起動しても止まらない。ポート 8765 がほかの人のサーバ (ログアウトせずに離れた人のもの)に使われていれば,8766, 8767, … の空きを自動で使う。
ターミナルから
python3 scripts/15_kwic_index.py # 索引(05 のあと・辞書を替えたら作り直す)
python3 scripts/16_kwic_server.py --open # 画面(ブラウザが開く)。終わるときは Ctrl-C
127.0.0.1(このマシンの中)でだけ待ち受ける。
認証の無い簡易サーバなので,学内のネットワークに公開しないための仕様である。4画面の構成
画面を広く使う(ラップトップなど)
① の検索の欄は,下へ送っても画面の上に留まる。そのぶん用例を読む場所が狭くなるので,次の操作で広げる。
| 操作 | 働き |
|---|---|
| 設定 ▴ | 文脈・並べ替え・表示・サンプリング・句読点・共起語・ウィンドウの行を畳む。 畳んだあいだは,横にいまの設定を1行で示す(例:文脈 7 語・本文の順・200 件・共起語 ウィンドウ 4)。設定 ▾ で広げる |
| 絞り込み ▴ | 時代区分・著者・文体・作品の欄を畳む。 絞り込みを掛けているあいだは,横に「著者 2・文体 1 を選択中」のように色を付けて示す(畳んでいても掛かったままになるので,見落とさないように) |
| ?(検索語の欄の右) | 検索式の書き方を小窓に出す。もう一度押すか,外を押すか,Esc で閉じる |
| 分布欄を畳む ▶ | 右の ⑥〜⑧ を畳み,用例の表を全幅にする(右文脈と位置が切れなくなる)。◀ 分布欄を出す で戻す |
| ⤢ 全画面(② 用例の右上) | 用例の表を画面いっぱいに広げる。行を押すと,前後の本文も全画面の中で下から開く。 ⤡ 元に戻す か Esc で戻る |
用例の表の高さは,画面の残りの高さに合わせて自動で決まる(ウィンドウの大きさを変えたり,欄を畳んだりすると追従する)。 畳んだかどうかは覚えておかない。画面を開き直すと,いつもすべて広げた状態から始まる。
5検索する
検索語を入れて Enter を押すか,検索 を押す。
語彙素で検索/表層形で検索
| ボタン | 当てる列 | 例 |
|---|---|---|
| 語彙素で検索(既定) | 辞書の見出し。活用や異綴形をまとめる | 言う で 言う・云ふ・言つた・いう… がすべて当たる |
| 表層形で検索 | 本文に現れたままの形 | 云ふ は 云ふ だけ。言う では 云ふ は当たらない |
どちらで引いても,用例の表示は本文どおり(表層形)である。「語彙素で検索して表層形で読む」ができる。
検索式の書き方
| 書き方 | 意味 |
|---|---|
汽車 | そのままの一致(上で選んだ列) |
汽車|電車 | どちらか |
乗* *車 | 前方一致・後方一致(* は0文字以上) |
re:^汽.$ | 正規表現(語彙に当てる) |
* | 任意の1語 |
/動詞 | 品詞だけで指定(大分類の前方一致) |
言う/動詞 | 語形と品詞の両方 |
L:言う S:云ふ | この項だけ語彙素(L:)/表層形(S:)で当てる。1つの式の中で混ぜられる |
汽車 に 乗る | 語の連なり(空白で区切る)。文境界は越えない |
L:なり /名詞 は「語彙素が なり で,その次が名詞」の連なり。
助動詞「なり」と名詞「成り」の誤解析を探すのに使える。0件にならず,理由が出るとき
語彙に無い語形を引くと,「0件」ではなく理由が赤い枠に出る。次を疑う。
- 列の選び違い(表層形でしか現れない綴りを語彙素で引いた,など)
- 辞書によるテクスト分割(「非常に」は「非常」+「に」に切られる →
非常 にと連なりで引く) - 旧仮名の表記(
云ふは表層形。語彙素なら言う)
6表示の条件を変える
| 項目 | 働き |
|---|---|
| 文脈 | キーワードの前後に出す語数(3〜20) |
| 並べ替え | 本文の順・左1語・左1→2語・右1語・右1→2語・初出年・著者・作品・無作為。 左右の語で並べると,決まった言い回しがかたまって見える。文境界の先の語は並べ替えに使わない |
| 表示 | 1頁に出す用例の数。次の頁 → で先へ進む |
| サンプリング | 用例を無作為にこの件数に減らす(0 で全件)。 同じシードなら同じ標本になり,見出しに「無作為サンプリング」したことが出る。総ヒット数と分布は全件のまま |
| 句読点を外す | 句読点に当たった用例を除く(/補助記号 を引いたときなど) |
| 共起語も出す | 外すと共起語を数えない(ヒットが非常に多い式で速くなる) |
| ウィンドウ | 共起語を数える範囲(前後それぞれの語数。1・2・3・4・5・8,既定 4)。1 にすると直前・直後の1語だけを数える(隣接する語の結びつき) |
これらを変えると,いまの検索式で自動的に検索し直す。
7作品を絞り込む
時代区分・著者・文体・作品 の欄から選ぶ。 複数を選ぶには,macOS では ⌘,Windows では Ctrl を押しながらクリックする。 種類の違う欄を組み合わせると,両方に当てはまる作品だけになる。
選んだら 検索 を押す。絞り込みを解除 で選択をすべて外す。
8用例を読む・本文へ広げる
見出しに総ヒット数,表示している件数,100万語あたりの頻度,検索にかかった時間が出る。
- 行を押すと,その用例の前後の本文が画面の下から開く(前後およそ140語。文の途中では切らない)
- 前後をもっと広げる で,前後400語まで広げられる。作品の境界は越えない
- 本文の語にポインタを載せると 語彙素/品詞/活用形/語種 が出る
- 閉じる か Esc で閉じる
9分布と一致した語形
時代区分ごとの分布
ヒット数と1万語あたりの頻度を,時代区分ごとに出す。棒は1万語あたりの値である。
一致した語形
検索式に当たった語形(ワイルドカードや | で複数の語形に当たったとき,その内訳)と件数。
連なりは全体を1つの語形として数える。
作品ごとのヒット
作品ごとのヒット数と1万語あたりの頻度。1作品に偏っていないかを確かめる。
10共起語
検索語の前後のウィンドウ(共起範囲。語数は ウィンドウ で選ぶ)に現れた語を数え, 選んだ指標で上位の語を選ぶ。ウィンドウは句読点を数えず,文境界を越えない。
操作
| 項目 | 働き |
|---|---|
| 並べ替えの指標 | 下の表の8つから選ぶ。表の見出し(LogDice・MI・MI3・t・G²・ΔP→・ΔP←・共起)を押しても切り替わる |
| 最小共起頻度 | ウィンドウの中での共起がこの回数未満の語は出さない(既定 2)。頻度 3 未満の語も出さない |
| 件数 | 出す語の数 |
| 共起語の品詞で絞る | 開くと品詞の木が出る(大分類と中分類)。チェックを変えると数え直す |
| 共起語の行を押す | その語をウィンドウの中に含む用例だけを,上の用例の表に出す(下の「共起語から用例へ」) |
共起語から用例へ
共起語の表の行を押すと,その語が検索語のウィンドウ(共起範囲)に現れる用例だけが用例の表に並び, 用例の中の共起語に印が付く。数えた語を,すぐに本文で確かめるための機能である。
- 数え方は共起語の表と同じである(ウィンドウ の語数,文境界を越えない,句読点は数えない, 品詞で絞っていればその品詞の語だけ)。したがって,印の数は表の「共起」と一致する。 1つの用例に共起語が2回出ることがあるので,用例の件数は「共起」より少なくなることがある
- 用例の見出しと黄色の帯に,絞った件数と,検索語の全用例の件数が出る。 時代区分ごとの分布・一致した語形・作品ごとのヒット・共起語の表は,全用例のまま変わらない (共起語の表が変わらないので,続けて別の語を押して比べられる)
- 並べ替え・頁送り・CSV・HTML で保存は,絞った用例に対して働く。保存したファイルには,どの共起語で絞ったかが書かれる
- 文脈の語数がウィンドウより短いときは,共起語が見えるように,文脈をウィンドウの語数まで広げて出す
- 同じ行をもう一度押すか,× 絞り込みを解く を押すと,全用例に戻る。検索語を改めたときも解ける
指標
記号:O11=ウィンドウの中での共起頻度,W=ウィンドウに入った形態素の延べ数,f(c)=共起語の頻度, N=句読点を除く全形態素数,E11=W·f(c)/N(期待値)。
| 指標 | 式 | 性質 |
|---|---|---|
| LogDice(既定) | 14 + log2(2·O11/(f(検索語)+f(c))) | 頻度の偏りの影響を受けにくい(Rychlý 2008)。上限は 14 |
| MI | log2(O11/E11) | 低頻度語を過大に評価する。固有名詞や誤解析が上位に来やすい |
| MI3 | log2(O11³/E11) | MI の低頻度語への偏りを,共起頻度の3乗で補う |
| t | (O11−E11)/√O11 | 高頻度の語(機能語など)が上に来る |
| G² | 対数尤度比(Step 4 と同じ) | 期待より少ない(負の連関の)語は負にしてある |
| ΔP(検索語→共起語) | O11/W − O21/(N−W) | 検索語のウィンドウの中にいると,その語が現れる確率がどれだけ上がるか(Gries 2013) |
| ΔP(共起語→検索語) | O11/f(c) − O12/(N−f(c)) | その語が現れると,そこが検索語のウィンドウである確率がどれだけ上がるか |
| 共起頻度 | O11 | 生の回数 |
O12=W−O11,O21=f(c)−O11。ΔP は向きのある指標で,2つの値は一致しない。 「汽車」のウィンドウに「乗る」が出やすいことと,「乗る」のウィンドウに「汽車」が出やすいことは別のことである。
品詞で絞る
- 大分類(名詞・動詞…)にチェックを入れると,その下の中分類すべてに当たる
- 内容語(自立語)だけ:普通名詞・固有名詞・自立の動詞・形容詞・形状詞・副詞に限る。 「いる」「する」「なる」のような非自立の動詞と,助詞・助動詞が外れる
- すべて で絞り込みを外す。すべて外す で全部のチェックを外してから選び直せる
品詞で絞ったときは,f(c) も同じ品詞で数える(名詞だけを選んだのに,頻度に別の品詞としての出現まで入れると期待値がずれるため)。 W と N は変わらない。表の下に,W・N・品詞の条件がいつも出る。
11異綴形
語彙素で引くと,当たった語の書字形基本形(UniDic の orthBase)ごとの件数が出る。 書字形基本形は活用を基本形にまとめ,表記の違い(漢字か仮名か・どの漢字か・仮名遣い)を残す。 したがって活用の違いは異綴形に数えない。上位12種より後は「(その他 n 種)」にまとめる。
内訳
- 時代区分/作家/作品 で,どこでどの表記が使われているかを表にする
- 件数/行ごとの割合 で数え方を替える。時代区分や作家を比べるときは,件数の違いに左右されない「行ごとの割合」で見る
- セルにポインタを載せると,件数と割合の両方が出る。「·」は0件
書字形基本形がどう残るかは辞書による(歴史的仮名遣いの「云つた」を 云ふ とする辞書も 云う とする辞書もある)。
12表記の揺れが大きい語彙素
画面の下の 表記の揺れが大きい語彙素(コーパス全体) を開くと, 語彙素ごとに書字形基本形を数えた一覧が出る。行を押すと,その語彙素で検索する。
| 項目 | 働き |
|---|---|
| 品詞 | 大分類で絞る |
| 最小頻度 | 頻度がこれ未満の語彙素は出さない(既定 20) |
| 異綴形と数える最小回数 | この回数未満の書字形は異綴形の数に入れない(既定 2。頻度には入れる)。 誤解析や一回きりの表記を除くため |
| 並べ方 | 主要形以外の割合(揺れの大きさ)・異綴形の数・頻度 |
「主要形以外」は,最も多い書字形以外が占める割合である。0% に近いほど表記が1つにそろっている。 条件を変えたら 一覧を出す を押す。
13書き出す
| ボタン | 書き出すもの |
|---|---|
| CSV | いまの検索式と条件の用例を最大2000件,CSV(Excel で開ける)に書き出す。 1行目に検索式・列・総ヒット数・辞書名・索引の作成時刻が入る |
| HTML で保存 | いま表示している頁の用例を,そのまま配れる HTML 1枚にする。 検索式・条件・辞書・索引の作成時刻を冒頭に書く |
リポートに用例を引くときは,どの検索式で,何件のうちどの用例かが分かるように,書き出したファイルごと残す。
14由来(どの索引を読んでいるか)
画面のいちばん下に,索引の入力・辞書名と版・作成時刻・作品数・形態素数がいつも出る。 画面上部の題の横にも辞書と規模が出る。
15ノートブックから使う
画面と同じ検索を,ノートブックの中で表として得られる。
from kwic_core import KwicIndex
kwi = KwicIndex(ROOT/'data'/'kwic')
res = kwi.search('汽車', stream='lemma', context=7, sort='year',
collocates=40, coll_sort='logdice',
coll_pos=['名詞-普通名詞', '動詞-一般'])
show(kwi.to_frame(res), align={'左文脈': 'right', 'キーワード': 'center'})
res['collocates'][:5] # 共起語(全指標の値つき)
res['variants']['forms'] # 異綴形の件数
kwi.variant_table(min_freq=20, sort='minor')['rows'][:10] # 表記の揺れが大きい語彙素
coll_sort には logdice・mi・mi3・t・g2・
dp_fwd・dp_bwd・co を渡す。
16困ったとき
| 症状 | 原因と対処 |
|---|---|
| 「サーバに接続できない」 | サーバが止まっている。ノートブックの「画面を起動する」のセルを実行し直す。
ログは my_work/results/kwic_server.log |
| リンクを押しても別の人の画面が出る/索引が違う | 前の人のサーバが残っている。起動のセルは自分の索引のサーバを探し, 無ければ別のポートを使うので,セルに出たリンクから開く |
| 「サーバが古い」と出る/検索すると表示が崩れる | 教材を更新したあとも,前に起動したサーバが古いプログラムのまま動いている
(サーバはカーネルを再起動しても止まらない)。「画面を起動する」のセルを実行し直すと,
古いサーバを自動で止めて起動し直す。それでも直らなければ「止める」のセルを
STOP_KWIC = True で実行してから起動し直し,ブラウザの画面を再読み込みする |
| 「索引を作り直すこと(この索引は版 1)」と出る | 異綴形と品詞の中分類は新しい索引(版 2)で使える。
「索引を作る」のセル(15_kwic_index.py)を実行してから,「画面を起動する」のセルを実行し直す
(索引を作り直したことを検知して,サーバを起動し直す) |
| 「○○ に当たる語形が語彙に無い」 | 5 検索する の「0件にならず,理由が出るとき」を見る |
| 用例は出るが本文と食い違う | 05 を実行し直したのに索引を作り直していない。索引を作り直す |
| 共起語が出ない | 共起語も出す が外れている,最小共起頻度が大きすぎる, 品詞の絞り込みで何も選ばれていない,のどれか |
| 検索が遅い | /動詞 や 語* のように何十万件も当たる式では数秒かかることがある。
共起語も出す を外すか,作品を絞り込む |
JLit_Corpus_2026 — KWIC コンコーダンサ操作マニュアル。
中身は scripts/kwic_core.py,画面は scripts/kwic_app.html,
このマニュアルは scripts/kwic_manual.html。用語の説明は docs/glossary.md の Step 3 にある。
JLit KWIC コンコーダンサ © Tomoji Tabata (DH UOsaka)