「タスク本」ができるまで

大修館書店から,「タスク・ベースの英語指導ーTBLTの理解と実践」という本が出版されます。この本は,名城大学の松村昌紀先生が編著者で,私も一部の章を執筆させていただきました。

私のところにも,出版よりも一足早く著者見本が送られてきました。実際にこうして製本されたものを手に取ると,いよいよだなという気持ちになります。今日は,「出版記念」(?)ということで,この本に対する思い(出)を綴っておこうと思います。長くなりそうな予感がしていますがお付き合いください。

この本に関わらせていただくことができたのは,色々な縁があったからです。私が名古屋に来て間もないある日,この本の執筆者の1人である福田さんに,「名古屋でやってる研究会があるんだけど興味ない?」と言われました。私は自分が知らない人ばかりの場所に行くのがとても苦手なので,実はその時はあまり参加に前向きではありませんでした。しかし,1回だけでも行ってみようと思い福田さんに連れられて参加しました。実は,その研究会を主催していたのが,タスク本の編著者である名城大学の松村先生だったのです。

もちろん,「タスクを活用した英語授業のデザイン」や「英語教育を知る58の鍵」などの著書で知られる松村先生のお名前は存じ上げていましたが,お会いするのは初めてのことでした。

行ってみるとその研究会はとてもアットホームでありながら,知的にレベルの高い議論が繰り広げられ,大変刺激的な経験をすることができました。松村先生は,初めて参加した私のことも快く迎え入れてくれ,私は今ではその研究会に毎月参加する「常連メンバー」となっています。

私は,松村先生が2012年に出版された前述の「タスクを活用した英語授業のデザイン」を読んでとても感銘を受けた多くの方々のうちの1人です。修士論文の研究もタスクに関するものでしたから,Task-based Language Teaching (TBLT)に関連する書籍や論文も読んでいましたし,松村先生がお持ちの英語教育に対する「思い」や「理念」のようなものに共感することも多かったです。

私が研究会に初めて参加してから1年ほどが経った2015年の4月から,Michael LongのSecond Language Acquisition and Task-Based Language Teachingという本を研究会で読むことになりました。この本が出た,そしてこれを読んだということがなかったら,もしかすると私達の本が出版されることもなかったかもしれません。確か,2015年の秋冬頃に,松村さんが「タスクの本を出そう」というようなことを仰っていて,「その時には福田くんと田村くんもぜひ書いてほしい」ということを仰っていただいたような記憶があります。もちろん,それは研究会の合間の他愛もない会話の一場面で,当時は本当に出版することになるとは,ましてや私も執筆者の1人として名前を連ねることになるとは夢にも思っていませんでした。

そして,2015年末に,浦野先生が「あの夜」と呼ぶ日がやってきます。

私は,松村先生とも浦野先生ともに仲良くさせていただいていて,その日も浦野先生が名古屋にいらっしゃるということで,福田さんや数人の先生方と一緒に名古屋でお会いすることになっていました。そこに,松村先生も合流し,「松村先生と浦野先生が同じ宴席にいる」ということをとても新鮮に感じたように記憶しています。そして,浦野先生いわく「『あの夜』に俺が松村さんを(タスク本の出版に向けて)けしかけた」そうです(笑)。そして,2016年1月のセンター試験の頃,松村先生が企画案を作ってくださり,その後タイトルや内容についての交渉があり,2016年の5月頃から執筆をスタートさせたように記憶しています。

私の担当は,TBLTに関する疑問などに答えながらその解決策を提示するという主旨の第4章と,中学校・高等学校での実践に関する第7章でした。特に後者の執筆は大変難航を極め,私が第1稿を著者の方々にお送りしたのは「各章25ページ」という制限を大幅に超えた70ページにもなる原稿でした(笑)。内容的にはゆるやかな縛りしかなく,本当に私の「書きたいこと」,「言いたいこと」を詰め込みすぎてしまったために,「あれも書いておこう」,「これにも言及しておかなくては」とどんどんと原稿が冗長になっていたのでした。松村先生には,文字通り「ざくざくと」私の原稿を「斬って」いただき,最終的にはページ制限をオーバーしつつもなんとかOKサインをもらえたのでした。

