hellog〜英語史ブログ     ChangeLog 最新    

cgi - hellog〜英語史ブログ

最終更新時間: 2012-05-22 15:54

2012-03-19 Mon

#1057. LAEME Index of Sources の検索ツール Ver. 2 [laeme][web_service][cgi][dialect]

 [2011-11-25-1]の記事「#942. LAEME Index of Sources の検索ツール」で SQL による検索用 CGI を公開した.最近,研究で LAEME を本格的に使う機会があり,検索用のデータベースに少しく情報を追加した.そこで,上位互換となる Ver. 2 を作ったので,公開する.
 追加した情報は,PERIOD, COUNTY, DIALECT の3フィールド.PERIOD は,もともとの IOS で与えられていたテキストの DATE をもとに,半世紀区切りで大雑把に区分しなおしたもの.C13b2--C14a1 など区分をまたがる場合には,早いほうをとって C13b と読み替えた."ca. 1300" なども同様に,早いほうへ倒して C13b とした.DATE において C13, C14 など半世紀で区切れない年代が与えられている場合には,C13, C14 のようにそのまま残した.
 COUNTY は,LOC に与えられていた情報をもとに,3文字の略字表記で示した.DIALECT は,所属する州 (county) をもとに大雑把に N (Northern), NWM (North-West Midland), NEM (North-East Midland), SEM (South-East Midland), SWM (South-West Midland), SW (Southwestern), SE (Southeastern) の7方言に区分したものである.方言線は州境と一致しているわけではないし,方言線そのものの選定も,「#130. 中英語の方言区分」 ([2009-09-04-1]) や「#1030. England の現代英語方言区分 (2)」 ([2012-02-21-1]) で見たように,難しい.したがって,今回の DIALECT の付与も,[2009-09-04-1]の中英語方言地図に大雑把に照らしての仮のものである.参考までに,COUNTY と DIALECT の対応表はこちら

    


 使用法は[2011-11-25-1]の旧版と同じで,テーブル名は "ios" (for "Index of Sources") で固定.フィールドは,全部で23フィールド (ID, MS, TEXT_ID, FILE, DATE, PERIOD, TEXT, GRID, LOC, COUNTY, DIALECT, COMMENT, SAMPLING, TAGGED_WORDS, PLACE_NAMES, PERSONAL_NAMES, WORDS, SCRIPT, OTHER, STATUS, BIBLIO, CROSS_REF, URL) .select 文のみ有効.以下,典型的な検索式を挙げておく.

# 各 PERIOD に振り分けられたテキストの数
select distinct PERIOD, count(*) from ios group by PERIOD;

# 各 COUNTY に振り分けられたテキストの数
select distinct COUNTY, count(*) from ios group by COUNTY;

# 各 DIALECT に振り分けられたテキストの数
select distinct DIALECT, count(*) from ios group by DIALECT;

# DIALECT/PERIOD ごとに,所属するテキストの多い順にリストアップ
select distinct DIALECT, PERIOD, count(*) from ios group by DIALECT, PERIOD order by count(*) desc;

# Worcestershire のテキストを取り出し,PERIOD 順に諸情報を羅列
select TEXT_ID, FILE, MS, COUNTY, PERIOD, TAGGED_WORDS from ios where COUNTY = 'WOR' order by PERIOD;

  *  

[ 固定リンク | 印刷用ページ | コメント ]

2011-12-09 Fri

#956. COCA N-Gram Search [cgi][web_service][coca][corpus][collocation][n-gram]

 ##953,954,955 の記事で,最近公開された COCA ( Corpus of Contemporary American English )n-gram データベースを利用してみた.COCA に現われる 2-grams, 3-grams, 4-grams, 5-grams について,それぞれ最頻約100万の表現を羅列したデータベースで,手元においておけば,工夫次第で COCA のインターフェースだけでは検索しにくい共起表現の検索が可能となる.
 ただし,各 n-gram のデータベースは,数十メガバイトの容量のテキストファイルで,直接検索するには重たい.そこで,SQLite データベースへと格納し,SQL 文による検索が可能となるように検索プログラムを組んだ.以下は,検索結果の最初の10行だけを出力する CGI である.

    


 以下,使用法の説明.テーブル名は n-gram の "n" の値に応じて,"two", "three", "four", "five" とした.ちなみに,1-grams のデータベース(事実上,COCA に3回以上現われる語の頻度つきリスト)も付随しており,こちらもテーブル名 "one" としてアクセス可能にした.フィールドは,全テーブルに共通して "freq" (頻度)があてがわれているほか,"n" の値に応じて,"word1" から "word5" までの語形 (case-sensitive) と,"pos1" から "pos5" までの COCA の語類標示タグが設定されている.select 文のみ有効.以下に,典型的な検索式を例として載せておく.

