東京外大2016

Japan Studies 2:日本語コーパスの活用

  • 秋学期・木曜4限
  • ogiso@ogiso.net ←@を@に直してください

アクティブラーニングについて

(今後、これ以外のイベントも紹介します)

レポートについて

  • BCCWJとこの授業で紹介した手法を活用した日本語研究
  • 〆切:1月26日(木)
  • 枚数:A4用紙で4枚以上〜20枚以下
  • メールで提出

2017/01/19 質問・レポート課題の調査(II)

  • レポート作成を念頭に、コーパスを使い検索結果を活用することに関する質問に答えます。
  • ミニコーパスの作成に関する質問にもお答えします。
  • レポート課題のための調査を進めつつ積極的に質問してください。

2017/01/12 質問・レポート課題の調査(I)

  • レポート作成を念頭に、コーパスを使い検索結果を活用することに関する質問に答えます。
  • レポート課題のための調査を進めつつ積極的に質問してください。

2017/01/05 ミニコーパスを作る

前回補足(ひまわりによる既存のデータの活用)

  • インポート機能で自動生成したXMLを修正する
    • 属性の付与
    • 設定ファイルの修正
    • 再インデックス

形態素解析の利用

インストールと利用のデモ

テキストの性質に関する古典的な指標とその出し方

形態素解析結果を利用するツール

  • デモ

テキスト処理のレベルとツール

処理形態素解析(短単位)→(長単位解析)→文節係り受け解析→解析結果の管理・利用
BCCWJの場合MeCab(解析器)+UniDic(辞書)→Comainu→(大納言→)中納言
一般向けツールMeCabなど(解析器)+UniDicなど(辞書)
Web茶まめ→
(Comainu)→(CaboCha)→Chaki.net

2016/12/22 演習発表

  • 宿題
    • ミニコーパスの素材を用意する

自分用のミニコーパスを作る

(テキストデータは別途用意するのを前提として)

  • 日本語コーパスのタグ付けのレベル
    テキストのレベルツール必要な技術
    プレーンテキストテキストエディタgrepと正規表現
    構造化テキストひまわり→ ExcelXML・マークアップの基礎,ピボットテーブル
    形態素解析済みテキストUniDic+MeCab→中納言・ChaKi形態素解析の知識,ChaKiの使い方
  1. プレーンテキスト:テキストエディタ(grepと正規表現) →今回
  2. 構造化テキスト(旧「太陽コーパス」など):XMLと「ひまわり」  →今回
  3. 形態素解析済みテキスト(BCCWJ,CHJなど):「中納言」相当←自分で作るには、Web茶まめ・ChaKi.net

プレーンテキストのミニコーパス

テキストエディタと正規表現

授業用サクラエディタのダウンロード

(正規表現ライブラリ同梱)

サンプルテキスト

正規表現

  • 正規表現 >用語
    • 文字を表すための特殊な文字(メタ文字)を使って文字列のパターンを表現する
    • エディタでは置換・検索・grepで利用できる (エディタ以外にもさまざまなアプリケ−ションやコンピュータ言語で利用されている)
    • 特殊な文字(メタ文字)はすべて半角

正規表現に関する参考資料

構造化テキストのミニコーパス

XMLとひまわり

  • XML
    • 独自のタグが定義できる汎用のマークアップ言語
    • 多くのコーパスがXMLで記述されている。
      • 「現代日本語書き言葉均衡コーパス」(BCCWJ)も「日本語歴史コーパス」もソースはXML cf.BCCWJのタグセット

ひまわり

  • 全文検索システム「ひまわり」
  • ただのテキストファイル(プレーンテキスト)ではなく、XML形式にして、インデックスを付けた専用のデータを利用
  • 基本的に文字列検索のみ(携帯論情報付きデータの検索にはあまり向かない)

全文検索システム「ひまわり」について

テキストデータを「ひまわり」で利用できるようにする

2016/12/15 演習発表

  • 発表2件

(ミニコーパス作成に向けて)

  • Web茶まめ
  • 語種比率
  • 延べ語数異なり語数比率
    • Type Token Raio
    • ピボットテーブルでの計算

2016/12/08 演習発表

  • 特徴語抽出
    • 対数尤度比 Log Likelihood Ratio
    • Excel用の関数(VBA)
      Public Function LogLikelihood(ByVal target As Long, comparison As Long, targetTotal As Long, comparisonTotal As Long) As Variant
          a = target
          b = comparison
          c = targetTotal - a
          d = comparisonTotal - b
             
          If a = 0 Then aloga = 0 Else aloga = a * Log(a)
          If b = 0 Then blogb = 0 Else blogb = b * Log(b)
          
          LogLikelihood = 2 * (aloga + blogb + c * Log(c) + d * Log(d) - (a + b) * Log(a + b) - (a + c) * Log(a + c) - (b + d) * Log(b + d) - (c + d) * Log(c + d) + (a + b + c + d) * Log(a + b + c + d))
          
          If target / targetTotal < comparison / comparisonTotal Then LogLikelihood = LogLikelihood * (-1)
         
      End Function

2016/12/01 演習発表

vlookup関数

自分で作ったミニデータベースを検索して値を取り出すようなことができる関数

コロケーション強度

単に頻度をみるのではなく、2つの語が本当に共起しやすいのかを図る指標

2016/11/24 (休み)外語祭

2016/11/17 演習発表

(アルバイト募集)

  • じんもんこん2016 受付・会場係等
    • 12/9(金)午後、10(土)、11(日)
    • 時給1000円、交通費・弁当支給

