Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad...

61
Excel VBA による 言語テキスト分析 ver. 2013.8.18 この文書は言語テキスト分析プログラム集 LETRAS.xlsm (以下では LETRAS とします) の解説書です。 LETRAS は随時改訂していま すので、この文書の内容も変更されます。改 訂内容については、 LETRAS のシート L をご 覧ください。 また、使用してお気づきの点や改善すべき点 などがありましたら、ぜひ Top タブのメール アドレスにお知らせください。よろしくお願 いいたします。 上田博人 ( 東京大学 ) 2013

Transcript of Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad...

Page 1: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

Excel VBA による

言語テキスト分析

ver. 2013.8.18

この文書は言語テキスト分析プログラム集

LETRAS.xlsm(以下では LETRAS とします)

の解説書です。LETRAS は随時改訂していま

すので、この文書の内容も変更されます。改

訂内容については、LETRAS のシート L をご

覧ください。

また、使用してお気づきの点や改善すべき点

などがありましたら、ぜひ Top タブのメール

アドレスにお知らせください。よろしくお願

いいたします。

上田博人 (東京大学 ) 2013

Page 2: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

1

1. 開始

1.1. 入力シート

LETRAS のファイルを開いて、マクロを有効にしてから、ショートカット

[Ctrl] + [Shift] + L(エル )を押すと LETRAS のマクロが起動します。次は「説

明」のタブを開いたところです。LETRAS を立ち上げると他の Book を開

いてから、ショートカットでマクロを起動すると、その Book 内のデータ

を分析することができます。

このフォームのタイトルバー(最上部の青くなっている部分)に、プログ

ラム名 (LETRAS …)、最小化ボタン(―)、最大化ボタン(□)、終了ボ

タン(×)があります。分析中にこのフォームが邪魔になったときは最小

化ボタンを押してください。そして最大化ボタンを押すと元の大きさに戻

ります。終了ボタンを押すと、フォームが消えます。再度立ち上げるとき

はショートカット [Ctrl]+[Shift]+L で起動してください。

【説明】の下に作成者のメールアドレスが載せられています。プログラムの

不具合や改善点などのご意見をお寄せください。なるべく多くの人に回答

Page 3: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

2

を差し上げられるようにいたします。

LETRAS を立ち上げていれば、他の Book も分析できます。 Book 内で

LETRAS のユーザーフォームを表示してください。

このフォームは次のような共通のベースの上に、さまざまなタブのついた

ページが載せられています。

RENEW 「入力シート」のリストボックスを現在のシートの状

態に更新します。

Ip sheet:

フォームの左下に Ip sheet「入力シート」のリスト

ボックスがあります。ここで選択したシートがさま

ざまな処理の対象になります。 1 つのシートだけで

なく、複数のシートを選択することもできます。

DELETE

表示されているシートを確認せずに削除します。

Excel シートタブを複数選択すると、それらが削除さ

れます。

Output sheet name シート名を最終列に出力します。

IpRwCnt: 現在のシートの行数が示しす。これが入力(処理の

対象)になります。

IpRwNum 処理中の行番号を示します。随時変わります。

OpRwCnt 出力行数:実行後に出力行数が表示されます。

Exec Time 処理時間(ミリセカンド)が表示されます。

EXEC 実行を開始します。

WINDOW ウィンドウを開きます。入力シートは左ウィンドウ、

出力シートは右ウィンドウに表示されます。ウィン

ドウを開かなければ、出力シートだけを表示します。

END 終了します。

次は LETRAS の Excel シートに載せたサンプルデータ Sample です。

Row Text Title-1 Title-2 Par.

1 ●1 En el hotel 01 Hotel - 1

2 ■1 Madrid 01 Hotel 1 Madrid 1

3

A la recepción de un hotel madrileño llega un profesor extranjero para

participar como conferenciante en un seminario sobre Nutrición organizado por

una universidad de verano con sede en El Escorial. El profesor hablará con el

conserje, pidiéndole información sobre los servicios del hotel, así como sobre

posibles visitas turísticas por la región.

01 Hotel 1 Madrid 2

4– ¡Buenos días! Desearía una habitación individual para estar tres noches. ¿Qu

é precio tiene?01 Hotel 1 Madrid 3

Page 4: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

3

Sample はスペイン語圏各地の会話例です。データは、この Sample のよう

に、初めの 1 行をタイトル行とします。A 列は行番号で、2 を開始番号と

します。B 列がテキスト、C 列以降はそれぞれの行についての付加情報で

す。

1.2. ウィンドウ

「WINDOW」ボタンを押すと「左右二面」と「一面」のオプションが順次

変わります。「左右二面」は入力シートと出力シートを同時に見たるとき

に使います。

図:ウィンドウ

1.3. 実行

「説明」以外のタブで実行が可能です。時間がかかる処理を中止するときは、

[Esc]キーを押してください。1000 行以上の大量のデータを出力するときは

「出力行数」が 1000 行ごとに更新されます。

1.4. 消去

出力したシートが不要であるときは「 DEL 消去」ボタンで削除します。複

数のシートのタブを選択すると、それらが削除されます。

1.5. 更新

現在のシートを入力シートにするとき、シートが増えたとき、正規表現の

「再定義」のシートを変更したときに「RENEW 更新」ボタンを押してくだ

Page 5: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

4

さい。

1.6. 終了

「END 終了」ボタンで LETRAS のフォームを終了します。

Page 6: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

5

2. 準備・調整

「準備・調整」のタブに移動してください。ここで言語資料整理の準備をし

ます。

2.1. インポート

これから行う言語テキスト分析を行うために、はじめに言語資料(コーパ

ス)を用意しなければなりません。自分が持っている言語データや自分が

作成した言語データを Excel のシート上にコピーして言語資料を作成しま

しょう。たとえば次のような形式のファイルを Excel に読み込むことがで

きます。

Page 7: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

6

2.1.1. 段落で改行

はじめに次のようなテキストをショートカットキー [Ctrl]+C で「コピー」

してください。

1.1 Madrid

A la recepción de un hotel madrileño llega un profesor extranjero para participar

como conferenciante en un seminario sobre Nutrición organizado por una universidad de

verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

información sobre los servicios del hotel, así como sobre posibles visitas turísticas por

la región.

コピー・アンド・ペーストという作業をするときは、はじめにコピーする

対象を選択し 1、リボンの「ホーム」→「コピー」をクリックします。この

瞬間に選択された内容が「クリップボード」に入ります 2。次に「実行ボタ

ン」を押すと次のような結果になります。

Row Text Par.

1 1.1 Madrid 1

2

A la recepción de un hotel madrileño llega un profesor extranjero para

participar como conferenciante en un seminario sobre Nutrición

organizado por una universidad de verano con sede en El Escorial. El

profesor hablará con el conserje, pidiéndole información sobre los

servicios del hotel, así como sobre posibles visitas turísticas por la

región.

2

2.1.2. 文末で改行

「Carriage return (改行する位置 )」で「C.R. in Sen. (文末で改行 )」を選択す

ると、和文や欧文の文末で改行します。次のように改行して区切られたデ

1 対象のファイル名をマウスでドラッグしたり、 [Shift]キーを押しながら

→や↓などのカーソル移動キーを押すと選択状態になります。全部選択する

ときは [Ctrl]+A を押します。

2 ふつうクリップボードは見えませんが、それを「貼り付け」(ペースト)

することによって内容がわかります。「コピー」のショートカットキーは

[Ctrl]+C, 「ペースト」は [Ctrl]+V です。このように頻繁に行う動作はなる

べくショートカットキーを使うことを勧めます。

Page 8: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

7

ータが別々のセルに配置されます。

2.1.3. 段落と文末で改行

「C.R. in Par. & Sen.(段落と文末 )」を選択すると、和文や欧文の文末で改行

します。段落番号と文番号を出力します。

2.1.4. カラムを指定