# 1-grams で,前置詞を頻度順に取り出す(ただし,case-sensitive なので再集計が必要)
select * from one where pos1 like "i%" order by freq desc;

# 2-grams で,ハンサムなものを頻度順に取り出す
select * from two where word1 = "handsome" and pos1 = "jj" and pos2 like "nn_" order by freq desc;

# 2-grams で,"absolutely (adj.)" で強調される形容詞を頻度順に取り出す([2011-03-12-1]の記事「#684. semantic prosody と文法カテゴリー」を参照)
select * from two where word1 = "absolutely" and pos2 = "jj" order by freq desc;

# 3-grams で,高頻度の as ... as 表現を取り出す
select * from three where word1 = "as" and word3 = "as" order by freq desc;

# 4-grams で,高頻度の from ... to ... 表現を取り出す
select * from four where word1 = "from" and pos1 = "ii" and word3 = "to" and pos3 = "ii" order by freq desc;

# 5-grams で,死因を探る; "die of" と "die from" の揺れを観察する
select * from five where word1 in ("die", "dies", "died", "dying") and pos1 like "vv%" and word2 in ("of", "from") and pos2 like "i%" order by word3;


 n-gram データベースを最大限に使いこなすには,このようにして得られた検索結果をもとにさらに条件を絞り込んだり,複数の検索結果を付き合わせるなどの工夫が必要だろう.

[ 固定リンク | 印刷用ページ | コメント ]

2011-12-05 Mon

#952. Etymology Search [etymology][dictionary][cgi][web_service][metathesis][blend][dissimilation]

search mode: non-regex regex
search range: word-form definition (in one-line regex only)


 [2010-04-03-1]英語語源情報ぬきだしCGIの上位互換である,[2010-04-23-1]英語語源情報ぬきだしCGI(一括版)のさらに上位互換となる,多機能版「Etymology Search」を作成した.情報源は引き続き Online Etymology Dictionary
 今回の版で新しいのは,通常の語形による検索に加えて正規表現による検索も可能にしたこと,見出し語とは別に定義(語源解説)内の検索を可能にしたことだ.
 初期設定のとおりに "non-regex" かつ "word-form" として検索すると,通常の見出し語検索となる.カンマや改行で区切られた複数の単語を指定すれば,対応する語源記述が得られる.
 search mode として "regex" を指定すると,perl5 相当の正規表現(改行区切りで複数指定可)を用いた検索が可能となる.正規表現を駆使すれば,語形の一部のみにマッチさせて,多数の語を拾い出すことも可能だ.
 さらに,search range に "definition (in one-line regex)" を指定すれば,定義(語源解説)内の文字列を対象として検索できる.この機能では,search mode の値にかかわらず,自動的に正規表現検索(改行区切りにより複数の正規表現を指定することは不可)となるので注意."(?i)" を正規表現の先頭に付加すれば,case-intensive の機能となる.例えば,次のような検索例は有用かもしれない.

 ・ 音位転換を経た(かもしれない)語を一覧
   (?i)\bmetathesis
 ・ かばん語(かもしれない)例を一覧
   (?i)\bblend(s|ed|ing|ings)\b
 ・ 異化を経た(かもしれない)語を一覧
   (?i)\bdissimilat
 ・ 日本語からの借用語(かもしれない)語を一覧
   (?i)\bJapanese\b

[ 固定リンク | 印刷用ページ | コメント ]

2011-11-25 Fri