(前回補足コメント)

  • BCCWJデータの年代の偏りについて
    • 「語数について」ピボット集計
    • 経年変化はレジスターを限定しないとできない。
    • 初出探しに使うことはほぼできない。

クロス集計表からのコレスポンデンス分析

  • 「やはり」「やっぱり」「やっぱ」とレジスター
yahari<-matrix(c(
1,2,0,9,4,0,
20,12,1,30,23,0,
31,54,13,17,31,2
)
,3,6,byrow = T)
colnames(yahari)<-c("雑誌","書籍","新聞","ブログ","知恵袋","白書")
rownames(yahari)<-c("ヤッパ","ヤッパリ","ヤハリ")

#MASSパッケージを読み込む 
library(MASS)
(yahari.ca<-corresp(yahari,nf=3))
biplot(yahari.ca)

#固有値
固有値<-yahari.ca$cor^2 
round(固有値,3)
#累積寄与率
round(100*固有値/sum(固有値),2)

参考リンク:Rと対応分析

  • 玉葱の表記
    negi<-matrix(c(
    42,93,2,129,90,7,0,1,12,23,47,0,
    33,36,0,65,87,6,4,36,11,0,61,6,
    5,30,5,33,9,1,0,1,8,0,2,0,
    97,336,0,215,225,39,0,3,15,0,92,4,
    3,23,0,31,86,0,3,0,0,0,28,2
    ) ,5,12,byrow = T)
    colnames(negi)<-c("P雑誌","P書籍","P新聞","L書籍","ブログ","ベストセラー","韻文","教科書","広報誌","国会会議録","知恵袋","白書")
    rownames(negi)<-c("タマネギ","たまねぎ","玉ネギ","玉ねぎ","玉葱")
    
    library(MASS)
    (negi.ca<-corresp(negi,nf=5))
    biplot(negi.ca)
    
    固有値<-negi.ca$cor 2 
    round(固有値,3)
    #累積寄与率
    round(100*固有値/sum(固有値),2)

2016/11/10 休講

  • シカゴに行ってきます。

2016/10/27 演習発表

  • 多変量解析
    • 主成分分析
    • 対応分析=コレスポンデンス分析

バ行ヴァ行

キー: (語彙素="バイオリン" OR 語彙素="バイオレット" OR 語彙素="バイタリティ" OR
語彙素="バイキング" OR 語彙素="バカンス" OR 語彙素="バチカン" OR 語彙素="バニラ" OR
語彙素="バラエティ" OR 語彙素="バリエーション" OR 語彙素="バリュー" OR
語彙素="ビーナス" OR 語彙素="ビオラ" OR 語彙素="ビザ" OR 語彙素="ベール" OR 
語彙素="ベテラン" OR 語彙素="ベトナム" OR 語彙素="バージン"); 

2016/10/20 演習発表

2016/10/13 Rを使ってみる / 研究例紹介

  • 中納言でBCCWJコアの語彙素「矢張り」を検索、語形別に集計
雑誌書籍新聞ブログ知恵袋白書
ヤッパ1294
ヤッパリ201213023
ヤハリ31541317312

独立性の検定(χ二乗検定)

  • ブログと知恵袋で「やはり」「やっぱり」「やっぱ」の使われ方に差はあるか
data <- matrix(c( 9,4,30,23,17,31), ncol=2, byrow=T)

chisq.test(data)

帰無仮説(H0):二つのレジスターと「やはり」類の使用頻度には差がない

検定の結果、p<0.05であれば0.05(= 5%)水準でH0は棄却される =二つのレジスターに差がある(レジスターと関係がないのに偶然こうなる可能性は5%以下)

クラスター分析

  • 「やはり」「やっぱり」「やっぱ」の使用から見たレジスター間の距離(どのレジスター同士が似ているか)
yahari<-matrix(c(
1,2,0,9,4,0,
20,12,1,30,23,0,
31,54,13,17,31,2
)
,3,6,byrow = T)
colnames(yahari)<-c("雑誌","書籍","新聞","ブログ","知恵袋","白書")
rownames(yahari)<-c("ヤッパ","ヤッパリ","ヤハリ")

yahari <- t(yahari) #行と列を入れ替え
yahari.d<-dist(yahari) #距離の計算
yahari.d

result <- hclust(yahari.d, method="ward.D") #word法でクラスター分析
plot(result,hang=-1) #デンドログラムを描く

研究紹介

  • 「『現代日本語書き言葉均衡コーパス』における可能表現のバリエーション」より

2016/10/06 イントロダクション

シラバスより

講義・演習の別
演習
授業の目標
日本語コーパスを研究に利用することができるようになるためのやや高度な知識と技術を身につける。
授業の概要
日本語コーパスを活用するための技術、統計的指標や手法について講義する。参加者は実際にコーパスとこれらの技術を利用した調査研究と発表を行う。
授業の計画
実際にコーパスを利用する演習発表をとおして、コロケーションや特徴語抽出のための指標、クラスタリングや主成分分析などの統計的手法、関係データベースを利用したデータの処理、ミニコーパスを自作する方法など、コーパスを研究に活用するための方法について学ぶ。 最初に講義形式でコーパスの利用法を説明した後は、毎回参加者による演習発表形式で授業を行う。
成績の評価
授業態度・期末レポート等を総合して評価する。
事前学習等
担当教員の前期の授業(Japan Studies 1)を履修するなどして日本語コーパスの基本的な利用方法を身につけておくこと。

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS