Web 版で読むときの注意:このマニュアルは手元でサーバ(16_kwic_server.py)を動かす使い方を前提に書いてある。Web 版ではサーバの起動は要らず,画面の操作は同じである。サンプリングと無作為な並べ替えの結果は,サーバ版と同じ用例になるとは限らない。

JLit KWIC コンコーダンサ 操作マニュアル

Step 3「再構築からKWICへ」で作る KWIC コンコーダンサの使い方。 画面の各欄の見出しにある ? を押すと,このマニュアルの該当する節が開く。

1この道具で何をするか

KWIC(KeyWord In Context)は,検索した語を中央にそろえ,その前後の文脈を並べて見せる形式である。 頻度表・キーワード・word embedding は問いを作る道具で,答えは本文にある。 数えたあとに本文へ戻り,その語が実際にどう使われているかを読むために使う。

⚠この画面が見せているのは,UniDic が切り分けた単位である。 「語彙素」「品詞」は辞書の判断であって,原文の事実ではない。誤解析は用例を読まなければ見つからない。

2マニュアルを横に並べて使う

画面右上の 操作マニュアル ↗ と,各欄の ? は, このマニュアルを別のウィンドウで開く。何度押しても同じウィンドウが使われ,該当する節まで送られる。

  1. コンコーダンサの画面で 操作マニュアル ↗ を押す(別のウィンドウが開く)
  2. macOS では,ウィンドウ左上の緑のボタンにポインタを載せ,出てくるメニューから 画面の左半分に並べる項目を選ぶ(macOS の版によって表記が違う)。もう一方のウィンドウを右半分に選ぶ
  3. 大きなモニターや2台目のモニターがあれば,マニュアルのウィンドウをそちらへ移す
ヒントマニュアルは幅 860px 未満になると目次が上に移り,1列で読める。 コンコーダンサの画面は幅 1040px 未満で右の欄が下に回るので,画面を2分割するときは コンコーダンサ側を広めにするとよい。

3起動と終了

ノートブックから(ふつうはこちら)

  1. Step 3 の「索引を作る」のセルを実行する(15_kwic_index.py)。 05(UniDic 解析)を実行し直したら,索引も必ず作り直す
  2. 「画面を起動する」のセルを実行し,出てきたリンク KWIC コンコーダンサを開く(127.0.0.1:8765) を押す
  3. 使い終わったら,「止める」のセルで 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画面の構成

① 検索の欄 語彙素/表層形・検索語・?(検索式の書き方)・検索・CSV・HTML で保存・操作マニュアル 設定 ▴・絞り込み ▴・分布欄を畳む ▶|文脈・並べ替え・表示・サンプリング・句読点・共起語・ウィンドウ 絞り込み(時代区分・著者・文体・作品) ② 用例 時代区分・著者・作品|左文脈|キーワード|右文脈 行を押すと ⑧ 本文が下から開く ③ 共起語 指標・最小共起頻度・件数・品詞で絞る ④ 異綴形(書字形基本形) 件数と,時代区分・作家・作品ごとの内訳 ⑤ 表記の揺れが大きい語彙素 コーパス全体の一覧(開くと出る) ⑥ 時代区分ごとの分布 ヒット数と1万語あたり ⑦ 一致した語形 当たった語形とその件数 ⑧ 作品ごとのヒット 著者・作品・ヒット・1万語
画面の構成(幅の広いとき)。幅が 1040px 未満では ⑥〜⑧ が下に回る。 本文(⑧ の説明の「本文」)は用例の行を押すと画面の下から開く。

画面を広く使う(ラップトップなど)

① の検索の欄は,下へ送っても画面の上に留まる。そのぶん用例を読む場所が狭くなるので,次の操作で広げる。

操作働き
設定 ▴文脈・並べ替え・表示・サンプリング・句読点・共起語・ウィンドウの行を畳む。 畳んだあいだは,横にいまの設定を1行で示す(例:文脈 7 語・本文の順・200 件・共起語 ウィンドウ 4)。設定 ▾ で広げる
絞り込み ▴時代区分・著者・文体・作品の欄を畳む。 絞り込みを掛けているあいだは,横に「著者 2・文体 1 を選択中」のように色を付けて示す(畳んでいても掛かったままになるので,見落とさないように)
?(検索語の欄の右)検索式の書き方を小窓に出す。もう一度押すか,外を押すか,Esc で閉じる
分布欄を畳む ▶右の ⑥〜⑧ を畳み,用例の表を全幅にする(右文脈と位置が切れなくなる)。◀ 分布欄を出す で戻す
⤢ 全画面(② 用例の右上)用例の表を画面いっぱいに広げる。行を押すと,前後の本文も全画面の中で下から開く。 ⤡ 元に戻す か Esc で戻る

用例の表の高さは,画面の残りの高さに合わせて自動で決まる(ウィンドウの大きさを変えたり,欄を畳んだりすると追従する)。 畳んだかどうかは覚えておかない。画面を開き直すと,いつもすべて広げた状態から始まる。