#942. LAEME Index of Sources の検索ツール [laeme][web_service][cgi]

 LAEME で Auxiliary Data Sets -> Index of Sources とメニューをたどると,LAEME が対象としているテキストソースのリスト (The LAEME Index of Sources) を,様々な角度から検索して取り出すことができる.LAEME のテキストデータベースを年代別,方言別,Grid Reference 別などの基準で分析したい場合に,適切なテキストの一覧を得られるので,LAEME 使いこなしのためには非常に重要な機能である.
 しかし,もう少し検索式に小回りを利かせられたり,一覧の出力がコンパクトに表形式で得られれば使い勝手がよいだろうと思っていた.そこで,Index of Sources を独自にデータベース化し,SQL を用いて検索可能にしてみた.LAEME の使用者で,かつSQLを扱える人以外には何も役に立たないのだが,せっかく作ったので公開.

    


 以下,使用法の説明.テーブル名は "ios" (for "Index of Sources") で固定.フィールドは,LAEME 本家の検索で対象となっている18のフィールドに加えて,整理番号としての "ID" と,テキスト情報の掲載されたオンラインページへの "URL" を加えた計20フィールド (ID, MS, TEXT_ID, FILE, DATE, TEXT, GRID, LOC, COMMENT, SAMPLING, TAGGED_WORDS, PLACE_NAMES, PERSONAL_NAMES, WORDS, SCRIPT, OTHER, STATUS, BIBLIO, CROSS_REF, URL) .select 文のみ有効.以下に,典型的な検索式を例として載せておく.

# Ancrene Wisse/Riwle のテキスト情報の取り出し
select TEXT_ID, MS, FILE, GRID, LOC, DATE, TEXT from ios where FILE like "%ar%t.tag" and TEXT like "%Ancrene%";

# Poema Morale のテキスト情報の取り出し
select TEXT_ID, MS, FILE, GRID, LOC, DATE, TEXT from ios where FILE like "%pm%t.tag" and TEXT like "%Poema%";

# Grid Reference の与えられているテキストの取り出し
select TEXT_ID, MS, FILE, GRID from ios where GRID != "000 000";

# DATE に "C13a" を含むテキストの取り出し
select TEXT_ID, DATE from ios where DATE like "%C13a%";

# 年代ごとに集計
select DATE, count(DATE) from ios group by DATE order by DATE;

# タグ付けされている語数をテキストごとに確認
select TEXT_ID, TAGGED_WORDS, PLACE_NAMES, PERSONAL_NAMES from ios;

# 全テキスト情報へのリンク集
select TEXT_ID, MS, FILE, URL from ios;

Referrer (Inside): [2012-03-19-1]

[ 固定リンク | 印刷用ページ | コメント ]

2011-08-21 Sun