次のような形式( #…(見出し番号 )...:(コロン )…(見出し ))のファイルを

Excel に読み込むことができます。

#ID:0001

#Año:1251

#Lugar:Sevilla

Coñocida cosa sea a todos los que esta carta vieren cómo yo don Ferrando, por la

gracia de Dios rey de Castiella, de Toledo, de León, de Gallizia, de Sevilla, de

Córdova, de Murcia e de Jaén, embié mis cartas a vós el concejo de Guadalfajara

que embiássedes vuestros omnes buenos de vuestro concejo a mí, por cosas que

avía de veer e de fablar convusco por buen paramiento de vuestra villa. (…)

#ID:0002

#Año:1260

#Año:Córdova

Row Text Sen.

1 1.1 Madrid 1

2

A la recepción de un hotel madrileño llega un profesor extranjero para participar

como conferenciante en un seminario sobre Nutrición organizado por una

universidad de verano con sede en El Escorial.

1

3El profesor hablará con el conserje, pidiéndole información sobre los servicios del

hotel, así como sobre posibles visitas turísticas por la región.2

Row Text Par. Sen.

1 1.1 Madrid 1 1

2

A la recepción de un hotel madrileño llega un profesor extranjero para participar

como conferenciante en un seminario sobre Nutrición organizado por una

universidad de verano con sede en El Escorial.

2 1

3El profesor hablará con el conserje, pidiéndole información sobre los servicios del

hotel, así como sobre posibles visitas turísticas por la región.2 2

Page 9: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

8

Sepan todos los ombres que esta carta vieren e oyeren cómo nós don Alfonso, por

la gracia de Dios rey de Castiella, de Toledo, de León, de Gallicia, de Sevilla, de

Córdova, de Murcia, de Jaén e del Algarve, en uno con la reína doña Yolant mi

mugier, e con nuestro fijo el infante don Fernando primero heredero, e (…)

(1)「 #数字 :」はテキストの属性を示します。 #1 は第 1 カラムにコロン (:)

以下にあるデータが入ることを示します。 #2 以下も同様です。「 #数字 :」

がない行をテキストとします。次が実行結果です。

(2) 階層化されたテキストをインポートするときは、次のように階層の内

容が変わる場所だけを指定します。

#CAPÍTULO:1 Hotel

#CIUDAD:1 Madrid

A la recepción de un hotel madrileño llega un profesor extranjero para participar

como conferenciante en un seminario sobre Nutrición organizado por una

universidad de verano con sede en El Escorial. (...)

#CIUDAD:2 Sevilla

En la recepción de un hotel llega un viajero que viene atraído por el turismo para

conocer la ciudad de Sevilla, debido a que tuvo la oportunidad de conocer la

promoción de la misma en su país por medio de la televisión y la prensa. (...)

次が実行結果(段落と文末で改行)です。

TX ID Año Lugar

Coñocida cosa sea a todos los que esta carta vieren cómo yo don

Ferrando, por la gracia de Dios rey de Castiella, de Toledo, de León, de

Gallizia, de Sevilla, de Córdova, de Murcia e de Jaén, embié mis cartas

a vós el concejo de Guadalfajara que embiássedes vuestros omnes

buenos de vuestro concejo a mí, por cosas que avía de veer e de fablar

convusco por buen paramiento de vuestra villa. (…)

1 1251 Sevilla

Sepan todos los ombres que esta carta vieren e oyeren cómo nós don

Alfonso, por la gracia de Dios rey de Castiella, de Toledo, de León, de

Gallicia, de Sevilla, de Córdova, de Murcia, de Jaén e del Algarve, en

uno con la reína doña Yolant mi mugier, e con nuestro fijo el infante

don Fernando primero heredero, e (…)

2 Córdova Sevilla

Page 10: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

9

2.2. 配置

2.2.1. 並列配置

[Parallel position]を選択して、縦に並んだデータをその A 列と B 列の内容

にしたがって横に並べかえます。ちょうど 2 次元の座標のように、A 列で

行を決め、B 列で列を決めます。これは日本語と英語などを比較しながら

分析するために有用です。

入力:

TX CAPÍTULOCIUDAD

A la recepción de un hotel madrileño llega un profesor extranjero para

participar como conferenciante en un seminario sobre Nutrición

organizado por una universidad de verano con sede en El Escorial. (...)

1 Hotel 1 Madrid

En la recepción de un hotel llega un viajero que viene atraído por el

turismo para conocer la ciudad de Sevilla, debido a que tuvo la

oportunidad de conocer la promoción de la misma en su país por medio

de la televisión y la prensa. (...)

1 Hotel 2 Sevilla

1 ●1 En el hotel 01 Hotel - 1

2 ■1 Madrid 01 Hotel 1 Madrid 1

3

A la recepción de un hotel madrileño llega un profesor extranjero para participar como

conferenciante en un seminario sobre Nutrición organizado por una universidad de

verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole informaci

ón sobre los servicios del hotel, así como sobre posibles visitas turísticas por la región.

01 Hotel 1 Madrid 2

4– ¡Buenos días! Desearía una habitación individual para estar tres noches. ¿Qué precio

tiene?01 Hotel 1 Madrid 3

Page 11: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

10

出力:

2.2.2. 直列配置

逆に、横に並んだ資料を縦に並び替えるプログラム [Serial position]も有用

です。

入力:並列配置の出力

出力:並列配置の入力

2.2.3. 列幅自動調整

[Active sheet automatic column adjustment ]を選択すると、すべての列幅を自

動で調整します。最大列幅は [Size]で指定してください。

2.2.4. フォントの指定

[Active sheet font]を選択すると、データをそれぞれのコンボボックスで選

択したフォントとサイズ [Size]に変更します。

Row Column Text

1 1 Row

1 2 Text

1 3 Title-1

1 4 Title-2

1 5 Par.

2 1 1

2 2 ●1 En el hotel

2 3 01 Hotel

2 4 -

2 5 1

3 1 2

3 2 ■1 Madrid

3 3 01 Hotel

3 4 1 Madrid

3 5 1

4 1 3

4 2

A la recepción de un hotel madrileño llega un profesor extranjero para

participar como conferenciante en un seminario sobre Nutrición organizado por

una universidad de verano con sede en El Escorial. El profesor hablará con el

conserje, pidiéndole información sobre los servicios del hotel, así como sobre

posibles visitas turísticas por la región.

Page 12: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

11

3. 結合と分離

3.1. 複数のシートを結合

「Unite selected sheets (選択したシートを結合 )」で複数のシートを連続させ

て1つのシートに結合させます。リストボックス「入力シート」で複数の

シートを選択してください。ここでは Sample と Sample-2 を選択します。

Page 13: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

12

Sample-2

出力:

3.2. 選択列によってシートを分離

「Separate sheet by selected column (選択列によってシートを分離 )」によっ

て選択された列にあるデータを基準にして異なるシートに分離します。選

択されたデータの種類が多いと、その数だけシートが作成されてしまうの

で、最大シート数の初期値を 10 としてあります。

入力: 3.1.の出力シート(D 列を選択します。)

出力: 3.2 の入力シート

3.3. 列の結合

隣接した複数の列を選択し、それらをマーク( [Mark]で指定)をつけて結

合します。

入力: CD 列を選択

Row Text Title-1 Title-2 Par.

981 ●10 Reunión de amigos. Despedida 10 Despedida - 1

982 ■1 Madrid 10 Despedida 1 Madrid 1

983

En casa de la familia García Gutiérrez tiene lugar una reunión entre amigos para darle la bienvenida a

Selene, una amiga venida de Salta, Argentina, que ha obtenido una beca para la Universidad de

Salamanca. Aprovechando su estancia en España, Selene ha viajado hasta Madrid para visitar a su

amigo a quien había conocido el año anterior en un congreso en México y para conocer a su familia. Al

día siguiente, los García Gutiérrez organizan una reunión de amigos para presentarles a su invitada, y

aquélla se desarrolla en un ambiente muy cordial.

10 Despedida 1 Madrid 2

984 – ¡Hola, Gonzalo! ¡Gracias por venir! Te presento a Selene, nuestra amiga que ha llegado de Argentina. 10 Despedida 1 Madrid 3

Row Text Title-1 Title-2 Par.

1 ●1 En el hotel 01 Hotel - 1

2 ■1 Madrid 01 Hotel 1 Madrid 1

3

A la recepción de un hotel madrileño llega un profesor extranjero para participar como

conferenciante en un seminario sobre Nutrición organizado por una universidad de

verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole informaci

ón sobre los servicios del hotel, así como sobre posibles visitas turísticas por la región.

01 Hotel 1 Madrid 2

Page 14: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

13

出力:

3.4. 列を横に分離

1列の中にあるデータをマークによって要素の数だけ複数の列に分離しま

す。

入力: 3.3.の出力シート

出力: 3.3.の入力シート

3.5. 列を縦に分離

マークによって1列を複数の列に分離し、要素の数だけ縦に並べて出力し

ます。次は分離するマークとしてコンマ (,)を指定しました。位置は「 Last

position (最終位置 )」です。

Row Text Title-1/Title-2 Par.

981 ●10 Reunión de amigos. Despedida 10 Despedida/- 1

982 ■1 Madrid 10 Despedida/1 Madrid 1

983

En casa de la familia García Gutiérrez tiene lugar una reunión entre amigos para

darle la bienvenida a Selene, una amiga venida de Salta, Argentina, que ha

obtenido una beca para la Universidad de Salamanca. Aprovechando su

estancia en España, Selene ha viajado hasta Madrid para visitar a su amigo a

quien había conocido el año anterior en un congreso en México y para conocer

a su familia. Al día siguiente, los García Gutiérrez organizan una reunión de

10 Despedida/1 Madrid 2

Row Text Title-1 Title-2 Par.

981 ●10 Reunión de amigos. Despedida 10 Despedida - 1

982 ■1 Madrid 10 Despedida 1 Madrid 1

983En casa de la familia García Gutiérrez tiene lugar una reunión entre amigos para

darle la bienvenida a Selene,10 Despedida 1 Madrid 2

983 una amiga venida de Salta, 10 Despedida 1 Madrid 2

983 Argentina, 10 Despedida 1 Madrid 2

Page 15: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

14

4. 並べ替え

データの並べ替えは Excel で頻繁に行う作業ですが、言語研究でよく使う

「逆引き」配列は Excel による並べ替えではできません。LETRAS の「並べ

替え」のタブで、それを可能にしました。また、Excel では途中に空白が

ある列の全体は並べ替えができませんが、これも可能にしました。

「並べ替え」のテキストボックスに列 A, …. , Z(大文字 )を指定してください。

複数あるときは改行してください。

4.1. 一般的な並べ替え(g)

はじめに一般的な並べ替えによる整列をしてみましょう。昇順の場合は、

Page 16: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

15

たとえば A のように「第 1 キー」だけを選択します。逆引きでない一般的

な並べ替えは g を指定しますが (Ag)、これはデフォルトなので指定しなく

てもかまいません (A)。数字は文字の順番ではなく、数の大小を基準にしま

す。たとえば、 2, 1, 11 の昇順は 1, 2, 11 であり、1, 11, 2 という(文字の)

順番になりません。

出力:

4.2. 逆引き配列による並べ替え(r)

対象の文字列の逆引き配列による整列をします。語尾による語形変化など

の分析に役立ちます。B 列を逆引きにするときは Br のように指定します。

出力:

4.3. その他の指定(n, d, s)

数値の並べ替えは n を指定してください。降順は d を指定し、大小文字を

区別するときは s を指定します。たとえば A 列を数値 (n)として、降順 (d)

で並べ替えるときは、テキストボックスに And と指定します。 n, d, s の順

は自由です。

「並べ替え」は新シートに出力するか、現シートに上書き出力するかを選択

できます。現シートに上書きするときは、「新シートに出力」のチェック

を外してください。

Row Text Title-1 Title-2 Par.

987 – ¡Ah!, ya, ¡qué bien! ¿y cuánto tiempo vas a estar? 10 Despedida 1 Madrid 6

1020 – ¡Ah, caramba, qué interesante! ¿Y vas a estar mucho tiempo? 10 Despedida 2 Sevilla 6

1038

– ¡Ah, la tortilla de papas! ¡Eso es la mar de fácil también! ¡Y además se hace en

muy poco tiempo! Primero fríes las papas con las cebollas en una sartén con

mucho aceite y cuando las saques de la sartén te esperas un poco para que se

enfríen. Bates un par de huevos, lo vuelves a echar todo a la sartén con un

poquito más de aceite, al poco le das la vuelta,... y ya está.

10 Despedida 2 Sevilla 24

Row Text Title-1 Title-2 Par.

1077 – ¡Claro que sí! ¡Un día de estos te caemos por allá! 10 Despedida 3 México 30

1005

– ¡Ah, la tortilla de patatas! ¡Es facilísima! ¡Y muy rápida de hacer! Pues mira, s

ólo tienes que freír en abundante aceite, las patatas a las que puedes añadir la

cebolla picada. Una vez que esto ya está hecho, lo sacas de la sartén y lo retiras.

Bates unos huevos y los añades a lo anterior, vuelves a echarlo todo en la sartén,

ahora con un poquito aceite, nada más y... ¡a darle la vuelta a la tortilla!

10 Despedida 1 Madrid 24

1114 – ¡Gracias! ¡Te tomo la palabra! 10 Despedida 4 Lima 34

Page 17: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

16

5. キーワード分析

「KeyWord(キーワード )」のタブには、「Repl.(置換 )」「Sch.(検索 )」「Extr.(抽

出 )」「Excl.(除外 )」「 Index(索引 )」「KWOC(外置 )」「KWIC(内置 )」「Seq.(連

続 )」「Cross(クロス集計 )」の機能があります。それぞれ、「Regular

Expression(正規表現 )」と「Word List(単語目録 )」によって、Search formula(検

索式 )の解釈が異なります。

上下に並んだテキストボックスの、上テキストボックスで指定した検索式

が、LETRAS 拡張正規表現に「再解釈」され、下テキストボックスに表示

されます。再解釈については後述します。「Clear(検索式クリア )」のボタ

ンを押すとテキストボックスが空白になります。左にあるスピンボタンに

よって、 2 つのテキストボックスの領域を変えることができます。

Page 18: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

17

A 列に行番号、最終列にシート名(または A 列の行番号のみ)がある行を

選択し、入力面ボタンを押すと、その入力シートの該当行を表示します。2

つのウィンドウ間でも作動します。

ふつうは「C.sensitive(大小文字区別 )」をしませんが、大小文字を区別する

ときはこれをチェックしてください。「Repl.(置換 )」と「Sch.(検索 )」で「Bg.

color(背景色 )」をチェックすると該当するセルに色が塗られます。「 Full

op.(全出力 )」をチェックするとすべての置換、検索の結果が出力され、チ

ェックを外すと、置換、検索された行だけが出力されます。

5.1. 置換

Excel の置換の機能は限られています。 LATRAS では正規表現を含めたさ

まざまな検索式を使って、言語テクストを分析に適した形に置換すること

ができます。置換をするときの検索式は A=>B のように「 =>」を使います。

これの左辺にマッチした文字列がが右辺の形式に置換されます。

以下では次のデータをサンプルとします。

A la recepción de un hotel madrileño llega un profesor extranjero para participar como

conferenciante en un seminario sobre Nutrición organizado por una universidad de

verano con sede en El Escorial.

5.1.1. 正規表現

「Search formula: (検索式 )」で「Regular expression(正規表現 )」を選択しま

す。たとえば次の正規表現の検索式を使うと r に続く英数字の連続が<R>

に置換されます。ここで、¥w は英単語の使用文字などを示し、アステリス

ク (*)は「直前の正規表現のゼロ回以上」にマッチする文字連続を示します。

r¥w*=><R>

A la <R>ón de un hotel mad<R>ño llega un p<R> ext<R> pa<R> pa<R> como

confe<R> en un semina<R> sob<R> Nut<R>ón o<R> po<R> una unive<R> de ve<R>

con sede en El Esco<R>.

一般正規表現はスペイン語の ó などは単語文字として認識されていません。

そこで、英語以外の言語では一般の正規表現を拡張して再定義した

LETRAS 拡張正規表現を使用します。たとえば ¥l(エル )は独・仏・西語など

Page 19: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

18

の西欧語の単語に使用される文字として再定義されます。

r¥l*=><R>

A la <R> de un hotel mad<R> llega un p<R> ext<R> pa<R> pa<R> como confe<R> en

un semina<R> sob<R> Nut<R> o<R> po<R> una unive<R> de ve<R> con sede en El

Esco<R>.

一般正規表現の ¥w は madrileño の ñ を含めないので r¥w*は madrileño の rile

だけに一致しますが、LETRAS の ¥l はこれを含め、 rileño に一致します。さ

らに LETRAS は%で¥l*を再解釈します。したがって、r¥l*は r%とすること

ができます。

(…)による後方照応を使うと、正規表現に一致した文字列を再生すること

ができます。

(r%)=><$1>

A la <recepción> de un hotel mad<rileño> llega un p<rofesor> ext<ranjero> pa<ra>

pa<rticipar> como confe<renciante> en un semina<rio> sob<re> Nut<rición>

o<rganizado> po<r> una unive<rsidad> de ve<rano> con sede en El Esco<rial>.

上では r に始まる文字列を<…>で囲みました。 r で始まる単語をマークす

るには次のような指定をします。ここで #は語の境界を示します。

(#r%)=><$1>

A la <recepción> de un hotel madrileño llega un profesor extranjero para participar

como conferenciante en un seminario sobre Nutrición organizado por una universidad

de verano con sede en El Escorial.

ñ や ó などの特殊文字は n@, o/のように書くと、それぞれ ñ と ó に再解釈

されます。

(%n@%)=><$1>

(%o/%)=><$1>

A la <recepción> de un hotel <madrileño> llega un profesor extranjero para participar

como conferenciante en un seminario sobre <Nutrición> organizado por una

universidad de verano con sede en El Escorial.

Page 20: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

19

Las dos fo/rmulas se puede agrupar con « (... |. . .)» en «(%(n@|o/)%)=><$1>». Por

agrupar las for/mulas, se aceleraagiliza el procesamiento.

5.1.2. 大小文字区別

[C.sensitive] (大小文字区別 )をチェックして次の置換式を使うと小文字で

はじまる語だけにマッチします。

(%e%)=><$1> (大小区別なし )

A la <recepción> <de> un <hotel> <madrileño> <llega> un <profesor> <extranjero>

para participar como <conferenciante> <en> un <seminario> <sobre> Nutrición

organizado por una <universidad> <de> <verano> con <sede> <en> <El> <Escorial>.

(%e%)=><$1> (大小区別あり )

A la <recepción> <de> un <hotel> <madrileño> <llega> un <profesor> <extranjero>

para participar como <conferenciante> <en> un <seminario> <sobre> Nutrición

organizado por una <universidad> <de> <verano> con <sede> <en> El Escorial.

(%E%)=><$1> (大小区別あり )

A la recepción de un hotel madrileño llega un profesor extranjero para participar como

conferenciante en un seminario sobre Nutrición organizado por una universidad de

verano con sede en <El> <Escorial>.

5.1.3. 大文字変換・小文字変換

=>の右辺に $U または$u を指定すると左辺の検索字にマッチした文字列を

大文字にします。 $L または$l(エル )を指定すると小文字にします。

%n@%=>$U

A la recepción de un hotel MADRILEÑO llega un profesor extranjero para participar

como conferenciante en un seminario sobre Nutrición organizado por una universidad

de verano con sede en El Escorial.

5.1.4. 単語目録

「単語目録」を選択すると単語を単位にして置換します。次の例では、(1:1)

の In は P に置換されますが、 (1:2)の inanis の in は置換されません。大量

の単語を置換したり検索するときは単純一致や正規表現と比べて処理が高

Page 21: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

20

速になります。

a=>A

de=>DE

en=>EN

A la recepción DE un hotel madrileño llega un profesor extranjero para participar como

conferenciante EN un seminario sobre Nutrición organizado por una universidad DE

verano con sede EN El Escorial.

この検索式は正規表現ではないので、 (a|de|en)のようにまとめることがで

きません。正規表現では #(a|de|en)#=><$1>とします。

5.2. 検索

言語資料を分析するとき、関心のあるキーワード(一定の語、語の連続、

語の一部)に注目して、テキストの中でそれらの出現を確認することがよ

くあります。LETRAS では正規表現または単語リストを使って、Excel の列

の中に見つかるキーワードを記号でマークすることができます。以下では、

比較的複雑な正規表現を練習するために、とくに指定しないときは、すべ

て正規表現を使って検索します。

検索のイメージ

Page 22: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

21

¥c¥c (子音+子音 )

A la rece{*pc*}ión de un hotel ma{*dr*}ileño {*ll*}ega un {*pr*}ofesor

e{*xt*}ra{*nj*}ero para pa{*rt*}icipar como co{*nf*}ere{*nc*}ia{*nt*}e en un

seminario so{*br*}e Nu{*tr*}ición o{*rg*}anizado por una unive{*rs*}idad de verano

con sede en El E{*sc*}orial.

「検索マーク」をチェックすると該当するセルに Input シートのタイトル

Text の背景色が塗られます。

#f% (f で始まる単語 )「検索マーク」をチェック

5.3. 抽出・除外

5.3.1. 抽出

キーワードに一致したデータがある行を取り出して、新しいシートにコピ

ーします。

「抽出」のイメージ

Row Text Title-1 Title-2 Par.

981 ●10 Reunión de amigos. Despedida 10 Despedida - 1

982 ■1 Madrid 10 Despedida 1 Madrid 1

983

En casa de la {*familia*} García Gutiérrez tiene lugar una reunión entre amigos

para darle la bienvenida a Selene, una amiga venida de Salta, Argentina, que ha

obtenido una beca para la Universidad de Salamanca. Aprovechando su estancia

en España, Selene ha viajado hasta Madrid para visitar a su amigo a quien había

conocido el año anterior en un congreso en México y para conocer a su

{*familia*}. Al día siguiente, los García Gutiérrez organizan una reunión de

amigos para presentarles a su invitada, y aquélla se desarrolla en un ambiente

muy cordial.

10 Despedida 1 Madrid 2

984– ¡Hola, Gonzalo! ¡Gracias por venir! Te presento a Selene, nuestra amiga que ha

llegado de Argentina. 10 Despedida 1 Madrid 3

Page 23: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

22

5.3.2. 除外

キーワードに一致したデータがない行を取り出して、新しいシートにコピ

ーします。

「除外」のイメージ

5.4. 索引

「索引」では、キーワードを文 ID3の集合と共に表示します。「並べ替え」

は「文字順」と「出現順」が選択できます。次は正規表現を%d#とした文

字順の出力です。

Row Key word Title-1 Title-2 Par. Sen.

556 antigüedad 03 Funcionarios 1 Madrid 13 3

329 barbaridad 02 Camino 2 Sevilla 14 3

501 barbaridad 02 Camino 5 Buenos Aires 14 2

98 barbaridad 05 Consultorio 1 Madrid 13 2

139 bondad 08 Compras 1 Madrid 30 1

386 bondad 08 Compras 5 Buenos Aires 31 1

552 cantidad 06 Fiesta 2 Sevilla 10 3

この表から、Excel のピボットテーブルを使ってさまざまなクロス集計が

できます。LETRAS 独自のクロス集計については後述します (→ 5.7.)。

次は次は正規表現を%d#; #en#した出力順の出力です。

3 文 ID については「 1.3 準備」を参照してください。

Page 24: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

23

Row Key word Title-1 Title-2 Par. Sen.

2 Madrid 01 Hotel 1 Madrid 1 1

3 universidad 01 Hotel 1 Madrid 2 1

3 en 01 Hotel 1 Madrid 2 1

3 en 01 Hotel 1 Madrid 2 1

11 usted 01 Hotel 1 Madrid 4 4

26 en 01 Hotel 1 Madrid 10 2

■連字分析と連語分析

文字や音韻は言語の一定の規則に沿って連続しています。その規則性を探

るための 1 つの方法が「連字分析」です。これは、たとえば la escuela と

言う文字連続を、正規表現 (RE)「 ..」(任意の 2 文字)を使って、索引で

検索すると次の結果になります。出力は出現順です。

Input:

Row Text

1 la escuela

Output [RE: ..; 出現順 ]:

Row Key word

1 la

1 e

1 sc

1 ue

1 la

このように検索は一致した部分を次々に出力していきます。一方、すべて

の 2 連字ということならば、ほかに es, cu, el という区切り方も必要になり

ます。そこで、次の連立検索置換式を用意します。

. .

(.+)=>#$1

..

はじめの正規表現「 . .」(任意の 2 文字)で先と同じ検索をします。次に、

正規表現「 (.+)=>#$1」によって、セルの最初に #というマークを加え #la

escuela と言う文字連続にします。そのあと再び正規表現「 . .」(任意の 2

文字)を使ってこの置換された文字連続を検索します。今度は #<から始め

Page 25: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

24

て区切って行きます。次がその出力です。

Row Key word

1 la

1 e

1 sc

1 ue

1 la

1 #l

1 a

1 es

1 cu

1 el

このように出力された文字連続から、その分類列を選択することにより、

その分布の特徴を示すことがわかります。次は、中世・近代スペイン語の

「 f+1 文字」という 2 連字の相対的な頻度を年代順に調べたものです。全 2

連字の中から取り出しました。これを見ると、山形の分布、つまり上昇・

下降のカーブを描くものがいくつかあります。しかし、それぞれの山の頂

上の位置が異なり、また山の形状も異なっています。これらの中で典型的

な単峰型(頂上が1つ)の分布が、言語変化の特徴をよく示しているので

興味深いと思われます。

なお、 3 文字の連続ならば次の連立検索置換式を使います。

. . .

(.+)=>¥#$1

...

(.+)=>¥#$1

...

そして、2 文字連続でなく、2 単語連続ならば次の連立検索置換式を使いま

す。

& &

(.+)=>xx $1

& &

Page 26: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

25

5.5. 文脈

5.5.1. 外置

検索式に一致するキーワードを独立した A 列に取り出して、元の文と一緒

に表示します。「並べ替え」は「文字順」と「出現順」が選択できます。

Page 27: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

26

%ndo% (ndo を含む単語 )

鍵語 テキスト

afinando y vete {*afinando*} la voz para cantarle el "Cumpleaños feliz", ¿eh?

afinando y vete {*afinando*} la voz para cantarle "Las mañanitas", ¿eh?

aguantando – Aquí estamos, hijo, {*aguantando*} para no caer...

出力付加段落数

出力する段落数を増やして、検証する文脈の範囲を拡げることができます。

コンボボックスの数字を変えて試してください。

同:付加段落 1

鍵語 テキスト

afinando ¡Ah! y vete {*afinando*} la voz para cantarle el "Cumpleaños feliz",

¿eh? 6 Fiesta

afinando ¡Ah! y vete {*afinando*} la voz para cantarle "Las mañanitas", ¿eh? 6

Fiesta

aguantando ¡Qué es de tu vida, chaval ! – Aquí estamos, hijo, {*aguantando*} para

no caer... 9 Fútbol

5.5.2. 内置

「内置」ではキーワードを中心に置き、その前後の文脈を左右に配置します。

キーワードを中心の 1 列に置くことで、キーワードの配列が追跡しやすく

なります。また、その前後の文脈の特徴も目立ちます。「並べ替え」は「文

字順」と「出現順」が選択できます。

内置のイメージ

Page 28: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

27

()(%[ai]d[oa]s?)# (ado, ados, ada, adas, …など )

類義語

ラテン語訳『創世記』には「(彼は)言った」という意味で主に ait, dixit, inquit

という 3 つの変化形が使われています。ちょっと数が多いのですが、それぞれ

のキーワードの出現形をラテン語訳の原典であるヘブライ語テキストの中で探

してみましょう。たとえば、 ait の (1.11), (1:26), ...、dixt の (1:6)…という具合で

す。そうすると、これら全部は基本的に一つのヘブライ語動詞に対応している

ことがわかります。

それでは、ラテン語の 3 つの動詞はまったくの同義語でバリアントに過ぎな

かったのでしょうか。翻訳したヒエロニムスは 3 つの動詞を気ままに使ってい

たのでしょうか。

ここで、ふたたび「内置」で同じキーワードを検索してみると、文末では ait

だけが使われていて( ait は文末だけに限りませんが)、「~と言った」という

ような付け足しのような感じです。

一方、、 inquit は文中に挿入され、日本語にすれば「~―と彼は言った―~」

というような感じです。

この 2 つの動詞に対して、 dixit は文頭で用いられ(逆に文頭だからと言って

dixit になる、ということではありませんが)、「(彼が)言ったことは~」と

いうようなしっかりとした意味合いが感じられます。

Page 29: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

28

スペイン語(だけではありませんが)はこれらの類義語(けっして「同義語」

ではありません)の中から dixit だけを継承しました。dixit のはっきりとした意

味と形が好まれたのだと思います。

「とは思わない」

次は私たちが編集したスペイン語・日本語辞典の用例の日本語の部分「思

いません」を「内置」で検索した結果です。

キーワードの前の位置を見ると、ほとんどが「とは」で終わっていて、な

ぜか「と思いません」の例が見つかりませんでした。

次は夏目漱石『坊っちゃん』の全文を調べた結果です。「思う」の前は「と」

に限られ、「思わない」の前ではほとんどが「とは」が現れています。この

ような分布は統計的な有意差を調べるまでもなく、見ただけで単に偶然で起

きるはずがないことがわかります。

引用部 「思う」 「思わない」

「と」 183 例 なし

「とは」 1 例 11 例

「と思わない」と言ってもちゃんと日本語として成り立つのに、実際にほ

とんど使われない理由は、「思わない」というのが単に「思う」の否定形と

いうのではなくて、ちょうど「…なんて信じられない」というような話者の

何らかの評価を示しているからではないかと思われます。その評価の対象が

「…とは」で表示されているのでしょう。

Page 30: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

29

スペイン語の「(私は)思う」 creo の目的節には que+直説法が使われ、

「思わない」no creo では接続法が使われます。そして学生の答案や日本の文

法書を見ると、そのほとんどが「…とは思いません」と訳しています。スペ

イン語文法では「否定」という意味要素が接続法の条件になる、と論じられ

ることが多いのですが、 no creo を単に動詞の否定形とするよりも、やはり

「信じられない」という「評価」という話者の態度が関わっているのでしょ

う。この点で日本語とスペイン語の文法の間には偶然ではない、人間の普遍

的な認知に関わる意味の平行関係があるように思われます。

私たちは理論的に導かれた文法の規則を実際の言語使用にあてはめるこ

とが多いのですが、実際の言語使用の分析が逆に理論的な文法の問題を再考

するきっかけになることがあります。帰納法と演繹法を両立させることがで

きればよいと思います。

5.6. 連続

「連続」では、キーワードと一緒に現れる語をその位置にそって集計したり、

集めたり、連続して扱ったりして、その関係を探ります。ここでは単語を

単位として、その前後の数語との連続関係を分析します。出力の形式には

「語形」「集計」「合同」「結合」がありますが、この中で「語形」だけが

文の横のつながりを保持します。一方、「集計」「合同」「結合」では、

横のつながりを切って分析します。「並べ替え」は「文字順」と「出現順」

が選択できます。

5.6.1. 語形

単語を単位としていることを除いて、「内置」とほぼ同じ機能を持ちます。

たとえば、上の設定で実行すると次のように出力されます。

Output [#de#]

Sum Ant. 3 words Sum Key word Sum Pos. 3 words Sum Total 6 words

174 1012 de 207 381

142 , 192 , 334 ,

141 la 182 . 278 la

116 el 137 la 197 y

83 y 114 y 182 .

72 en 60 que 129 el

60 a 59 de 118 de

Page 31: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

30

5.6.2. 集計

上の「語形」の前語 (W-1, W-2, …)、鍵語、後語 (W+1, W+2, …)のそれぞれ

の列の単語をまとめて集計します。まとめているので、横の関係は切れて

います。キーワードのそばにある語の頻度を縦の列だけを区別して調べた

いときに役に立ちます。出力は「文字順」、「出現順」、「頻度順」が選

択できます。

連続:集計のイメージ

por (単語目録 ) 並べ替え:頻度順

5.6.3. 集合

前語の列 (W-1, W-2, …)、後語の列 (W+1, W+2, …)、両者 (W-1, W-2, …, W+1,

W+2, …)をまとめてそれぞれを合計列に出力し、その中の単語を合同して、

その頻度を集計します。キーワードのそばで連続する語の集合を見るとき

に使います。

Sum W-3 Sum W-2 Sum W-1 Sum Key word Sum W+1 Sum W+2 Sum W+3

120 128 la 36 , 1012 de 110 la 137 , 203

60 en 77 el 21 y 29 las 125 . 57 .

45 de 65 , 20 es 23 los 75 y 55 ,

41 , 47 13 centro 22 todo 30 en 45 de

41 y 42 un 13 dentro 19 un 26 ... 39 y

30 el 31 a 13 lo 17 acuerdo 24 ? 24 que

29 a 22 una 12 sala 17 que 19 ! 21 se

Page 32: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

31

連続:集合のイメージ

por (単語目録 ) 並べ替え:頻度順

5.6.4. 結合

前の数語、または後の数語の連続を切らずに、その連続の頻度を集計しま

す。キーワードに隣接するまとまった語数の特徴を調べることができます。

連続:連続のイメージ

Sum Ant. 3 words Sum Key word Sum Pos. 3 words Sum Total 6 words

174 1012 de 207 381

142 , 192 , 334 ,

141 la 182 . 278 la

116 el 137 la 197 y

83 y 114 y 182 .

72 en 60 que 129 el

60 a 59 de 118 de

Page 33: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

32

por (単語目録 ) 並べ替え:頻度順

後期ラテン語から初期スペイン語を想像する

大学で習うラテン語はカエサルやキケロなどの紀元前後に書かれた文

章を対象とする古典ラテン語です。一方、ここでテキスト例として見て

いる『創世記』のラテン語は紀元 5 世紀の「後期ラテン語」Late Latin と

よばれるものです。

ラテン語は名詞が格変化し、それによって主語や目的語の関係がわか

るので、とくに動詞の目的語の位置が定まっているわけではありません

が、ふつうは動詞の前におきます。そして動詞はふつう文末に置かれま

す。一方、現代スペイン語などラテン語から派生した言語では目的語は

動詞の後に置くのがふつうです。

さて、次は名詞の対格の例として aquam, arcam, terram を選び、その直

前の語を頻度順に並べたときの出力です。

Sum Ant. 3 words Sum Key word Sum Pos.3 words

9 en_el_centro 1012 de 9 tema_,_¿

9 en_la_sala 9 vez_en_cuando

8 _(_dentro 9 espera_)_

8 _me_alegro 6 acuerdo_._

7 __ 6 todo_._

7 ¿_qué_es 6 tu_vida_?

7 oye_,_cambiando 5 la_ciudad_y

Page 34: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

33

ここで興味深いのは、『創世記』ラテン語の対格(目的語)の位置が、

まるで現代スペイン語のように、ほとんど例外なく動詞の直後になって

いることです。このように当時の話し言葉が反映していると思われる後

期ラテン語の様子から文献によって記録されていない原始スペイン語

Proto-Spanish のシンタックスを想像することができます。

Page 35: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

34

5.7. 分布

「Dist.(分布 )」のタブではキーワードの出現頻度を計算します。

「並べ替え」は「文字順」「出現順」「頻度順」が選択できます。Sch.fm.(Search

formula)を選択すると分布頻度は検索式を単位として計算されます。 K.w.

(Key word)を選択すると検索式にマッチしたキーワードが単位になります。

Cl.コンボボックスの All は全体で計算し、Sheet はシートごとに計算し、

アルファベット (A, B, C, …)は文字で示される列のデータごとに計算しま

す。[It (Interval)]で数値を選択すると、その数値を階級にして分類します。

[Fr.](Frequency)は、Absolute frequency(絶対頻度 ), Relative frequency(相対頻

度:% )、Per thousando words(千語率:それぞれキーワードの絶対頻度をそ

れが含まれる範囲の総語数で割り、 1000 を乗じた数 )が選択できます。次

は Sample と Sample-2 を選択したときの出力です。

Output-1 [Sch.fm,: ando#; iendo#; S.fm; Cl.: All]

Output-2 [Sch.fm,: (a|ie)ndo#; S.fm; Cl.: All]

Key word All

ando# 134

iendo# 24

Key word All

(a|ie)ndo# 158

Page 36: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

35

Output-3 [Sch.fm,: %(a|ie)ndo#; K.w.; Cl.: All]

Output-3 [Sch.fm,: %(a|ie)ndo#; K.w.; Cl.: Sheet]

Output-4 [Sch.fm,: %(a|ie)ndo#; K.w.; Cl.: D]

Output-5 [Sch.fm,: %(a|ie)ndo#; K.w.; Cl.: A; Itv: 100]; Fr.: Absolute frequency

Key word All

afinando 2

aguantando 1

añadiendo 1

ando 5

Key word Sample Sample-2

afinando 2 0

aguantando 1 0

añadiendo 0 1

ando 5 0

Key word - 1 Madrid 2 Sevilla 3 México 4 Lima 5 Buenos Aires

afinando 0 1 0 1 0 0

aguantando 0 1 0 0 0 0

añadiendo 0 1 0 0 0 0

ando 0 0 1 0 2 2

Key word 0 100 200 300 400 500 600 700 800 900

afinando 0 0 0 0 0 1 1 0 0 0

aguantando 0 0 0 0 1 0 0 0 0 0

añadiendo 0 0 0 0 0 0 0 1 0 0

ando 1 0 0 1 1 0 0 0 1 1

Page 37: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

36

Output-5 [Sch.fm,: %(a|ie)ndo#; K.w.; Cl.: A; Itv: 100; Fr.:Relative frequency]

Output-5 [Sch.fm,: %(a|ie)ndo#; K.w.; Cl.: A; Itv: 100; Fr.:Per thousand words]

L 字形分布

ラテン語訳『創世記』の全出現語の度数を「分布」を使って計算し、そのグ

ラフを描いてみると次のような形になります。

一番頻度の高い et (=英 and)は 1922, 次が in(=英 in)が 713, est(=英 is)が

402, ...と続きます。このように語の頻度を降順で辿っていくとその減少が急

であることがわかります。そして et, in, est などの高頻度語の数が非常に少

なく、逆に低頻度語は非常に数多くあります。『創世記』で頻度が 1 の語は

3480 もありました。その様子を示しているのが、上の図です。このような

Key word 0 100 200 300 400 500 600 700 800 900

afinando 0.0% 0.0% 0.0% 0.0% 0.0% 5.6% 6.3% 0.0% 0.0% 0.0%

aguantando 0.0% 0.0% 0.0% 0.0% 5.9% 0.0% 0.0% 0.0% 0.0% 0.0%

añadiendo 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 4.5% 0.0% 0.0%

ando 7.7% 0.0% 0.0% 8.3% 5.9% 0.0% 0.0% 0.0% 5.0% 5.0%

Key word 0 100 200 300 400 500 600 700 800 900

afinando 0.000 0.000 0.000 0.000 0.000 0.376 0.386 0.000 0.000 0.000

aguantando 0.000 0.000 0.000 0.000 0.429 0.000 0.000 0.000 0.000 0.000

añadiendo 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.357 0.000 0.000

ando 0.276 0.000 0.000 0.439 0.429 0.000 0.000 0.000 0.358 0.369

Page 38: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

37

分布は「L 字形分布」と呼ばれ、どのようなテキストでも比較的大きなもの

であれば、このような分布を示します。ここでは名詞や動詞などの変化形な

どを代表形にまとめこんだ計算をしていませんが、代表形にまとめてもその

分布は同様の傾向を示します。

言語は、種類は少ないけれど非常によく使われる接続詞、前置詞、代名詞

などの「機能語」 (function word)と、種類はとても多いけれどあまり使われ

ることがない名詞や動詞などの「内容語」(content word)から成り立っていま

す。このように頻度が偏っていることはバランスがとれていないように見え

ますが、むしろ言語のあり方にとして合理的だと思われます。かりにすべて

の単語が同じ頻度で使われるとしたら、言語使用者は非常に多くの機能語を

学ばなければならず、また絶えず自分が知らない内容語に出会う、という事

態になります。これでは言語としての働きをなさなくなるでしょう。

ところで、『創世記』でもっとも頻度が高い内容語はやはり Deus (=英 God)

でした。度数は 157 で、代名詞などよりも頻度が高く、全体で 15 位の位置

を占めています。このような語はテキストの中で「特徴語」と呼ばれ、とく

に注意が必要です。

KWAC, KWOC, KWIC, ...

コンピュータを使って言語資料を分析するには次のようなさまざまな方

法があります。

検索のキーワードに注目すると、LETRAS の「検索」では対象のテキスト

内においてキーワードをマークすることで分析者の気づきを支援します。テ

キストの中にマークされた部分を辿っていくと、そこに何らかの傾向や規則

性が見つかることがあります。この方法を KWAC (Key Word Alongside

Context)と呼びます。

次に「外置」ではキーワードを 1 つの列にまとめ、その横にキーワードを

含むテキストを載せています。キーワードを並べ替えることによって一定の

キーワードを集中させたり、キーワードを逆引きなどの基準によって並べ替

Page 39: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

38

えたりすることができます。このようにテキストから独立させたキーワード

が次の分析の対象になります。この方法を KWOC (Key Word Out of

Context)とよびます。

LETRAS の「内置」ではキーワードを中心におき、その前後の文脈を左右

に並べています。これによってキーワードと前後の文脈の関係がわかりやす

くなります。この方法は KWIC (Key Word In Context)と呼ばれ、シンタッ

クスやコロケーションの研究にかかせません。

さて、そうすると「分布」はどのように読んだらよいでしょうか。「分布」

ではコンテキストを考えずにキーワードの頻度だけを問題にしています。言

ってみれば KWWC (Key Word Without Context)ということになるでしょ

う。

対照頻度表

複数のシートを使った「分布」の結果は対照頻度表になり、各種の統計分

析にかけることができます。また、対照頻度表そのものの観察も興味深いも

のがあります。

Page 40: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

39

次の図は LETRAS の「分布」を使って中世スペイン語に翻訳された『創世

記』 50 章の中にある i, j, y の文字の出現頻度を調べたものです 4。

実は、これらの 3 つの文字は同じ語の中でも、mi, mj, my; amigo, amjgo の

ように交替して使われていました。このような分布を自由変異 free variation

と呼びます。当時これらは同じ文字(文字素 grapheme)のバリアント (異文

字: allograph)でした。

ところが、実際にその分布を調べてみるとグラフの実線が示すように、 j

の文字が途中まで (14 章の途中まで )ほとんど使われていないのです。自由変

異のバリアントならばどこにでも出現するはずです。翻訳本の製本の状態を

見ると 14 章の途中で帖 (quire)が分かれています。書体の違いからここで写

字生が交替したことがわかります。これらのバリアントの使い方には個人差

があったようです。

4 Schonfield, Jeremy (ed.). 1992. Companion volume to the facsimile edition. La

Biblia de Alba. An illustrated manuscript Bible in Castilian , by Rabbi Moses

Arragel. Madrid. Fundación Amigos de Sefarad.

Ueda, Hiroto. 2009. “Palatal graphemes in a medieval Spanish biblical text: a

corpus analysis of «i, j, y» in Genesis, Biblia de Alba”, Corpus analysis and

variation in linguistics , edited by Yuji Kawaguchi, Makoto Minegishi and

Jacques Durand, John Benjamins Publishig Company, pp. 239 -257.

Page 41: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

40

6. 共起分析

正規表現で指定する 2 つの要素の結合度を探ります。語形変化が多いラテ

ン語などでは正規表現を工夫することで、さまざまな語の組み合わせを実

現できます。語形変化が比較的少ない英語でも、たとえば #ha(ve|s |d |ving)#

によって要素の 1 つに have を指定することができます。結合度を示すさま

ざまな係数を同時に出力します。

6.1. 共起係数

「共起係数」のオプションを選択すつと、2 つの要素は同じセルの中にある、

という条件を満たしているかぎり、どれだけ間隔が空いてもかまいません。

「X:」は第 1 要素の総頻度を示し、「Y:」は第 2 要素の総頻度を示します。

Page 42: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

41

「共起回数」は 2 要素が連続して現れた語数です。この場合「順番区別」を

チェックしていないので、第 2 要素+第 1 要素という順番のデータも数え

ます。「全語数」はデータ内の総語数です。「相互情報量」「 Dice 係数」

「 Jaccard 係数」「Ochiai 係数」「優先係数」については『基礎』を参照し

てください。

次は [Classification (分類 )]のコンボボックスで [Sheet]を選択した結果です。

次は [Classification (分類 )]のコンボボックスで [D]列を選択した結果です。

Coocurrence Analysis: Cooc.coef. All

Freq. of X: #(por|para)# 521

Freq. of Y: &[aei]r# 883

a (++) Cooccur. (XY): #(por|para)#.*?&[aei]r# 483

b (+-) Exclusive (X): #(por|para)# 38

c (-+) Exclusive (Y): &[aei]r# 400

Total (N) 26,668

Mutual information 4.8073

Dice 2a/(2a+b+c) 0.6880

Jaccard a/(a+b+c) 0.5244

Ochiai a/√[(a+b)(a+c)] 0.7121

Preference (2a-b-c)/(2a+b+c) 0.3761

Coocurrence Analysis: Cooc.coef. Sample Sample-2

Freq. of X: #(por|para)# 420 101

Freq. of Y: &[aei]r# 753 130

a (++) Cooccur. (XY): #(por|para)#.*?&[aei]r# 398 85

b (+-) Exclusive (X): #(por|para)# 22 16

c (-+) Exclusive (Y): &[aei]r# 355 45

Total (N) 22,303 4,365

Mutual information 4.8108 4.8206

Dice 2a/(2a+b+c) 0.6786 0.7359

Jaccard a/(a+b+c) 0.5135 0.5822

Ochiai a/√[(a+b)(a+c)] 0.7077 0.7418

Preference (2a-b-c)/(2a+b+c) 0.3572 0.4719

Page 43: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

42

6.2. 隣接係数

[Conjunction]を選択すると、2 つの要素が連続するケースでの頻度を計算し

ます。

6.3. 間隔係数

「間隔係数」は 2 つの要素の間に指定した数字以下の文字数のデータがある

ときの回数を計算し、それを共起回数とします。

Coocurrence Analysis: Cooc.coef. 1 Madrid 2 Sevilla 3 México 4 Lima 5 B.A.

Freq. of X: #(por|para)# 14 6 14 6 481

Freq. of Y: &[aei]r# 7 2 8 13 853

a (++) Cooccur. (XY): #(por|para)#.*?&[aei]r# 12 4 12 5 450

b (+-) Exclusive (X): #(por|para)# 2 2 2 1 31

c (-+) Exclusive (Y): &[aei]r# -5 -2 -4 8 403

Total (N) 411 256 495 419 25,084

Mutual information 5.6532 6.4150 5.7289 4.7473 4.7820

Dice 2a/(2a+b+c) 1.1429 1.0000 1.0909 0.5263 0.6747

Jaccard a/(a+b+c) 1.3333 1.0000 1.2000 0.3571 0.5090

Ochiai a/√[(a+b)(a+c)] 1.2122 1.1547 1.1339 0.5661 0.7025

Preference (2a-b-c)/(2a+b+c) 1.2857 1.0000 1.1818 0.0526 0.3493

Coocurrence Analysis: Cont.coef. 1 Madrid 2 Sevilla 3 México 4 Lima 5 B.A.

Freq. of X: #(por|para)# 14 6 14 6 481

Freq. of Y: &[aei]r# 7 2 8 13 853

a (++) Cooccur. (XY): #(por|para)# ?&[aei]r# 5 1 5 1 160

b (+-) Exclusive (X): #(por|para)# 9 5 9 5 321

c (-+) Exclusive (Y): &[aei]r# 2 1 3 12 693

Total (N) 411 256 495 419 25,084

Mutual information 4.3902 4.4150 4.4659 2.4254 3.2901

Dice 2a/(2a+b+c) 0.4762 0.2500 0.4545 0.1053 0.2399

Jaccard a/(a+b+c) 0.3125 0.1429 0.2941 0.0556 0.1363

Ochiai a/√[(a+b)(a+c)] 0.5051 0.2887 0.4725 0.1132 0.2498

Preference (2a-b-c)/(2a+b+c) -0.0476 -0.5000 -0.0909 -0.7895 -0.5202

Page 44: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

43

3 つの係数を比較すると、接係数よりも共起係数のほうが「共起回数」が

多く、間隔係数は、両者の間になることがわかります。間隔語数を増やす

と、共起回数が増加する可能性が高くなります。

隣接係数 <= 間隔係数 <= 共起係数

6.4. 順番を区別

ラテン語は語順が比較的自由な言語です。「順番区別」のチェックの有無

による出力を比較しましょう。次は「文」の中で順番を区別したときと、

区別しないときの出力を比べたものです。

Coocurrencia Con dist. de orden Sin dist. de orden

X: #domin(us|i |um)# 164 164

Y: #de(us|i |um)# 200 200

a (++) Cooccur. (XY):

#domin(us|i |um)#+#de(us|i |um)#

29 33

b (+-) Exclusive(X): #domin(us|i |um)# 135 131

c (-+) Exclusive(Y): #de(us|i |um)# 171 167

Total (N) 25,569 25,569

Mutual information(MI) 4.4987 4.6851

Dice 2á(2a+b+c) 0.1593 0.1813

Jaccard á(a+b+c) 0.0866 0.0997

Ochiai á√ [(a+b)(a+c)] 0.1601 0.1822

Preference (2a-b-c)/(2a+b+c) −0.6813 −0.6373

Coocurrence Analysis: Interval letters100 1 Madrid 2 Sevilla 3 México 4 Lima 5 B.A.

Freq. of X: #(por|para)# 14 6 14 6 481

Freq. of Y: &[aei]r# 7 2 8 13 853

a (++) Cooccur. (XY): #(por|para)#.{0,100}?&[aei]r# 12 4 12 5 450

b (+-) Exclusive (X): #(por|para)# 2 2 2 1 31

c (-+) Exclusive (Y): &[aei]r# -5 -2 -4 8 403

Total (N) 411 256 495 419 25,084

Mutual information 5.6532 6.4150 5.7289 4.7473 4.7820

Dice 2a/(2a+b+c) 1.1429 1.0000 1.0909 0.5263 0.6747

Jaccard a/(a+b+c) 1.3333 1.0000 1.2000 0.3571 0.5090

Ochiai a/√[(a+b)(a+c)] 1.2122 1.1547 1.1339 0.5661 0.7025

Preference (2a-b-c)/(2a+b+c) 1.2857 1.0000 1.1818 0.0526 0.3493

Page 45: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

44

7. 文法タグ

辞書と文法規則を使って、テキストに、出現形・代表形・文法情報を付加

します。出現形はテキストに現れた形です。代表形は辞書に代表として載

せられている形式です。文法情報は辞書で初期規定し、それを文法規則に

よって変形します。複数の解釈があるときは文法規則で単一化します。

Page 46: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

45

7.1. 辞書

A 列:代表形

B 列:品詞・文法情報

シート「辞書」は随時追加します。すでに多くの語を登録してありますが、

分析の過程で現れた新出語を追加してください。テキストに出現した形を

次に示す文法規則で変形し、変形した結果がこの辞書に登録された形と一

致すれば、その文法情報を付加します。語形によっては複数の解釈がある

ときは、どちらも付加し、後述の連鎖規則によって1つを決定します。

各品詞ラベルは、たとえば次の記号を用います。

S: 名詞

X: 固有名詞

Np: 弱勢代名詞

Ns: 強勢代名詞

A: 形容詞

Q: 前置形容詞

D: 副詞

V: 動詞

T: 冠詞

I: 感嘆詞

R: 関係詞

C: 接続詞

P: 前置詞

Z: 数字

Page 47: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

46

W: 疑問詞

E: 肯定語 sí; 否定語 no

各文法ラベルは次の記号を用います。

名詞・形容詞

m: 男性

f: 女性

c: 共性(例: pianista, azul)

a: 対性(例: amigo, amiga; profesor, profesora, blanco, blanca)

s: 単数

p: 複数

動詞

i: 直説法

s: 接続法

c: 推量法

p: 現在

m: 過去

a: 点過去

n: 不定詞

g: 現在分詞

k: 過去分詞

j: 命令形 (2 人称単数 )

語根母音変化動詞には .v を付加してあります。このような条件を付けるこ

とによって、文法規則の適用範囲を限ることができます。

7.2. 離合

テキストの中にある単語の結合を分離したり、複数の語を結合したりしま

す。

Page 48: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

47

7.3. 形態

スペイン語の形態規則を例にして登録しました。分析の過程で必要になれ

ば追加することができます。 [AB]列は出現形 [A]を代表形 [B]に変換するた

めのリストです。それぞれの {*|*|*}と (*|*|*)は対応します。変換して仮の

代表形ができると、これで辞書を参照し、辞書の「文法情報」が文法の「文

法検索」[C]の条件に合えば、文法情報を「文法置換」[D]に置き換えます。

文法置換では {*|*|*}だけが対応します。

たとえば [A3]の {e|e|o |a |a}s$は、語尾 es, es, os, as, as であることを示し、

[B3]の {|e|o ||o}は、消去、e に置換、o に置換、消去、o に置換、を意味しま

す。消去・置換した後の語形を辞書で検索し、その文法上が [C3]の ([AQ])(.).

に一致すれば、つまり A または Q に任意の 2 文字が連続する、という条件

に一致すれば、それを [D3]の$1{m|m|m|f |f}p に対応変換します。 e→消去の

場合は A..を Amp, Q..を Qmp に変換します。以下同様です。文法規則の設

定には正規表現を使ってください。

7.4. 削除

形態規則によって導出された語形が使われないものであるとき、これを削

除します。

Page 49: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

48

7.5. 文法

フォームの「連鎖規則」を選択すると、正規表現によって出力データを置

換します。

入力シート

文法規則を選択しない:

<por>(por)[P]

<una>(una)[Tfs](unir)[Vsp13]

<universidad>(universidad)[Sfs]

文法規則を選択:

<por>(por)[P]

<una>(una)[Tfs]

<universidad>(universidad)[Sfs]

7.6. 出力条件

たとえば、 ¥[¥.Vip.*¥.¥]という出力条件を設定することにより、動詞の直

説法現在形だけを出力します。

Page 50: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

49

7.7. 出力形式

行列分離

行分離

入出行文

入行文

Page 51: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

50

8. 正規表現

8.1. 一般の正規表現

正規表現は複雑な文字列処理に適しています。正規表現の規則は非常に単

純ですが、使い方については練習が必要です。何度でも実験して確認して

ください。

8.1.1. 特殊文字

¥t 水平タブに一致します。

¥b 任意の英単語の境界に一致します。

¥B 任意の英単語境界以外の位置に一致します。

¥n 改行に一致します。

入力文:

The Universal Declaration of Human Rights Article 1. All human beings are born

free and equal in dignity and rights. They are endowed with reason and conscience

and should act towards one another in a spirit of brotherhood.

正規表現:¥bin¥b:単語境界に挟まれた in

The Universal Declaration of Human Rights Article 1. All human beings are born

free and equal {*in*} dignity and rights. They are endowed with reason and

conscience and should act towards one another {*in*} a spirit of brotherhood.

beings の中の in は、単語境界に挟まれていないので一致しません。

8.1.2. 文字クラス

[xyz] 文字セットに含まれている任意の 1 文字に一致します。[...]

の中では . , ? , *などをエスケープする必要はありません。

[^xyz] 文字セットに含まれていない任意の 1 文字に一致します。

.(ピリオド) 改行 (¥n)以外の任意の文字に一致します。

¥w 英単語に使用される任意の文字(アルファベット、数字、アンダー

スコア)[a-zA-Z0-9_]に一致します。

¥W 英単語に使用される文字以外の任意の文字に一致します。

Page 52: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

51

[^a-zA-Z0-9[a-zA-Z_0-9]と同じです。

¥d 任意の数字に一致します。[0-9]と同じです。

¥D 任意の数字以外の文字に一致します。 [^0-9]と同じです。

¥s 任意のスペース文字に一致します。 [ ¥t¥r¥n¥f]と同じです。

¥S 任意の非スペース文字に一致します。 [^ ¥t¥r¥n¥f]と同じです。

入力文:

All human beings are born free and equal in dignity and rights.

正規表現検索:[e-h] (e, f, g, h, i に一致)

All {*h*}uman b{*e*}in{*g*}s ar{*e*} born {*f*}r{*e*}{*e*} and {*e*}qual in

di{*g*}nity and ri{*g*}{*h*}ts.

正規表現検索:[^a-v] (a-v 以外に一致)

All{* *}human{* *}beings{* *}are{* *}born{* *}free{* *}and{* *}equal{*

*}in{* *}dignit{*y*}{* *}and{* *}rights{*.*}

正規表現検索:[c-i] (c, d, e, f , g, h, i に一致)

All human beings are born free and equal in dignity and rights.

結果 正規表現検索:[^c-i](c, d, e, f , g, h, i 以外に一致)

All human beings are born free and equal in dignity and rights.

8.1.3. 選択、グループ化、繰り返し

| 複数の句を 1 つの正規表現にまとめ、これらのうちの任意の句に一

致します。たとえば、 d(os|a)は dos または da に一致します。

¥ba¥b|¥bthe¥b のように (…)でも使うことができます。

(…) 複数の句をグループ化して 1 つの句を作成します。(ab)*c は abc ま

たは c に一致します。

+ 1 個以上の直前の文字に一致します。{1,}と同じです。e+で e, ee, eee,

…に一致します。

* ゼロ個以上の直前の文字またはぐるに一致します。{0,}と同じです。

ah*で a, ah, ahh, …に一致します。

? ゼロ個または 1 個の直前の文字に一致します。 {0,1}と同じです。

Page 53: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

52

books?で book と books に一致します。

{a} 先行する正規表現 a 個に一致します。 [aeoiu]{2}で 2 母音の連続(ei,

ee, ua など)に一致します。

{a ,} 先行する正規表現 a 個以上の直前の文字に一致します。 [aeoiu]{3,}

で 3 母音の連続(aei, uai, auuu など)に一致します。

{a,b} 先行する正規表現 a 個以上、b 個以下に一致します。[aeoiu]{2, 4}で

2-4 母音の連続(ei, aei, uai, auuu など)に一致します。

正規表現検索 (free|equal) (free と equal に一致)

All human beings are born {*free*} and {*equal*} in dignity and rights .

正規表現検索 [e-h]+ ([e-h]の連続に一致)

All {*h*}uman b{*e*}in{*g*}s ar{*e*} born {*f*}r{*ee*} and {*e*}qual in

di{*g*}nity and ri{*gh*}ts.

正規表現検索 [aeoiu]{2} (2 母音の連続)

All human b{*ei*}ngs are born fr{*ee*} and eq{*ua*}l in dignity and rights .

結果 3 正規表現検索 [^aeoiu]{2,} (母音以外の文字 2 個以上の連続に一

致)

A{*ll h*}uma{*n b*}ei{*ngs *}are{* b*}o{*rn fr*}ee a{*nd *}equa{*l *}i{*n

d*}i{*gn*}i{*ty *}a{*nd r*}i{*ghts.*}

8.1.4. エスケープ文字

特殊文字の検索 (, ), [, ], {, }, ?, !, .(ピリオド ), +, *, |, ¥を探すとき

は,その前に ¥をつけてエスケープします。たとえば ¥?でクエスチョンマー

クを検索します。

入力文:

¿Cómo está usted?

正規表現 ¥?(クエスチョンマーク)

¿Cómo está usted?

Page 54: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

53

8.1.5. 置換文字

正規表現の後方参照を使うと、検索式の一部を参照することができます。句を括

弧で囲み、$の後に 1 つの数字を続けることによってその句を指定します。

$n 検索パタンの n 番目の(…)に一致した文字列

$$ $という文字

入力文:

Rumi: Hola, profesor.Prof. Rubio: Buenos di/as.Rumi: Buenos di/as. Nos

encontramos ahora en la Universidad [[Complutense]] de Madrid. ¿Dónde nos

vamos ahora?

Prof.: Bueno, vamos a iniciar hoy el [[Camino]] del [[Cid]], la primera parte.

正規表現:HTML コードを作成します。

a/=>&aacute;

e/=>&eacute;

i/=>&iacute;

ó=>&oacute;

ú=>&uacute;

正規表現 :([aeiou])/=>&$1acute;:上の連立式を折りたたみます。

Rumi: Hola, profesor.Prof. Rubio: Buenos d&iacute;as.Rumi: Buenos

d&iacute;as. Nos encontramos ahora en la Universidad Complutense de Madrid.

¿D&oacute;nde nos vamos ahora? Prof.: Bueno, vamos a iniciar hoy el Camino del

Cid, la primera parte.

正規表現: #(c%)=>[[$1]](c で始まる語を[[...]]でマークします。)

Rumi: Hola, profesor.Prof. Rubio: Buenos días.Rumi: Buenos días. Nos

encontramos ahora en la Universidad [[Complutense]] de Madrid. ¿Dónde nos

vamos ahora?

Prof.: Bueno, vamos a iniciar hoy el [[Camino]] del [[Cid]], la primera parte.

次は中世スペイン語の資料を文字化した資料です。

Otro(22)ssí mando que los menestrales non echen suerte en el judgado por seer

Page 55: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

54

juezes, ca el juez deve tener la seña, e tengo que si <a> afruenta viniesse o a logar

de periglo e omne vil o rafez toviesse la seña que podrié (23) caer el concejo en

grant onta e en grant vergüença.

(22)は語の途中で改行され ssí 以下が 22 行目になることを示しています。

文法研究のためには、これを Otrossí (22)にする必要があります。これは次

の置換式によって実現できます。

正規表現: (¥(¥d+¥))(&)=>$2 $1

Otrossí (22) mando que los menestrales non echen suerte en el judgado por seer

juezes, ca el juez deve tener la seña, e tengo que si <a> afruenta viniesse o a logar

de periglo e omne vil o rafez toviesse la seña que podrié (23) caer el concejo en

grant onta e en grant vergüença.

8.1.6. 後方参照

後方参照を使うことで式の内容を記憶させ、それを後から参照させること

ができます。

(...)¥n 検索文字列の (...)の式に一致した文字列が記憶され、それを

n 回繰り返して参照します。

(...)...(...)=>$n 検索文字列の (...)の式に一致した文字列が記憶され、置換文

字列でそれを参照して再生します。n は (...)の順番に対応す

る番号です。

入力文 :

どんどんテーマが広がって、ますます興味がわいてきた。

正規表現: (..)¥1:2 文字が 2 回繰り返す文字列

どんどんテーマが広がって、ますます興味がわいてきた。

参照する文字(列)がわかっているときは、検索式をたとえば「 (どん ){2}」

のようにすることができますが、ここでは他にも「ますます」「ぐんぐん」

のように、さまざまに変化する場合を想定しています。 ¥1 が先行する (..)

を後方から参照しています。

Page 56: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

55

8.2. 拡張正規表現

8.2.1. 特殊文字を再定義

LETRAS.xlsm では一般の正規表現を拡張して次の検索字を再定義します。

# 単語の境界: #b%は b で始まる単語を検索します。

## 文の境界

& 単語文字 1 個以上 ¥l+

% 単語文字 0 個以上 ¥l*

¥l 西欧語単語文字 [A-Za-zÀ-ǿ]

¥L 西欧語単語文字以外 [^A-Za-zÀ-ǿ]

¥i キリル文字

¥I キリル文字以外

¥g ギリシャ文字

¥G ギリシャ文字以外

¥e ハングル

¥E ハングル以外

¥y CJK 互換漢字、統合漢字、漢字拡張文字

¥Y CJK 互換漢字、統合漢字、漢字拡張文字以外

¥v 母音文字 [aeiouÀ-Æà-æÈ-Ëè-ëÌ-Ïì-ïÒ-Öò-öÙ-Üù-ü]

¥V 母音文字以外 [^aeiouÀ-Æà-æÈ-Ëè-ëÌ-Ïì-ïÒ-Öò-öÙ-Üù-ü]

¥c 子音文字 [bcdfghj-np-tv-zÇçÑñß]

¥C 子音文字以外 [^bcdfghj-np-tv-zÇçÑñß]

¥h ひらがな [ぁ -んー ]

¥H ひらがな以外 [^ぁ -んー ]

¥k カタカナ [ァ -ンー ]

¥K カタカナ以外 [^ァ -ンー ]

¥z 漢字 [一 -龥々〆 ]

¥Z 漢字以外 [^一 -龥々〆 ]

¥j 日本語文字 [ぁ -んァ -ンー一 -龥々〆 ]

¥J 日本語文字以外 [^ぁ -んァ -ンー一 -龥々〆 ]

¥a 文頭符号 [¿¡]

¥A 文頭符号以外 [^¿¡]

¥p 文末符号 [.:?!。.?!:]

¥P 文末符号以外 [^.:?!。.?!:]

¥q 句読点 [.:?!,;:¿¡。.?!:;、]

Page 57: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

56

¥Q 句読点以外 [^.:?!,;:¿¡。.?!:;、]

単語の境界

拡張正規表現:#(m%)=>[$2](語頭の単語境界 #を使った置換式の置換文字

列のトークンの数字は +1 としてください。)

Otro(22)ssí [mando] que los [menestrales] non echen suerte en el judgado por seer

juezes, ca el juez deve tener la seña, e tengo que si <a> afruenta viniesse o a logar

de periglo e omne vil o rafez toviesse la seña que podrié (23) caer el concejo en

grant onta e en grant vergüença.

拡張正規表現: (%[rs])#=>[$1](語尾の単語境界 #を使った置換式の置換文

字列のトークンの数字はそのままにしてください。)

Otro(22)ssí mando que [los] [menestrales] non echen suerte en el judgado [por]

[seer] [juezes], ca el juez deve [tener] la seña, e tengo que si <a> afruenta

viniesse o a [logar] de periglo e omne vil o rafez toviesse la seña que podrié (23)

[caer] el concejo en grant onta e en grant vergüença.

入力文:

親譲りの無鉄砲で小供の時から損ばかりしている。

拡張正規表現 ¥z{2}(漢字 2 文字の連続)

{*親譲 *}りの {*無鉄 *}砲で {*小供 *}の時から損ばかりしている。

拡張正規表現 :¥z+(1 個以上の漢字)

{*親譲 *}りの {*無鉄砲 *}で {*小供 *}の {*時 *}から {*損 *}ばかりしている。

入力文:

『坊っちゃん』夏目漱石

親譲りの無鉄砲で小供の時から損ばかりしている。小学校に居る時分学校

の二階から飛び降りて一週間ほど腰を抜かした事がある。なぜそんな無闇を

したと聞く人があるかも知れぬ。別段深い理由でもない。新築の二階から首

を出していたら、同級生の一人が冗談に、いくら威張っても、そこから飛び

降りる事は出来まい。弱虫やーい。と囃したからである。小使に負ぶさって

帰って来た時、おやじが大きな眼をして二階ぐらいから飛び降りて腰を抜か

す奴があるかと云ったから、この次は抜かさずに飛んで見せますと答えた。

Page 58: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

57

拡張正規表現 ¥z*¥h+(漢字とひらがな:±漢字+ひらがな)

『 {*坊っちゃん *}』夏目漱石

{*親譲りの *}{*無鉄砲で *}{*小供の *}{*時から *}{*損ばかりしている *}。

{*小学校に *}{*居る *}{*時分学校の *}{*二階から *}{*飛び *}{*降りて *}{*

一週間ほど *}{*腰を *}{*抜かした *}{*事がある *}。{*なぜそんな *}{*無闇を

したと *}{*聞く *}{*人があるかも *}{*知れぬ *}。{*別段深い *}{*理由でもな

い *}。{*新築の *}{*二階から *}{*首を *}{*出していたら *}、{*同級生の *}{*

一人が *}{*冗談に *}、{*いくら *}{*威張っても *}、{*そこから *}{*飛び*}{*

降りる *}{*事は *}{*出来まい *}。{*弱虫や *}ー {*い *}。{*と *}{*囃したから

である *}。 {*小使に *}{*負ぶさって *}{*帰って *}{*来た *}時、 {*おやじが

*}{*大きな *}{*眼をして *}{*二階ぐらいから *}{*飛び *}{*降りて *}{*腰を

*}{*抜かす *}{*奴があるかと *}{*云ったから *}、{*この *}{*次は *}{*抜かさ

ずに *}{*飛んで *}{*見せますと *}{*答えた *}。

単語境界のある検索式を使用するときは次のような検索置換式に変換しま

す。

#a% (^|$ |¥L)a%=>$1{*a%*}

%r# %r(^ |$ |¥L)=>%r¥1

8.2.2. 外国語文字の再定義

「SPL」というシートには次のような設定をしています。これは自由に変え

ることができます。変更したときは「更新」ボタンを押してください。こ

こで使用している「 /, ", ~, `, ^」という特殊記号を検索するときは前に ¥を

つけてエスケープしてください。

¥/ x128$

a/ á

e/ é

i/ í

ó ó

ú ú

A/ Á

E/ É

I/ Í

Page 59: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

58

Ó Ó

Ú Ú

¥" x128$

a" ä

e" ë

i" ï

o" ö

u" ü

A" Ä

E" Ë

I" Ï

O" Ö

U" Ü

x128$ "

¥~ x128$

a~ ã

e~ e

i~ i

o~ õ

u~ u

A~ Ã

E~ E

I~ I

O~ Õ

U~ U

x128$ ~

¥` x128$

a` à

e` è

i` ì

o` ò

u` ù

A` À

E` È

I` Ì

Page 60: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

59

O` Ò

U` Ù

x128$ `

¥^ x128$

a^ â

e^ ê

i^ î

o^ ô

u^ û

A^ Â

E^ Ê

I^ Î

O^ Ô

U^ Û

x128$ ^

8.2.3. 除外文字

-正規表現 データを除外して置換と検索の対象にしません。

正規表現の初めにハイフン (マイナスの記号 )がある場合、それに続く正規

表現に一致するデータを除外して置換と検索の対象にしません。たとえば

「 - (● |■ )」とすると、●または■のあるデータを除外します。

8.2.4. 置換字の再定義

置換字として次を加えました。

$U, $u 検索文字に一致した文字列を大文字に変換します。

$L, $l 検索文字に一致した文字列を小文字に変換します。

8.2.5. 検索式のコメント行と区切り行

イコール「=」を 2 つ連続して始める行はコメント行になり、検索置換の

規則になりません。イコール「 =」を 2 つ連続して始める行以降の行はす

べて検索置換の規則になりません。

Page 61: Excel VBA による 言語テキスト分析 - 東京大学cueda/gengo/3-letras/...una universidad de verano con sede en El Escorial. El profesor hablará con el conserje, pidiéndole

60

==検索式の例

de=><DE>

#(p%)=>$1+$2

¥+&

%ó%=>$U

- (● |■ )

=== 終了

[FIN]