• 検索結果がありません。

1.5. 検索・置換

1.5.7. 正規表現鍵語外置

検索式に一致したデータをその位置とともに抽出します。一致したデータは文脈の外 の定位置に置きます(KWOC: Key Word out of Context)。

¥c{3}

%r# # 段落

profesor 2 Rumi: Hola, {*profesor*}.

ntr 5

Rumi: Buenos días. Nos enco{*ntr*}amos ahora en la Universidad Complutense de Madrid. ¿Dónde nos vamos ahora?

mpl 5

Rumi: Buenos días. Nos encontramos ahora en la Universidad Co{*mpl*}utense de Madrid. ¿Dónde nos vamos ahora?

iniciar 8 Prof.: Bueno, vamos a {*iniciar*} hoy el Camino del Cid, la primera parte.

ser 10

Va a {*ser*} un viaje de diez días, durante el cual, no solamente vamos a recorrer los lugares que aparecen mencionados en esta famosa obra de la literatura española, sino que además, vamos a estar en contacto con personas, con documentos vivos que nos cuenten cómo es la vida, a qué se dedican, qué inquietudes tienen las personas de los pueblos que vamos a recorrer.

recorrer 10

Va a ser un viaje de diez días, durante el cual, no solamente vamos a {*recorrer*} los lugares que aparecen mencionados en esta famosa obra de la literatura española, sino que además, vamos a estar en contacto con personas, con documentos vivos que nos cuenten cómo es la vida, a qué se dedican, qué inquietudes tienen las personas de los

89

pueblos que vamos a recorrer.

estar 10

Va a ser un viaje de diez días, durante el cual, no solamente vamos a recorrer los lugares que aparecen mencionados en esta famosa obra de la literatura española, sino que además, vamos a {*estar*} en contacto con personas, con documentos vivos que nos cuenten cómo es la vida, a qué se dedican, qué inquietudes tienen las personas de los pueblos que vamos a recorrer.

recorrer 10

Va a ser un viaje de diez días, durante el cual, no solamente vamos a recorrer los lugares que aparecen mencionados en esta famosa obra de la literatura española, sino que además, vamos a estar en contacto con personas, con documentos vivos que nos cuenten cómo es la vida, a qué se dedican, qué inquietudes tienen las personas de los pueblos que vamos a {*recorrer*}.

鍵語の環境条件

言語データ分析では検索対象(鍵語)だけでなく、その前後の環境を考慮するするこ とがあります。たとえば次はスペイン語の前置詞enがどのような文要素の後にあるか を見るための検索式とその検索結果です。

(&) (en)(¥L)=><_$1_> $2$3 段落番号 段落

ahora 3

Rumi: Buenos días. Nos encontramos {*ahora*} en la Universidad Complutense de Madrid. ¿Dónde nos vamos ahora?

mencionados 5

Va a ser un viaje de diez días, durante el cual, no solamente vamos a recorrer los lugares que aparecen {*mencionados*} en esta famosa obra de la literatura española, sino que además, vamos a estar en contacto con personas, con documentos vivos que nos cuenten cómo es la vida, a qué se dedican, qué inquietudes tienen las personas de los pueblos que vamos a recorrer.

90

estar 5

Va a ser un viaje de diez días, durante el cual, no solamente vamos a recorrer los lugares que aparecen mencionados en esta famosa obra de la literatura española, sino que además, vamos a {*estar*} en contacto con personas, con documentos vivos que nos cuenten cómo es la vida, a qué se dedican, qué inquietudes tienen las personas de los pueblos que vamos a recorrer.

置換文字の<_..._>で囲まれた部分が検索文字列になりますが、検索の処理においては、

後続するenが環境条件となります。

Sub ▼鍵語外置()

追加文字列$ = vbTab & "段落番号" & vbTab & "段落" & vbCr: ●高速文字列作成

For Each 段落v In 段落配列$

For i = 0 To UBound(検索$) If 検索$(i) = "" Then Exit For

段落v = 正規表現置換$(段落v, 検索$(i), 置換$(i), False) obj正規表現.Pattern = "¥{¥*.+?¥*¥}"

Set 一致コレクション v = obj正規表現.Execute(段落v) 段落番号& = 段落番号& + 1

For Each 一致v In 一致コレクション v

追加文字列$ = 括弧除去$(一致v) & vbTab _

& 段落番号& & vbTab & 括弧除去$(Left$(段落v, 一致v.FirstIndex)) _ & 一致v _

& 括弧除去$(Mid$(段落v, 一致v.FirstIndex + Len(一致v) + 1)) & vbCr ●高速文字列作成

Next

段落v = 括弧除去$(段落v) Next

Next

If Mid$(出力文字列$, 出力文字数& - 2, 2) = "段落" _ Then MsgBox "出力がありません。": Exit Sub

91

objクリップボード.SetText Left$(出力文字列$, 出力文字数&) objクリップボード.PutInClipboard

With objエクセル

.WorkBooks.Add 'ワークブックを追加 .Columns(3).ColumnWidth = 80

.ActiveSheet.Paste 'データペースト .Columns(1).ColumnWidth = 30 '鍵語の幅 .Cells(1, 1) = txt検索置換式

.Columns(3).WrapText = True '折り返し .Columns(1).AutoFit '列幅を自動調整 .Columns(2).AutoFit '列幅を自動調整

.Range("A2").Select: .ActiveWindow.FreezePanes = True 'ウィンドー枠固定

If chkソート _

Then .ActiveSheet.UsedRange.Sort Header:=True, Key1:=.Cells(2, 1) .Visible = True 'エクセルを表示

End With End Sub

個々の段落ごとにマッチした鍵語、段落番号、段落を出力します。段落は前文脈、鍵 語、後文脈にそれぞれ必要な処理をしてから連続させます。最後にクリップボードを 介してエクセルシートに出力します。

関連したドキュメント