検索語を入れて 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万語あたりの頻度,検索にかかった時間が出る。

読む順序数える前に読む。自分が追う語は,数値を出す前に用例を10件は読み, どういう文脈で使われているかを確かめてから仮説を立てる。

9分布と一致した語形

時代区分ごとの分布

ヒット数と1万語あたりの頻度を,時代区分ごとに出す。棒は1万語あたりの値である。

⚠時代区分ごとに作品数も語数も違うので,生のヒット数で時代を比べてはいけない。 比べるのは1万語あたりの値である。

一致した語形

検索式に当たった語形(ワイルドカードや | で複数の語形に当たったとき,その内訳)と件数。 連なりは全体を1つの語形として数える。

作品ごとのヒット

作品ごとのヒット数と1万語あたりの頻度。1作品に偏っていないかを確かめる。

10共起語

検索語の前後のウィンドウ(共起範囲。語数は ウィンドウ で選ぶ)に現れた語を数え, 選んだ指標で上位の語を選ぶ。ウィンドウは句読点を数えず,文境界を越えない。

操作

項目働き
並べ替えの指標下の表の8つから選ぶ。表の見出し(LogDice・MI・MI3・t・G²・ΔP→・ΔP←・共起)を押しても切り替わる
最小共起頻度ウィンドウの中での共起がこの回数未満の語は出さない(既定 2)。頻度 3 未満の語も出さない
件数出す語の数
共起語の品詞で絞る開くと品詞の木が出る(大分類と中分類)。チェックを変えると数え直す
共起語の行を押すその語をウィンドウの中に含む用例だけを,上の用例の表に出す(下の「共起語から用例へ」)

共起語から用例へ

共起語の表の行を押すと,その語が検索語のウィンドウ(共起範囲)に現れる用例だけが用例の表に並び, 用例の中の共起語に印が付く。数えた語を,すぐに本文で確かめるための機能である。

⚠指標を替えると,表の並べ替えではなく,上位に来る語そのものが変わる。 たとえば MI では低頻度の固有名詞が,t では助詞や助動詞が上に来やすい。

指標

記号:O11=ウィンドウの中での共起頻度,W=ウィンドウに入った形態素の延べ数,f(c)=共起語の頻度, N=句読点を除く全形態素数,E11=W·f(c)/N(期待値)。

指標式性質
LogDice(既定)14 + log2(2·O11/(f(検索語)+f(c)))頻度の偏りの影響を受けにくい(Rychlý 2008)。上限は 14
MIlog2(O11/E11)低頻度語を過大に評価する。固有名詞や誤解析が上位に来やすい
MI3log2(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 種)」にまとめる。

内訳

⚠UniDic の語彙素は,意味で書き分ける別字(伯父/叔父,指す/刺す)や, 読みの違う語(縁:えん/ふち)も1つにまとめる。ここに並ぶのは綴りの揺れだけではない。 また,表記の違いには作家の選択だけでなく,底本・入力者の方針(新字新仮名への改め)も混ざる。 作品ごとの内訳と,広げた本文で確かめること。

書字形基本形がどう残るかは辞書による(歴史的仮名遣いの「云つた」を 云ふ とする辞書も 云う とする辞書もある)。

12表記の揺れが大きい語彙素

画面の下の 表記の揺れが大きい語彙素(コーパス全体) を開くと, 語彙素ごとに書字形基本形を数えた一覧が出る。行を押すと,その語彙素で検索する。

項目働き
品詞大分類で絞る
最小頻度頻度がこれ未満の語彙素は出さない(既定 20)
異綴形と数える最小回数この回数未満の書字形は異綴形の数に入れない(既定 2。頻度には入れる)。 誤解析や一回きりの表記を除くため
並べ方主要形以外の割合(揺れの大きさ)・異綴形の数・頻度

「主要形以外」は,最も多い書字形以外が占める割合である。0% に近いほど表記が1つにそろっている。 条件を変えたら 一覧を出す を押す。

13書き出す

ボタン書き出すもの
CSVいまの検索式と条件の用例を最大2000件,CSV(Excel で開ける)に書き出す。 1行目に検索式・列・総ヒット数・辞書名・索引の作成時刻が入る
HTML で保存いま表示している頁の用例を,そのまま配れる HTML 1枚にする。 検索式・条件・辞書・索引の作成時刻を冒頭に書く

リポートに用例を引くときは,どの検索式で,何件のうちどの用例かが分かるように,書き出したファイルごと残す。

14由来(どの索引を読んでいるか)

画面のいちばん下に,索引の入力・辞書名と版・作成時刻・作品数・形態素数がいつも出る。 画面上部の題の横にも辞書と規模が出る。

⚠05(UniDic 解析)を実行し直したら,索引も作り直す。 辞書を替えればテクスト分割が変わり,古い索引のままでは用例が本文と食い違う。 どの辞書で切った本文を読んでいるか分からない用例は,証拠にならない。

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)