#846. HelMapperUK --- hellog 仕様の英国地図作成 CGI [cgi][web_service][map][lalme][laeme][bre]

 中英語の方言を研究していると,LALME の Dot Map 風のイングランド地図を描けると便利だと思う機会がある.LALME の地図を用いるのであればコピーしたりスキャンしたりすればよいし,オンラインの LAEME であれば "Mapping" 機能から "Feature Maps" で特に注目すべき言語項目に関する地図はデジタル画像で得られる.後者では,"Create a Feature Map" なるユーザーによる地図作成機能もおいおい追加されるとのことで,中英語方言学のヴィジュアル化は今後も進展して行くと思われる.
 しかし,それでも様々な困難や不便はある.例えば,LAEME でも,自分の関心のある言語項目が LAEME 自体で扱われていなければ地図作成機能は役に立たないし(例えば,私の中英語名詞複数の研究では名詞の歴史的な文法性が重要だが,LAEME text database では性がタグ付けされていないのでフルには活用できなかった),LALME についてはそもそも地図がデジタル化されていず応用しにくい(地図のデジタル化,少なくともテキスト情報や座標情報のデジタル化が一刻も早く望まれる).
 それでも,手をこまねいて待っているわけには行かない.既存のツールと自分の関心は大概ずれているものであり,自ら研究環境を作る必要に迫られるのが常だからだ.中英語の方言地図に関する限り,LALMELAEME からテキストの方言付与情報さえ得られれば,自ら集めた言語項目に関するデータを地図上にプロットすることは十分に可能である.(需要は少ないと思われるが)その作業を少しでも簡便化するために,HelMapperUK なる CGI を作成してみた.英国のベースマップ上にデータポイントをプロットするという単機能に特化しており,凡例をつけるなどの付加機能はないが,ヴィジュアル化して概観をつかむという用途には十分と思われる.



 以下で使い方の説明をするが,その前に,まずこちらのデータファイルの内容を上のテキストボックスに上書きコピペして出力結果の確認をどうぞ.これは,拙著の複数形研究で分析した初期中英語テキストの分布で,赤丸が手作業で分析したもの,青四角が LAEME text database を援用して分析したもの,それぞれの形で小さいものはテキストの全体ではなく部分を分析したものを表わす.(実際,Hotta (55) の地図はおよそこのようにして描かれた.)

 では,使い方の説明(基本的に作者個人仕様のものを公開しているだけなのでインターフェースは洗練されていません,あしからず).テキストボックスにあらかじめ入力されているとおり,入力データは設定部 (Configuration) で始まる.以下が設定可能な変数.

 ・ 「map」変数には "England" か "UK" が入る.これで,出力される地図の範囲を決定.
 ・ 「scale」変数は,X方向とY方向への拡大率を指定.拡大なし (scale=1 1) だと,出力画像は 386 * 313 Pixels (England) ,529 * 557 Pixels (UK) の大きさ.
 ・ 「pattern + 数字」変数は,プロットに用いる記号を定義する.イコールの後にはスペース区切りで (1) 形 ("box", "circle", "cross", "diamond", "invertedtriangle", "plus", or "triangle") ,(2) その形を塗りつぶすか否か (ex. "fill" or "stroke") ,(3) 色 (ex. "aqua", "black", "blue", "cyan", "green", "lime", "magenta", "red"; 他の大抵の色名にも対応しているはずだが出力される画像に反映されない色もある) ,(4) 大きさ(線の長さや円の直径に相当する Pixels)の4項目の値を与える.パターンは好きなだけユーザー定義可能.

 その後にデータ部 (Data points) が続く.1行に1データポイントで,各行はタブ区切りで (1) X座標,(2) Y座標,(3) 上で定義されたパターン名のいずれか ("pattern1" など)の3項目の値を与える(実際にはパターン名は省略可能.その場合,自動的に "pattern1" が用いられる.).座標系については,LALMELAEME で採用されている Ordinance Survey National Grid Reference の3桁ずつの座標系 (ex. "372 244") ,あるいは一般の経度・緯度 (ex. -2.408752393 52.09322081) のいずれも可能(自動で判定される).
 空行,あるいは "#" で始まるコメント行はデータとして無視される.

 出力結果は GIF 形式の画像として表われる.別途,EPS 形式のベクター画像としてもダウンロードできるようにした(こちらのファイルをいじれるのであれば,各種の設定を含めた細かいチューニングが可能).
 英国ベースマップの作成には,CIA World DataBank IIDCW Map Interface for Europe のデータを参照した.

(後記 2011/08/31(Wed):[2011-08-31-1]の記事「LAEME text database のデータ点とテキスト規模」で,HelMapperUK で作製した地図の実例を示した.)

 ・ McIntosh, Angus, M. L. Samuels, and M. Benskin. A Linguistic Atlas of Late Mediaeval English. 4 vols. Aberdeen: Aberdeen UP, 1986.
 ・ Laing, Margaret and Roger Lass, eds. A Linguistic Atlas of Early Middle English, 1150--1325. http://www.lel.ed.ac.uk/ihd/laeme1/laeme1.html . Online. Edinburgh: U of Edinburgh, 2007.
 ・ Hotta, Ryuichi. The Development of the Nominal Plural Forms in Early Middle English. Hituzi Linguistics in English 10. Tokyo: Hituzi Syobo, 2009.

Referrer (Inside): [2011-08-31-1]

[ 固定リンク | 印刷用ページ | コメント ]

2011-05-16 Mon