松村先生と一緒に仕事をしたことで,「少しでも良いものに仕上げるためなら労力は厭わない」というプロフェッショナリティやプライドを間近に感じることができ,本当に刺激的な1年間だったなと思います。原稿の書き直しは何度もしましたし,校正の段階で松村先生からの手書きのコメントつきの校正紙を見てあまりのコメントの多さにそのままそっと封筒に戻して頭を抱えたこともありました。それはまさに,「査読コメントのファイルを開いてすぐ閉じる」ときのような気持ちでした。そこまでのエネルギーを注いで他人の原稿を読むことは,なかなか真似できることではありません。そんなときでも,「僕は自分の書いた部分はそれ(他の人の書いた文章にコメントしている)以上に書き直しをしているよ」とおっしゃっていただいたり,「僕1人では絶対に書けなかったと思えるような内容だから本当によかった」と励ましていただきました。著者陣の中でも一番未熟な私をそのように厳しくも温かく導いてくださり,本当に感謝の念に堪えません。

執筆する中で私が一番苦しかったのは,「私の原稿は松村先生の本を上回るものになっているのだろうか。新しい視点は提示できているのだろうか。焼き直しになってはいないだろうか」ということでした。私が書くからには,「自分にしかできない仕事」をしないと意味がありません。そうでないと,私が書く意味がなくなってしまうからです。そうした思いから,特に第7章の方では,具体例や実践者としての自分のビリーフのようなものを織り交ぜながら書くようにしました。

昨日の中部地区英語教育学会でいろいろな方とお話させていただいて,本に書いた内容でもまだ不十分というか,「十分に消化しきれない。もやもやが残る」というような部分もお読みいただきながらきっと出てくるだろうなと今になっては思います。ただ,それでも執筆当時は私の全力で書いた文章だったのです。この点については,今後の研究の課題として引き受けて,乗り越えていけるようにしようと思っています。

長くなりましたが,最後に。

私はアメリカの修士課程に在籍していたころからブログで文章を書くようになりました。今でも2011, 2012年あたりの記事を見ていると,本当に恥ずかしいような文章を(それも結構な頻度)で書いていたのだなと思います。WordPressに移行し,日本に帰ってきてからはこの「英語教育0.2」というブログをスタートさせましたが,アメリカにいた頃は「田村の日本語はめちゃくちゃだ」「アメリカにいるから日本語の文章の書き方を知らないんじゃないか」といったような「お叱り」を受けるようなこともしばしばありました。そんな私が,主にTwitterを通じてたくさんの方にお世話になり,あれから5年ほどの月日を経て,商業媒体に日本語の文章を載せることになったなんて,なんだか不思議なこともあるものですね。

いただいたチャンスを無駄にせず,今後につなげていけるよう,これからも一層頑張っていきたいと思います。

なにをゆう たむらゆう

おしまい。

 

 

 

 

CELES2017英語教育実践セミナー

