R_Baayen
Baayen のAnalyzing Linguistic Data についての私的メモ
_ Baayen書評草稿
ある学会から依頼されて書いたもの.ただし完成前に,非会員なのであれこれ手続きをしてくれと事務局が言ってきたので面倒になって中断してしまった中途半端な Review.
_ 2008 11 24 以降のメモ
- テキストに表れるデータなんだが,説明が少なく,またlanguageRパッケージのヘルプも不十分なので,推測するのに苦労する.例えばdative データの AccessOfRec? 変数には水準が三つあるのだが,newとgivenはともかく,accesibleてのは何だったか? 思い出さないのでBresnan, J., Cueni, A., Nikitina, T. and Baayen, R. H. (2007) Predicting the dative alternation, in Bouma, G. and Kraemer, I. and Zwarts, J. (eds.), _Cognitive Foundations of Interpretation_, Royal Netherlands Academy of Sciences, 33 pages, in press. を読むしかないか.
_ Baayen と言えば,語彙成長シミュレーションだと思われるので.
_ 以下は誤植あるいは誤解と思われる箇所.
ただし,草稿の段階なので,刊行された段階で修正されていると思われる.
- p.84
- ver.transp <- log(ver$...); ver.opaque <- log(ver$...)
- p.132
- splom(data.frame(affixes.pr$x[,1:3]),
- p.150
- ClesS と Ient との相関係数が有意とあるが,Cels と Vf の間違いではないか?
- p.155
- print.diana 関数に col = c("black","white") は意味ないのではないか?
- p.162
- accessibility of theme のカテゴリは given ではなく new.
- p.172
- spanish.manova <- manova(cbind(PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8) ~ spanishMeta$Author, data = spanish.x)
spanich データへの主成分分析の結果から,さらに判別分析を行うのに,CV = TRUE は使わないという節の理由が良く分からないのだが,何か見落としているだろうか?解決.主成分分析そのものを leave-one-out してから,その結果を使って lda をしろということ.
- p.177
- cbind(c(153, 342 - 153), c(202, 342 - 202))の間違いでは?
- p.184
- without including a main effect for meanFamiliarity^2 の間違では?
- p.213
- 下から5行目の 0.003 は 0.002 と思われる.
- p.229
Irregular verbs also tends to be more frequent than regular verbs, and it is reasonable to assume that this high frequnecy protects irregular verbs through time against regularization.
- p.243
- lines(local.subset$year, local.subset$predict, lty = 3)
- lines(local.subset$year, local.subset$predictA, lty = 3)
- p.255
- plot(alice.spc, lnre.spc(alice.lnre.$&color(red){gigp}, 25942))
- p.264
- lexdec データの初出は2章 p. 26.
- p.270
- pvals.fnc(lexdec3.lmer) で良い.$fitted は不要.
- p.274
- ranefs <- ranef(lexdec3.lmerD)
- p.275
- plot(ranefs$Subject)
_ Herdan の C
金先生より,languageRの関数growth.fnc()の出力はおかしいとうかがい,私も調べてみた.
languageR パッケージの growth.fnc () 関数の出力で,Herdan の C の計算方法は logV(N)/logN ではないよう.
data(alice) alice.growth <- growth.fnc(alice) alice.growth Chunk Tokens Types ... Herdan 1 1 646 269 0.7392036 log(269)/log(646) [1] 0.864609
そこでlanguageR パッケージのgrowth.fnc()を見ると herdan.fnc() を呼び出している.中を調べてみると,タイプ数の対数を最小二乗法を使って推定している. すなわち Chunk1の計算では,Chunk1までのトークン数1:646 の区間を,さらに指定のチャンク数を使って,floor(646/40) =16 間隔で区切り,この細かい区間でのタイプ数を数えている.そして,これらのベクトルに lm を適用している.
types <- c(16, 29, 40, 48, 56, 66, 77, 86, 94, 101, 109, 116, 124 ,130, 134, 140, 147, 150, 155, 161, 164, 166, 173, 177, 184, 191, 198, 203, 208, 210, 218, 224 ,229, 238, 243, 249, 255, 258, 264, 266) tokens <- c(16, 32 ,48 ,64, 80 ,96 ,112, 128 ,144, 160, 176, 192, 208, 224, 240, 256, 272, 288 ,304, 320 ,336, 352, 368, 384, 400 ,416, 432 ,448 ,464, 480, 496 ,512, 528, 544, 560, 576, 592, 608, 624, 640) coef(lm(log(types)~log(tokens)))[2]
端数を切り落としいる cumsum(rep(floor(length(text[1:chunks[i]])/40), 40))ので growth.fnc() 関数の出力に
Chunk Tokens Types 1 1 646 269
とあっても,Chunk1の計算に使っているのは,640 Tokensまでの情報.