#749. hel typist --- hellog 仕様の文字列変換 CGI [cgi][web_service][ipa]

 本ブログでは,古英語,中英語,現代フランス語の引用や,IPA国際音標文字」などの発音記号を入力する機会が多いのだが,量が多いと,特殊文字や特殊記号の打ち込みが患わしくなってくる.この際だからと思い,ASCII文字だけで入力できる記法を定義し,それを目的の文字・記号へ変換するツールを作成してみた.英語史の周辺で用いることの多い文字・記号だけを変換の対象にしたので,名付けて hel typist.仕様,入力例,記法一覧はこちら



 基本的な使い方だけ簡単に解説する.a#d#eling, t#e_od, g#iue, Vous vous e^tes leve' tre`s to^t . などと入力すると æðeling, þēod, ȝiue, Vous vous êtes levé très tôt. などへ変換されるという単純な置換ツールで,ほとんどの特殊記法が「アルファベット1文字+句読記号1〜2文字」で構成される.そこで使われている句読記号そのものを入力する場合には,スペース1文字を先行させることでエスケープする.
 また,// // あるいは [[ ]] で囲まれた部分は特別に IPA mode として解釈され,IPA の発音記号用の記法が有効になる.主として現代英語の標準的な音素を表わす記号が,それぞれASCIIの1文字に対応しており,例えば "[[f@'nEtIks]]" と入力するだけで [fəˈnɛtɪks] が得られる.
 記法はこれまで個人的に使っていたものが基礎となっているが,できる限り (1) 少ない打数で入力でき( þ などの HTML の実体参照より楽),(2) そのままでも何とか読める視認性を確保する(多少の暗記は必要だが t# で thorn とか,@ で schwa というのは容認可能と考える)記法を心がけた.
 コンピュータでは,Unicode など文字の国際化が進んでいるとはいえ,いまだにウェブ上やメール上ではASCIIが優勢だし,ASCIIのテキストファイルのポータビリティの高さは変わっていない.数学の世界では,数式や特殊記号を (La)TeX によるASCII文字のみで表わす記法が広く用いられており,分野内でのコミュニケーションに貢献していると聞いている.言語学の世界でも,あるいはより限定的に英語史関連の世界でも,このような慣習がもっと発達すればよいなと思うのだが.
 hel typist で定義されていない発音記号については,IPA入力ツールが便利.

[ 固定リンク | 印刷用ページ | コメント ]

2011-04-08 Fri

#711. Log-Likelihood Tester CGI, Ver. 2 [corpus][bnc][statistics][web_service][cgi][lltest]

 以下に,汎用の Log-Likelihood Tester, Ver. 2 を公開.(後に説明するように,入力データのフォーマットに不備がある場合や,モードが適切に選択されていない場合にはサーバーでエラーが生じる可能性があるので注意.)

each-line mode lump mode


 [2011-03-25-1]の記事で,コーパス研究でよく用いられる対数尤度検定 ( Log-Likelihood Test ) の計算機 Log-Likelihood Tester, Ver. 1 を公開した.Ver. 1 は,コーパスサイズを加味しながら2つのコーパスでのキーワード(群)の出現頻度を比べ,コーパス間の差が有意であるかどうかを検定するものだった.
 Log-Likelihood Test は上述の目的で用いることが多いと思い,Ver. 1 ではあえて機能を特化させたのだが,より一般的に複数行,複数列の分割表で与えられるデータに対応する対数尤度検定を行ないたい場合もある.例えば,昨日の記事[2011-04-07-1]で,現代英語における thoughalthough の出現傾向について BNC に基づいた調査を紹介したが,Text Domain ごとの頻度比率は,両語の間で統計的にどの程度一致している,あるいは一致していないとみなすことができるのだろうか.昨日のグラフから,although は学術散文に多く,though は創作散文に多いという傾向が一目瞭然だが,この直感的な「一目瞭然」は統計的にはどのように表現されるのだろうか.
 このような場合には,次のような頻度表(値は100万語当たりの出現頻度に標準化済み)を準備し,これをコピーして入力ボックスに貼り付ける."lump mode" にチェックを入れ替え,"Go!" する.(デフォルトは "each-line mode" で,これは Ver. 1 と同等のモード.)

    thoughalthough
Natural and pure sciences56.380.13
Applied science37.3668.31
World affairs45.8168.2
Social science48.9863.38
Commerce and finance46.1857.21
Arts74.0752.93
Leisure45.8549.46
Belief and thought70.7846.75
Imaginative prose80.226.37


 結果は,1行だけの表として出力される.thoughalthough を表わす2列の数値の並びが,統計的にどのくらい近似しているかを計算ししている.結論としては,両語の Text Domain ごとの頻度の並びの差は p < 0.0001 という非常に高いレベルで有意であり,両語の出現傾向は Text Domain によってほぼ確実に異なるといえる.
 入力ボックスに入れるデータの書式は,タブ区切りの分割表.表頭と表側はいずれも省略可.サンプルのように表頭と表側の両方を含める場合には,左上のセルは空白にしておく必要あり.
 "each-line mode" の機能は Ver. 1 と互換なので,入力形式もそちらの説明を参照.今回の Ver. 2 の "each-line mode" では,出力結果をシンプルにおさえてある(逆に,詳しい内部計算値を得たい場合には Ver. 1 のほうが有用).
 Log-Likelihood Test の概要については,[2011-03-24-1]の記事を参照.

[ 固定リンク | 印刷用ページ | コメント ]

2011-04-05 Tue

#708. Frequency Sorter CGI [corpus][bnc][statistics][web_service][cgi][lexicology][plural]

 何らかの基準で集めた英単語のリストを,一般的な頻度の順に並び替えたいことがある.例えば,[2011-03-22-1]で論じたように,頻度と不規則な振る舞いとの関係を調べたいときに,注目する語(群)の一般的な頻度を知る必要がある.この目的には,[2010-03-01-1]で紹介したような大規模な汎用コーパスに基づく頻度表が有用である.BNC lemma-pos list (122KB) や ANC word-tagset list (7.2MB) などで問題の語を一つひとつ検索し,頻度数や頻度順位を調べてゆけばよいが,語数が多い場合には面倒だ.そこで,上記2つの頻度表から,入力した語(群)の頻度と順位を取り出す CGI を作成した.
 改行でもスペースでもカンマでもよいのだが,区切られた単語リストを以下のボックスに入力し,"Frequency Sort Go!" をクリックする.出力結果を頻度順位の高い順にソートする場合には,"sort by rank?" をオンにする(デフォルトでオン.オフにすると,入力順に出力される).例えば,現代標準英語に残る純粋に i-mutation を示す複数形は以下の7語のみである(複合語,二重複数,[2011-04-01-1]で話題にした sister(e)n は除く).これをコピーしてボックスに入力する.

foot, goose, louse, man, mouse, tooth, woman


     sort by rank?


 まず,BNC lemma-pos list による出力だが,この頻度表は約1億語の BNC 全体から,頻度にして800回以上現われる,上位6318位までの見出し語 ( lemma ) を収録している.したがって,それよりも頻度の下回る goose, louse については空欄となっている.頻度と不規則性の相関関係を考える際に参考になるだろう.
 次に,ANC word-tagset list による出力が続くが,この頻度表は BNC のものよりも規模が大きく,かつきめ細かい.合計22,164,985語を有する ANC (American National Corpus) から,Penn Treebank Tagset によってクラス付与された単位で語形が列挙されたリストである.タグセットが細かいので読みにくいし,自動タグ付与に起因するエラーも少なからず含まれているが,BNC のものよりも低頻度の語(形)を収録しているので,gooselouse の頻度情報も現われる.こちらの頻度表では WORD FORM ごとの頻度も確認できるため,直接 geeselice の頻度も確かめられる.
 当初 Frequency Sorter の用途として想定していたのは,上記の不規則複数形を示す語群などの頻度と順位の一括調査だったが,他にも用途はあるかもしれない.以下に,思いつきをメモ.

 ・ 1単語から使えるので,like のような多品詞語を入力して,品詞(あるいはタグ付与されたクラス)ごとの頻度を取り出せる.
 ・ ヒット数だけを確認したい場合には,いちいちコーパスを立ち上げる必要がない.
 ・ 論文やプレゼンで,ある目的で集めた数百語の単語リストの中から典型的な例,分かりやすい例を10個ほど示したいときなど,頻度の高い10個を選べばよい.例えば,[2011-03-29-1]で列挙した sur- を接頭辞にもつ単語リストのうち,例示に最もふさわしい10個を選ぶなどの目的に.頻度に基づいた順番のほうが,ランダム順やアルファベット順よりも親切なことが多いだろう(今後,本ブログ執筆に活用する予定).
 ・ 英米それぞれの代表的なコーパスに基づく頻度表を利用しているので,綴字や形態などの頻度の英米差を確認するのに使える.
 ・ (実際には lemmatisation が必要だが)適当な英文を放り込んでみて,妙に頻度の低い語が含まれていないかを調べる.頻度のツールなので,その他,教育・学習目的にいろいろと使えるかもしれない.

[ 固定リンク | 印刷用ページ | コメント ]

2011-03-25 Fri

#697. Log-Likelihood Tester CGI [corpus][bnc][statistics][web_service][cgi][lltest][sociolinguistics]

 昨日の記事[2011-03-24-1]で Log-Likelihood Test を話題にした.計算には Rayson 氏の Log-likelihood calculator を利用すればよいと述べたが,実際の検定の際に作業をもう少し自動化したいと思ったので CGI を自作してみた.細かい不備はあると思うが,とりあえず公開.



 上のテキストボックスに入力すべきデータは,タブ区切りの表の形式.1行目(省略可)はコーパス名,2行目以降はキーワードと観察頻度数(ヒット数),最終行は各コーパスのサイズ(語数)."#" で始まる行はコメント行として無視される.1列目のキーワード列は省略可.
 以下のテキストが入力サンプル.[2010-09-11-1]の記事で取り上げたテレビ広告で頻用される形容詞(比較級と最上級を含む)トップ20の頻度を,BNCweb の話し言葉サブコーパスから話者の性別に整理した表である.このままコピーして入力ボックスに貼り付けると,出力結果が確認できる.

    BNC_Male_SpeakersBNC_Female_Speakers
new14991
good408310
free17375
fresh84118
delicious1234
full210107
sure532328
clean197223
wonderful270258
special17782
crisp1016
fine347215
big470415
great20396
real16380
easy326157
bright113110
extra347203
safe18292
rich12045
#--------
corpus_size49499383290569


 男女間で有意差の特に大きいのは,対応行が赤で塗りつぶされた fresh, delicious, clean, wonderful, big で,いずれも期待度数に基づいて計算された Diff_Co ( "Difference Coefficient" 「差異係数」 ) がマイナスであることから,女性に特徴的な形容詞ということになる.big は意外な気がしたが,おもしろい結果である.一方,男性に偏って有意差を示すのは黄色で示した easyrich である.この結果はいろいろと読み込むことができそうだし,より詳細に調べることもできる.広告の形容詞という観点からは,話者ではなく聞き手の性別,年齢,社会階級などを軸に調査してもおもしろそうだ.いろいろと応用できる.

Referrer (Inside): [2011-04-08-1]

[ 固定リンク | 印刷用ページ | コメント ]

2011-01-05 Wed

#618. OED の検索結果から語彙を初出世紀ごとに分類する CGI [lexicology][oed][cgi][web_service]

 [2011-01-03-1], [2011-01-04-1]の記事で,OED 検索語彙を初出世紀ごとに分類して数え上げるという作業を行なった.よく考えてみると,このような作業はこれまでにも様々な調査・研究で繰り返し行なってきたことである.通時的語彙研究の基礎作業として今後も繰り返し行なう作業だと思われるので,OED の出力結果をもとに世紀ごとに数え上げるためのツールを作っておくことにした.名付けて "OED Century-by-Century Sorter".
 以下は使用方法の説明だが,The Oxford English Dictionary. 2nd ed. CD-ROM. Version 3.1. Oxford: OUP, 2004. での作業を前提としている.ヴァージョンが異なると動かないかもしれないのであしからず.

 (1) OED の ADVANCED SEARCH 等により,特定の条件に該当する語彙リストを出力させる.
 (2) 下のテキストボックスに,(1) の検索に適当につけた簡便なタイトルを,ピリオド1文字の後に続けて入力する.例えば ".alchemy" .これが見出し行となる.
 (3) テキストボックスで改行後に,(1) の出力結果を丸ごとコピーして貼り付ける.OED での出力結果が1画面に収まらない場合には次ページに進んで累積コピーし,テキストボックスに累積して貼り付けてゆく.年代順にソートされていなくても可.
 (4) 続けて別の検索を行なう場合には (1), (2), (3) の作業を繰り返す.テキストボックスには,貼り付けたテキストが累積されてゆくことになる.
 (5) Go をクリックすると,各検索結果について世紀ごとにカウントされた表が現われる.

 説明するよりも実例を見るのが早いので,こちらのテキストファイルを用意した.これは,OED の ADVANCED SEARCH で "language names" にそれぞれ Japanese, Chinese, Malay, Korean, Vietnamese を入れて検索した結果の語彙リストを上記の仕様で納めたもの.これらの言語からの借用語数を世紀ごとに把握するのが狙いである.もっとも,OED の検索機能の限界で,それなりの数の雑音が結果リストに混じっているのでその点には注意.この(ような仕様に則った)テキストをコピーして,以下のテキストボックスに貼り付け,Go をクリックすれば表が出力される.
 CGI スクリプトは大雑把な仕様なので,およその傾向を知るためのツールとして参考までに.特に以下の点に注意.

 ・ 初出年が "a1866", "c1629", "15..", "?c1400" などとなっている語はそれぞれ19, 17, 16, 14世紀へ振り分けられる
 ・ 初出年の記載のない語は一括して「0世紀」として振り分けられる

(後記 2011/04/24(Sun):OED Online の Timeline 表示では,初出世紀の頻度をグラフ化までしてくれるので,今回の CGI よりも使い勝手がよい.ただし,CD-ROM版の OED で作業するときや,設定に細かいチューニングが必要な場合のために自作した.)


Referrer (Inside): [2011-04-28-1] [2011-02-16-1]

[ 固定リンク | 印刷用ページ | コメント ]

2010-04-23 Fri

#361. 英語語源情報ぬきだしCGI(一括版) [etymology][dictionary][link][cgi][web_service]

 [2010-04-03-1]の語源情報抜きだしCGIの改良版.情報源は同じ Online Etymology Dictionary.今回の「一括版」は複数の語の語源を一覧したいときに便利.1行1語で入力された単語リストを用意し,それを以下のテキストエリアに入れて Go するだけ.1語だけでも使えるので,事実上,前回の版の上位互換.語数が多いと時間がかかるし,サーバに負担がかかるので注意.
 こうしてますます面倒くさがりになってゆく.


Referrer (Inside): [2011-12-05-1]

[ 固定リンク | 印刷用ページ | コメント ]

2010-04-03 Sat

#341. 英語語源情報ぬきだしCGI [etymology][dictionary][link][cgi][web_service]

 電子辞書はもちろんのこと,今ではWeb上で利用できる英語辞書も数え切れないほど出ており,紙の辞書を引く時代に育ったものとしては驚きの世の中になった.あまたあるWeb辞書のなかでも,個人的に使う機会の多い英英辞書が Dictionary.com である.複数の辞書を横断しての「串刺し検索」が可能である.また,簡便な語源情報が "Word Origin & History" という項で得られるので,これだけのために参照することもある.語源と例文が特に有用なので,私は毎日ランダムに単語情報を自動配信してくれるサービス "Word of the Day" にも登録している.
 もっとも,語源情報だけを参照したいのであれば,"Word Origin & History" の提供元である Online Etymology Dictionary を直接検索するのがはやい.(c) 2001-2010 Douglas Harper による英語語源のサイトで,簡単便利.これだけでも十分に簡単便利なのだが「辞書の雑多な情報はいらない,とりあえず語源情報だけを今すぐ欲しい,早く早く!」という(私だけの?)喫緊のニーズに対応し,一発スクリプトを作って使っている.特に初出年やどの言語から来ているかを即座に知りたいときに重宝している.
 そのスクリプトのCGI版を以下に作ってみた.単に Online Etymology Dictionary の検索結果から語源記述の部分をぬきだすだけのもの.電子検索が可能になると,どんどん面倒くさがりにになってゆく・・・.

  

Referrer (Inside): [2011-12-05-1] [2010-04-23-1]

[ 固定リンク | 印刷用ページ | コメント ]

Powered by WinChalow1.0rc4 based on chalow