日本語テキスト処理のためのPC基礎講座

~言語処理やプログラミング以前の基礎知識


2018/07/10 関係データベースとSQL(2)

BCCWJデータ

use chunagon_bccwj

関数のいろいろ

組み込み関数

ユーザー定義関数

select top 100 dbo.fn前文脈(サンプルID,出現書字形開始位置,20),キー,dbo.fn後文脈(サンプルID,出現書字形開始位置,20) from 短単位
select top 100 サンプルID,dbo.fn前文脈(サンプルID,出現書字形開始位置,20),キー,dbo.fn後文脈(サンプルID,出現書字形開始位置,20),語彙素,語彙素読み,品詞 from 短単位
where 語彙素 like '鰻'

コーパスデータを使った実習

補足

(復習)表の結合

 select 作品名, count(*) as 総語数
 from 短単位 as S inner join 書誌情報 as B on S.サンプルID=B.サンプルID
 where S.サブコーパス名 like '平安'
 group by 作品名

CASE式

 select 作品名, count(*) as 総語数,sum(CASE WHEN 本文種別='歌' THEN 1 ELSE 0 END) as 歌語数
 from 短単位 as S inner join 書誌情報 as B on S.サンプルID=B.サンプルID
 where S.サブコーパス名 like '平安'
 group by 作品名

辞書の階層化された見出し表を扱う

use unidicSQL

コーパスと辞書を繋ぐ

select L.語彙素,SUW.レジスター,count(SUW.キー) from 短単位語彙素 as L inner join chunagon_bccwj.dbo.短単位 as SUW on L.語彙素ID=SUW.語彙素ID
where L.語彙素 like '夏%' and L.語彙素読み like 'ナツ%'
group by L.語彙素, SUW.レジスター

表の結合(復習)

連続する語の取り出し

サブクエリ

括弧でくくったSELECT文に名前を付けて、あたかもテーブルであるかのように扱える

一時テーブルの作成

#で始まるテーブル名は、DB切断後削除される一時テーブルとなる。現在の権限でも一時テーブルは作成できる。

select * into 鰻テーブル from 短単位 where 語彙素='鰻'
create table #ogiso_tmp ( ID int ,調査語彙素 varchar(10) ,調査語彙素読み varchar(10) )

受講者アンケート

2018/07/03 関係データベースとSQL(1)

関係データベース(リレーショナルデータベース:RDB)

準備

用語

テーブル
列名1列名2列名3
レコード1
レコード2

SQL

データベース問い合わせ言語

SELECT文

とりあえずこれだけ!覚える

集計

SQLの書式など(SQL Server)

表の結合

2018/06/26 コマンドラインツール

GUIとCUI

Bash on Ubuntu on Windows

ディレクトリとファイル操作

※括弧内はwindowsの同等コマンド。オプションや挙動は異なる

覚えておくべきこと

練習

  1. 上記のデータを使って国旗のファイル名を日本語名に変更したものを作成しなさい
  2. 「FIFA2018WC」ディレクトリを作成してワールドカップ出場国の国旗だけをコピーしなさい

主なテキスト処理ツール(Linux)

入出力とパイプ

バッチ処理

XMLツール

apt-get でインストールできる

sudo apt-get install libxml2

形態素解析(mecab)

mecab file | less
mecab file > 保存先ファイル
mecab -d unidicディレクトリ file | less

※前回補足:サクラエディタでの複数行にまたがる置換

→できない

2018/05/29 XML

マークアップ言語とXML

XMLの基本

<, >, &
曽	🍺

(演習)テキストファイルをXML文書にしてみる

XPath

XSLT

XMLの文書型定義と検証

Oxygen

2018/05/08 Excel

基本

ピボットテーブル

文字列関数

VLOOKUP

ネ申Excel問題

2018/04/17 テキストエディタと正規表現

準備

サンプルデータ

下記のデータ(青空文庫の夏目漱石作品を整形したもの)をダウンロードし、デスクトップに展開(解凍)してください。「なつめそうせき(夏目漱石)」というフォルダができます。

エディタ

正規表現対応のテキストエディタがない人は下記からサクラエディタ(V2)をインストールしてください。

なぜテキストデータか

テキストエディタの基本

利用例

  1. 動詞「日本語」の用例をgrep
  2. grep結果を置換して表形式にする

正規表現

基本的な正規表現

タグ付き正規表現

走[らりるれろ] でgrepした結果を置換するにはどうしたらいいか

最長一致の原則(greedy matching)

課題

(検索・置換)

  1. 夏目漱石『坊ちゃん』における「山嵐」の初出行は何行目か。
  2. 夏目漱石『坊ちゃん』における「赤シャツ」の用例数は何例か。
  3. サンプルデータ(夏目漱石の青空文庫全作品)における「言葉」の用例数は何例か。

(正規表現)

  1. 次の語を検索する場合に用いる検索文字列をできるだけ簡潔な正規表現で記しなさい。
    1. 形容詞「暗い」(ただし、漢字「暗」で表記されるもの)
    2. 動詞「蹴る」(漢字「蹴」またはひらがなで表記されるもの)
    3. 「言葉」が2回出てくる行
    4. 「「」で始まり、「」」が現れない行
    5. 「○る○る」(「ぐるぐる」など)
  2. 次の問いに答えよ。
    1. サンプルデータ(夏目漱石の青空文庫全作品)における動詞「笑う」および名詞「笑い」の用例数は計何例か
    2. サンプルデータ(夏目漱石の青空文庫全作品)における形容詞「赤い」の用例数は何例か

(正規表現によるテキスト整形)

次のデータ(「こころ」Wordファイル)をダウンロードして下記の課題を行え。

ただし、データ中に現れる記号は下記のようになっている(青空文庫形式)。

《》:ルビ
(例)私《わたくし》は

|:ルビの付く文字列の始まりを特定する記号
(例)先生一人|麦藁帽《むぎわらぼう》を 

[#]:入力者注 主に外字の説明や、傍点の位置の指定
   (数字は、JIS X 0213の面区点番号、または底本のページと行数)
(例)※[#「てへん+劣」、第3水準1-84-77]
  1. 注と振り仮名を削除し1文1行となる形式のテキストファイルを作成せよ。
  2. 注を削除し、振り仮名を本文と入れ換えたテキストファイルを作成せよ。(例:「私《わたくし》は」→「わたくしは」)
  3. 1.で作成したデータから、次のような「それぎり」「それきり」のKWIC用例集のExcelデータを作成せよ。
    kokoro.txt225先生もそれぎり何ともいわなくなった。
    kokoro.txt244私もその話はそれぎりにして切り上げた。

見た目と論理構造の話

どっちが「きれいなデータ」だろうか?

太陽コーパス              近代語    書き言葉
日本語話し言葉コーパス     現代語        話し言葉
現代日本語書き言葉均衡コーパス  現代語    書き言葉
日本語歴史コーパス       古代~近代語 書き言葉
太陽コーパス	近代語	書き言葉
日本語話し言葉コーパス	現代語	話し言葉
現代日本語書き言葉均衡コーパス	現代語	書き言葉
日本語歴史コーパス	古代~近代語	書き言葉

ちゃんとしたデータを作るために


関連キーワード・リンク集


*1 Wikipediaのことではない。Wikipediaがこの形式を採用している
*2 なぜかXPath2.0を選ばないと検索結果が返らなかった

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-07-10 (火) 18:11:30