以前このブログでも紹介させて頂きましたが(https://tam07pb915.wordpress.com/2017/03/28/seminar-celes2017-nagano/),明日6月24日に信州大学で行われる第47回中部地区英語教育学会の英語教育実践セミナー1で,「タスクを用いたスピーキングの指導と評価」と題した発表をさせていただきます。

投影資料についてはまだ細かいところで修正をするかもしれませんが,配布資料を印刷し終えたので,配布資料をGithubページにアップロードしました。

https://github.com/tam07pb915/CELES2017-Seminar

Githubでスライドを公開する方法がいまいちよくわからず,何度か調べたりしながらトライしたのですが結局うまくいかなかったです(github.ioを作ればよいことまではわかったのですが,HTMLファイルはそこで公開できても,Rmarkdownからreveal.jsを経由して作ったHTMLファイルをスライドとして公開するやり方がわかりませんでした…

配布資料は,pdfのものについてはRmdファイルからMS-Wordに出力したあとにPDFにしたものです。Wordファイルにした後で,フォーマットをいじったり一部穴抜きにしたりしてあります。Rmdファイルのものは穴抜きになっていません。

また,当日は私が担当したクラスの学生の発話を音声で流しますが,その部分については公開した資料からは削除してあります。

基本的には,『タスク・ベースの言語指導ーTBLTの理解と実践』で私が担当した部分で書いたタスク・ベースの指導における評価の考え方のような話をする予定です。先月に広島で私が話したこととも一部重複する話も少しだけあります。

この本のこともブログできちんと紹介しなければいけないので(順番が前後してしまいました),書きかけの記事をなるべく早く公開できるようにしたいと思います。

それでは,みなさん,長野でお会いしましょう!

なにをゆう たむらゆう

おしまい。

 

 

RStudio 1.0.143

MacのRStudioを新しいversion(1.0.143)にアップデートしました。

何が変わっているのかなと思ったら,Rmdでコードを実行した時に,もはやコードの実行結果がコンソール上に表示されなくなっていてびっくり。これはこれで便利なのかもしれないけど,慣れていなさすぎて逆に戸惑っています…

もちろん,コンソール上に直接打ち込んでいたり,R Script上で打ち込んでいれば結果はコンソールに出るのですが,RmdファイルのRチャンクをつかっている場合,そのチャンクの下に結果が表示されるようになっていて,大きいデータはGUIでポチポチするようになっています。

別ウィンドウに出せるようにもなっていて,Notebook Outputと呼ばれているようです。

多分出力の結果によってこのアウトプットのされ方も色々変わってくるのでしょうね。細かいことはまだよくわかってませんが,ちょっと使ってびっくりしたのはこの仕様でした。

個人的にはRStudioは好きで今まで使ってきていたのですが,これはなんかちょっと違うような…

なにをゆう たむらゆう

おしまい。

※追記

プロットも右下のペインではなくRチャンクの下に表示されるようになっているようです。

「コーパスやりたいです」の意味わからなさ

主にMの学生向けです。新入生も入ってきたりする時期で,どんな研究をしたいかという話をする機会が最近多いですが,なんかそれよくわからないなと思うので少しだけ。

タイトルだけだとコーパスに関わる研究をしている人を批判しているように誤解されてしまうかもしれないのですが,「コーパス」の部分には他にも色々入ります。それは後ほど。

「コーパスやりたいです」が意味わからないと思うのは,コーパスは,少なくとも私の中では道具や手段だからです。もちろん,コーパスが研究の対象となることも当然あって,「コーパス言語学」という分野もあるにはあるのでそれはもちろんいいです(「んなもんはない」という人もいるかもしれないですがその戦いにはコミットしませんとりあえず)。ただ,コーパスを研究対象にするにしても,一体なんのためにコーパスを研究の対象にしていて,そのゴールは何なのかということだけは考えてほしいなと思うのです。

何か見たいものがあって,それを見るためにコーパスを用いるのがベストな選択肢であるならば,コーパスを使うべきであると思います。ただ,研究課題に対して必ずしもコーパスを用いることが適切でない場合もたくさんあります。先にコーパスから入ってしまえば,コーパスを使って研究できることしかできないわけで,最初に決めるべきは研究の対象であって使う道具ではないでしょう。これは,第二言語習得研究で使われる測定具を「◯◯やりたいです」に当てはめて考えてみればわかります。

  • 文法性判断課題をやりたいです
  • 視線計測をやりたいです
  • 自己ペース読みをやりたいです
  • 語彙性判断課題をやりたいです
  • ERPをやりたいです

もちろん,測定具の妥当性を検証することという意味では,上記のやりたいことも研究になりえます。文法性判断ていうけど,一体それは何を測っているのか,測りたいものを測れるようにするためにはどんな工夫が必要なのかということは,それこそ第二言語習得研究の最初の頃から今まで続けられていますよね。これはいわゆる「テスト」も同じです。

  • スピーキングテストやりたいです
  • 語彙テストやりたいです
  • リーディングテストやりたいです

テスト自体も研究の対象になります。スピーキングテストっていうけどそれは一体何を測定しているのか,測定しようとしているものが測れているのか,そういったことを研究課題にするのがテスティング研究者なわけです。

ですから,「測定」に興味があるのはとても良いことですし,ぜひそういう研究やってほしいなと思うのですが,「コーパスやりたいです」と言われると,「コーパス使って何をやりたいの?」と聞いてしまいます。言語教育にコーパスを応用したいということなのか(だとすればどんなことに応用したくて,それがなぜコーパスという手段なのか),言語発達をコーパスで調べたいということなのか,言語使用の特徴をコーパスで調べたいということなのか。コーパス自体が研究の目的になることって,少なくとも言語学の講座ではない場合にはそんなに多くないのではと思います。

ですから,道具立てそれ自体にこだわるよりも大事なのは,研究したいこと,明らかにしたいことを明確にすることと,それに応じて適切な道具を使いこなせるようになることです。

私は文法の習得や文処理に関心があり,そうした研究をこれまで多くやってきましたが,例えば「どんな研究をされていますか?」というような質問を受けたときに「自己ペース読み課題です」と答えることはありません。「第二言語の文法習得や文処理を心理言語学的なアプローチで研究しています。例えば,自己ペース読みなどです」と答えるでしょうおそらく。

ただし,それだけが手法ではありません。常に自分の見たいものを一番見れる方法を考えていますし,新しい実験の手法があればそれを取り入れて研究をやっていきます。興味があることもたくさんありますから,自分の興味があることに合わせて手法も選択することになります。手法が先に来てしまうと,その手法で見れることしか見ないことになり,視野が狭まってしまいます。「コーパス」という手法にとらわれて,実は自分が見ようとしていたものがコーパス以外の方法でより確実に見れることに気づくことができないかもしれません。

その意味で,道具立ての妥当性や信頼性を検証するという目的があり,そしてそれが分野にどういった貢献をするのかを理解していて,なおかつそれが自分の本当にやりたいことなのだと思えるようでなければ,手法よりも先に「見たいもの」について考え抜いて悩み抜いたほうがいいのではないのかというのが結論です。

久しぶりの更新でした。

なにをゆう たむらゆう

おしまい。

英語教育実践セミナー@CELES2017長野大会

2017年6月24-25日に長野県の信州大学で開催される第47回中部地区英語教育学会長野大会の,英語教育実践セミナーでお話させていただく機会をいただきました。この企画は,中部地区英語教育学会長野支部の特別企画だそうで,なんと私の出るセミナーのタイトルは,「スピーキングの指導と評価」です。

ファッ!?いやいやスピーキングの研究とかメインでやってないし評価の研究もメインでやってないよ!?なぜこの話が僕のところに!?

というのがこのお話をいただいた際に思ったことですが,「はい」か「YES」しか選択肢がないのでお引き受けしました。原稿はとっくにあがってるのになかなか校正に入っていない「タスク本」(出版社がとてもお忙しいようです)に書いた内容とも関連させて,タスクを用いたスピーキングの指導と評価についてをお話しようかなと考えているところです。

時間は大会初日24日の10時からということで,ここ数年の中部地区英語教育学会では「恒例」というほどになってきた「英語教育研究法セミナー」の「裏番組」です。参加者として毎年英語教育研究法セミナーに出るのを楽しみにしていたので,そちらに出られないのは残念ですし,昨年度はかなりオーディエンスも多かったセミナーと同じ時間帯ということで,参加いただける方がどれだけいるのかとか不安はあります。そこは実践セミナーの司会を務められる浦野研先生(北海学園大学)にお力添えをいただこうと思います。

私がお話する内容は,「これがいい!」とか「この方法でやればスピーキング力が伸びる!」とかそういったことではなく,「こんな感じでスピーキングの評価を考えてみるってどうですかね?」というような「提案」になると思います(「提案者」としてお話するので)。フロアの皆さんとのやりとりを通して,スピーキングの指導と評価について考えを深められればと思いますので,ぜひ,CELES長野大会にお越しいただければと思います。

なにをゆう たむらゆう。

おしまい。

 

中部地区卒修論発表会2016の感想など

土曜日に,中部地区卒業論文・修士論文発表会2016に参加しました。去年までは基礎研として運営に携わっていたのですが,今年からは色々とオトナの事情とか私らの事情によりLET中部支部と中部地区英語教育学会の共催という形になり,「参加者」として楽しく勉強させていただきました。

他大学の学部生さんや院生さんの発表をこんなにたくさん聞く機会はなかなかありませんし,ゼミで後輩の発表にコメントするのとはまた違うので,主に「どうやってコメントしたら発表者の人に有益になるだろう」ということをずっと考えながら発表を聞いていました。酒井先生のコメントを聞くといつも自分のコメントの下手さに気づかされて凹むという恒例行事もありました。私はいつもの名大のゼミのノリでガンガン突っ込んだら発表者の方がちょっと機嫌悪そうな感じになってしまって「これはちょっとまずったかな…」と思っていたら,近くに座っていた知り合いの先生とも,

「知り合い?」

「あ,いえ全然知りません」

「あ,そうか,いや,結構ガンガンいくなーと思って」

みたいな話をしたので反省をしていたのですが,発表の後に「さっきは緊張してうまく質問に答えられなかったのでもう一度教えてください」と聞きに来てくれてホッとしました。私が言いたかったことは伝わったみたいでよかったです。発表者の指導教官の先生がいらっしゃっている場合などは,その先生とも話ができて個人的にはそれもよかったです。

私が一番いいなと思ったのは,「コメントシート」というシステムでした。プログラムと一緒に小さな紙が6枚(1人の人が聞くことのできる最大発表数分)用意されていて,そこに発表者の名前を書いてコメントを書くというものでした。学会の発表って質疑が盛り上がったり,くだらない質問やスピーチで時間が無駄になったりすると「質問したかったけどできなかった」みたいなこともあったりしますよね。

もちろん発表の後に個人的に伝えるという手段もあるのですが,発表の間の時間が短くて部屋移動とか考えると自分が移動しなくちゃいけなかったり気づいたら発表者の人がいなくなっていたりすることもしばしばあります。そんなときに,紙に書いて発表者本人に渡せるというのはいいなと思いました。発表者本人からしても,あとでその紙を見ながら落ち着いて見直すこともできますし,指導教官とシェアして相談したりということもできます。指導教官の先生からしても,自分の指導生の研究がどんなコメントをもらったのかは興味があると思いますし(たぶん),発表の場にいられないということもあるでしょうから,指導生がコメントシートを見せてくれたらそれは学生の研究指導に(直接的にではなかったとしても)役に立つのではないかと思います。

また,私も最初はそうでしたが学会発表のときに手を挙げて質問するのは特に若い人は躊躇したり勇気がなくて手を挙げて言えないこともありますから,そういう人たちにとっても紙に書いて渡せるのはメリットがありそうです。一応名前や所属を書くことが想定されているのだろうというスペースもありましたが,それを書かなければ匿名で質問することもできますし。

私は海外の学会に行ったことはないので雰囲気はわかりませんが,国内の学会だと質問が出なくて質疑応答の時間を早めに切り上げる(あるいは司会者の先生がアイスブレイキング的な質問をしたり)ということもしばしばあるので,コメントシートを作ったところで誰も書かないということもあるのかもしれませんが,書いて渡す(実際には司会者・コメンテーターの先生が回収して発表者に渡す)のならコメントしようという層もいるんでしょうかね。どうなんでしょう。講演やシンポジウムだとコメントシートを集めて回収というのはよくあるパターンですが,自由研究発表だとなかなかないですよね。あったらいいなと思います。

1つだけ残念だったことは,時間の都合などもあるでしょうが最後の講演まで残っている発表者や学生の方が少なかったことです。「発表しなきゃいけないから来た」という人もいたのでしょうし,それはそれであまり責める気にはならないです。ただ,自分が発表して終わりというのはもったいなくて,他の人の発表を聞くことでも自分の発表を相対化できる貴重な機会なのに,それを逃してしまうのはもったいないなぁと。最後の阪上先生の講演も,「これから教師になる人たちへ」っていう講演だったのに,本当にあの話を聞くべき人たちはあそこまで残っていたのかなと少し残念な気持ちになりました。「中部地区」というのは広いので,新潟や長野から来ている学生さんもいましたし,愛三岐以外からの発表者には新幹線の片道×1.5倍の交通費の補助が出たとはいえ,泊まりは厳しいので早く帰らなくてはいけないという事情もあったのかもしれません。プログラム作成が悩ましいですね。朝早くにすればそれはそれで前泊しないと間に合わなくなってしまいますし,かといって18時終了のプログラムだと帰りが間に合わないとなってしまったり。じゃあ,といって時間を圧縮するためにパラレルで1枠の発表数を増やせば(5部屋同時とか),人がばらけてしまってオーディエンスが少なくなってしまいます(そして部屋数が増えればお金もそれだけかかってしまったり)。難しいですね。講演を最初にやるとそれはそれで人が来ないかもしれないので,研究発表の間に講演を挟むっていうのもありかもしれません。

あとは懇親会ですね。発表者の人で懇親会に参加したのは3人(うち2名は名大の後輩)で,発表者の交流の場になったのかはちょっと疑問です。これも時間の問題があったと思うので,懇親会的なものをやるのだったらランチ(軽食)ビュッフェ的なものをやって,発表者の人たちが縦にも横にもつながりを作れるようなチャンスを作れたらいいのではないかなと思いました。この時間どうするかみたいなあたりは,それぞれの県が密集していて交通アクセスもそれなりにいい関西とかとの事情の違いですよね。

とまぁ色々言いましたけど,「じゃあ誰がそれやるの?」って言われると色々アレなんですが,全体的にはとてもおもしろかったですし,行ってよかったなと思ったので,持続可能なイベントになってくれればいいなと思います。

なにをゆう たむらゆう。

おしまい。

 

[R] データフレームの中の英文の語数を数える

以前,エクセルで英文の中の特定の単語までの語数を数えるという記事を書きました。今回はそれよりもっと単純で,Rのデータフレームの中の1部に英文が入っていて,その英文の語数を数えてデータフレームに付け足したいなっていう作業です。

%e3%83%96%e3%83%ad%e3%82%b0%e8%a8%98%e4%ba%8b%e7%94%a8_20170218

こんな感じでロング型のデータがdatという変数にあるとします。このデータフレームのなかの,sentenceという列には英文が入っていますが,それぞれ長さが違います。文が長いほうが反応時間も長くなっちゃいますから,そのために英文に含まれる語数を数えてそれも分析に使いましょうということです。僕がやっているような反応時間を扱う実験ではよくありがちな手続きです。本来なら刺激文作るときにそれもちゃんと数えておいて(エクセルで語数数えるのは簡単です。前掲の記事の一部がそれです),結果が出力される際にちゃんと語数の情報も含めておけばいいんですけど,まぁ今回はそれ忘れちゃったんでRの中でやってしまおうという事後的な対処法です。

さてさて前置きが長くなりました。Rでの文字列処理の基本は「分ける」・「数える」だと思います。僕はそんなにRで文字列処理しないんですが,今回の場合で言うと,データフレームの要素に含まれる英文をスペースで区切り,区切ったときにいくつかに分けられた要素の数を数えることで語数をカウントするという手続きになります。

今回使う関数は次の4つです。

  • (as.character関数)
  • strsplit関数
  • length関数
  • sapply関数

順番に説明していきます。strsplit関数は

strsplit(分けたいもの,区切り文字)

という感じで使います。今回の場合,分けたいのはdatの中のsentenceという列(dat$sentence)で,スペースで区切りますから,

strsplit(dat$sentence, ” “)

とすれば,

%e3%83%96%e3%83%ad%e3%82%b0%e8%a8%98%e4%ba%8b%e7%94%a8_20170218_2

こんな感じで単語ごとに区切ってくれます。この出力は1文ずつのリスト形式になっていて,そのリストの要素が英文を構成する単語になっています。もしも,このstrsplit関数がうまくいかなければ,

is.character(dat$sentence)

として,データフレーム中の英文が文字列形式で格納されているかどうか確かめてみてください。因子型(factorial)になっていると,strsplit関数は適用されません。これを変えるのが,as.character関数です。

strsplit(as.character(dat$sentence))

または,

dat$sentence<-as.character(dat$sentence)
strsplit(dat$sentence, ” “)

としてみてください。

さて,これでひとまず「区切る」作業はできましたが,まだ「数える」にはいたっていませんよね。数えるためによく使われるのが要素の数を数えるlength関数です。ただし,例えば

length(strsplit(as.character(dat$sentence)))

としてもうまくいきません。これでは出力されたリストの要素を数えるので,元のデータフレームの行数が表示されるはずです。ここでは,「リストのそれぞれの要素に対してlength関数を適用したい」わけなので,もうひと工夫必要です。そこで使うのがapply系列のsapply関数です。この関数は,

sapply(リスト,関数)

という形で引数を与えてあげると,リストの各要素に関数を適用してくれます。これと同じことができるのがlapply関数です。lapply関数を使うと,結果の出力もリスト形式で返されます。ただ,ここでは語数が並んだベクトル形式のものを手に入れて,それをもとのデータフレーム(dat)に追加したいわけなので,sapply関数のほうがベターです。lapply関数にすると,そのあとリストをベクトルに直すunlist関数を使う必要があって二度手間になってしまうので。というわけで,

sapply(strsplit(as.character(dat$sentence), ” “), length)

こうしてあげれば「スペースで区切る-> 語数を数える -> ベクトル形式で結果をゲット」という作業が完了します。あとは,

dat$num.words<-sapply(strsplit(as.character(dat$sentence), ” “), length)

としてあげれば,datに新しくnum.wordsという列が追加され,そこにはsentenceの列に入っている英文の語数が格納されることになります。めでたしめでたし。といきたいところなのですが,最後におまけでもうひとつ。

上の書き方だと,いくつもの関数が入れ子状態になっていて,一見して作業がわかりにくいですよね?そこでパイプ演算子を使って同じことをもう少しわかりやすく書き直してあげます。

dat$sentence%>% #datの中のsentenceという列を取ってくる
as.character%>% #文字列型に変換
strsplit(. , ” “)%>% #スペースで区切る
sapply(., length) -> dat$num.words #リストの要素ごとに語数を数えてdatというデータフレームのnum.wordsという列にいれる

こうやって書くと,作業の過程が見えてわかりやすいですよね。ちなみにこのパイプ演算子はパッケージ依存です。dplyrやtidyrを使うときに使うやつですね。たぶんこれらのパッケージを読み込んでいればパイプ演算子も使えるようになっているはずです。もともとはmagrittrというパッケージに入っているのがパイプ演算子が%>%なんですよね(たしか)?

というわけでlapplyの出力をunlistしてできたできたと思っていたらsapply関数の存在に気づいてなんだよ二度手間じゃんかよって思ったのでブログ記事にしました。

なにをゆう たむらゆう。

おしまい。