Koike's Lemma

ITやビジネスに関する雑記

ビット列に対するランク簡潔索引の詳細説明

簡潔データ構造の一つであるランク簡潔索引について詳細を説明する.簡潔データ構造やランク簡潔索引についての説明は前回の記事を参照のこと.今回も説明を簡単にするために0,1のビット列を考える.また,ビット列の値についての事前知識はないとする(0,1の生成確率が偏っていることが分かっている場合には元データを圧縮できるが,今回はその場合は考えない).

ランク簡潔索引を用いることで,元データと十分に小さいサイズのテーブルのみを用いて,定数時間でランクを求めることができる.
使用するテーブルは3つであり,各テーブルへのアクセス回数は1回である.

以下,その詳細について説明するが,以下に留意して読んでいただければと思う.

  • 本当に3回のテーブルアクセスで正しい答えが求まるのか?
  • テーブルサイズは本当に小さくなるのか?

詳細説明

処理の流れ

n要素からなるビット列B[0..n-1]に対するランク簡潔索引を考える.まず,下図を用いてランクをどのように求めるかについて説明する.下図は処理の流れを説明するものであり,サイズについては正しくない.

f:id:koikezlemma:20131125113812p:plain

上図のBにおいて,Rank1(B,25)を求める場合を説明する.まず,補助データを用いない場合について考え,その後,いくつかの補助データを導入する.

まず,補助データを用いない場合は,配列Bについてindex 0から25までをスキャンし1の数を数えることで,ランク値(11)を算出できる.

次にこれをデータサイズの小さいテーブルR1をあらかじめ作成しておくことで少し高速化する.作成手順は以下の通りである.配列Bを長さlog2n の大ブロックに分割し,各大ブロックの最終要素のランク値をテーブルR1に格納する.このテーブルを用いることで,Rank1(B,25)を求める際に右側の大ブロック以外の大ブロックをスキャンする必要がなくなる.左側と中央の大ブロックにおける1の合計数はR1を参照することで7と分かるので,Rank1(B,25)を求めるためには,この値にindex 18 から 25 までの1の数を加えればよい(右側の大ブロックをスキャンする).このように,テーブルR1を用いることで,スキャンの範囲を右側の大ブロックの中だけに限定できる.

次に大ブロックのスキャンを高速化する.そのために上記と同様のことを行う.大ブロックを長さ(1/2) log n の小ブロックに分割し,各小ブロックの最終要素のランク値(大ブロックの中でのランク値)をテーブルR2に格納する.このテーブルを用いることで自身の属する小ブロック以外の小ブロックをスキャンする必要がなくなる.左側と中央の小ブロックにおける1の数はR2を参照することで3と分かるので,大ブロック内でのランク値を求めるためには,これまで求めた2つの値(7+3)にindex 24 から 25 までの1の数を加えればよい(小ブロック内でランク値計算を行うことで算出できる).

最後に小ブロック内のランク値計算を高速化する.小ブロックにおいて取りうるすべてのビット列パターンに対するランクの値をテーブルR3に格納する.小ブロックが3ビットの時はR3は以下のようになる.

f:id:koikezlemma:20131125113828p:plain:w200

まず,自身の属する小ブロックのビット列を元データから取得する.小ブロックのサイズはとても小さいため,1回のメモリアクセスで小ブロックの全ビット列を取得できる.(今回は詳しく説明しないが,使用する計算機は1回のメモリアクセスで log n ビットのデータを取得できると仮定している.このような計算機モデルはword RAMと呼ばれている.このサイズは小ブロックサイズよりも大きいので1回のメモリアクセスで全ビット列を取得することが可能である.)自身の属する小ブロックのビットパターンは101なので,下記テーブルの6行目にアクセスすればよい.また,index 25の小ブロック内でのindexは1なので,小ブロック内でのランク値はテーブル参照により1と求まる.以上から,Rank1(B,25) = 7 + 3 + 1 = 11 と求まる.

Rank1(B,25)を求める手順をまとめると以下のようになる.

  1. テーブルR1に1回アクセスし,上図①を取得する.
  2. テーブルR2に1回アクセスし,上図②を取得する.
  3. 元データとテーブルR3に1回ずつアクセスし,上図③を取得する.
  4. 上記3つの値の和をとったものが所望のランク値となる

テーブルのデータサイズについて

上記のデータ構造のデータサイズが十分に小さく,簡潔データ構造になっていることを説明する.まず,元データに対し最適な圧縮をかけた場合のデータサイズZを求める.ビット列の値についての事前知識がない場合,n要素のビット列を保持するためには,nビットが必要である.よって,元データはこれ以上サイズを圧縮することはできず,Z = n (ビット) となる.

次に使用するデータ構造ごとのデータサイズを計算する.

まず,①の計算では,テーブルR1を使用している.テーブルR1については,1要素あたりのサイズが log n (ビット)で要素数がn/log2nなので,合計では,n/log n (ビット)である.

②の計算では,テーブルR2を使用している.テーブルR2に格納される値の最大値は log2n である.よって,1要素あたりのサイズは log (log2n) ビットあれば十分である.また,テーブルR2の要素数は n / (1/2) log n なので,R2合計では,
\frac{n}{\frac{1}{2}\log n}\log \left(\log^2 n\right) = \frac{4n\log\log n}{\log n}
となる.

③の計算では,元データとテーブルR3を使用している.元データのデータサイズはnビットである.テーブルR3については以下の通りである.格納される値の最大値は(1/2) log n なので,1要素あたりのサイズは log ((1/2)log n) ビットあれば十分である.要素数はテーブルの行数2^{\frac{1}{2}\log n}と列数\frac{1}{2}\log nの掛け算となる.
よって合計では,
2^{\frac{1}{2}\log n}\cdot \frac{1}{2}\log n \cdot \log \left(\frac{1}{2}\log n\right) = \mathcal{O}\left(\sqrt{n}\log n \log\log n\right)
となる.この値は,
\mathcal{o}\left(\frac{n\log\log n}{\log n}\right)
となることが示せる.

以上をまとめて,ランク簡潔索引が使用するデータのデータサイズ合計(ビット)は
n + \mathcal{O}\left(\frac{n\log\log n}{\log n}\right)
となる.

元データのデータサイズはnであり,これ以上圧縮できない.また,使用するテーブルの合計サイズはo(n)となっている.よって使用する補助データのサイズは元データの最適圧縮のサイズよりも小さくなっているいるので,ランク簡潔索引は簡潔データ構造であると言える.

簡潔データ構造の第一歩

簡潔データ構造は多くの応用を持つ有益なデータ構造である.簡潔データ構造を用いることで,データサイズを小さくしながらも,多くの処理を高速化することができる.身近な例では,Google日本語入力の辞書のデータ構造にLOUDSと呼ばれる簡潔データ構造が使用されている.
しかし,簡潔データ構造に関する初心者向けの解説資料は少ない気がするので,今回は入門的な説明を書いてみたい.

データ構造とは?

そもそもデータ構造とは何か?データ構造とはデータを保持する際の保持の仕方である.例えば,トランプで自分のカードを保持する場合,通常分かりやすいようにカードを並べ替える.また,ゲームにより異なった並べ方をする.七並べなら絵柄(マーク)ごとにカードをまとめるだろうし,大富豪なら強い順に並べ替えるだろう.この並べ方のルールがデータ構造である.この例から分かる通り,何をしたいかによって適切なデータ構造は変わる.例えば大富豪では,カードを強い順に並び変えておくことにより,「場に出されているカードよりも強いカードの一覧を取得する」という操作を高速に行うことができる.なので,データ構造を議論するときは,何の操作のためのデータ構造かをきちんと意識する必要がある.

補助データについて

簡潔データ構造の話をする前に補助データについて説明しておく.
例として,本の中から特定の単語の出現場所を知りたい場合を考える.このような場合,どうすれば高速に出現場所を知ることができるであろうか?有効な手段の一つはあらかじめ索引を作っておくことである.実際,多くの本では巻末に索引が付いている.索引を利用することによって指定の単語の検索操作を高速に行うことができる.索引のように,操作の高速化のために元データとは別に作成されるデータを補助データと呼ぶことにする.あらかじめ(前処理により)補助データを作成しておくことにより,操作を高速化することができる.

簡潔データ構造とは?

補助データのうちデータサイズが"十分に小さい"ものを簡潔データ構造と呼ぶ."十分に小さい"とは,もう少しだけ正確に述べると,補助データのデータサイズが「元データに対し最適な圧縮をかけたもの」のサイズと同程度になるという意味である.正確な定義については下記のリファレンスを参照のこと.

簡潔データ構造についてのセールストーク

簡潔データ構造について正しく説明するのであれば,データサイズの議論から始めないといけない.しかし,ここでは「簡潔データ構造を使うと何ができるのか」に重点を置くために,本来の流れを無視してセールストーク的な話し方をしたい.
例えば100円ショップの説明なら,本来はこう説明すべきである.

  1. すべての商品は100円です.
  2. 扱っている商品の例としてこれらがあります.

でも,メリットを強調するために正確さを犠牲にするのであれば,こんな説明の仕方もできる.

  1. こんな商品やあんな商品を売っているところが100円ショップです.
  2. しかも値段はすべて100円!

こんな商品やあんな商品を売ってるというのは100円ショップの定義ではない,という突っ込みもきそうだが,まぁ気にするなということで,十分に言い訳をしたところで,簡潔データ構造のセールストークを書いてみることにする.

  • 簡潔データ構造とは(セールストーク)
    1. 多くの操作がテーブルへの定数回アクセスだけで完了するようなデータ構造.
    2. しかもテーブルの合計サイズは「元データに対し最適な圧縮をかけたもの」と同程度!

定数回とはデータサイズに関係なく決まった回数という意味である.後述するランク簡潔索引では常に3回のテーブルアクセス(+1回の元データへのアクセス)で答えを得る事ができる.定数回の処理で操作が完了する時,処理時間は定数時間であるという.もちろん,定数回のテーブルアクセスでは答えが求まらない場合もたくさんあるが,セールストークということで大げさに書いておいた.

簡潔データ構造の例:ランク簡潔索引

最も単純な場合を考えたいので,元データは0と1だけからなるビット列であるとし,ビット列に対する操作を考える.今回は,最も基本的な操作の一つであるランク操作のための簡潔データ構造について説明する.

ランク (rank)とは?

文書に対する操作として,指定した文字(パターン)の指定範囲での出現回数を求めるという操作を考える.これは文書を解析するための最も基本的な操作であり,出現回数を知る事で文書から多くの知見を得る事ができる.例えば,「計算時間」という単語を多く含む文書はコンピュータに関連している推定することができる.指定範囲でのパターンの出現回数を求めるための操作としてランクがある.

ランクとはデータの先頭から指定した位置までの所定パターンの出現回数のことである.今回はビット列に対する1の出現回数を考える.例として,以下のようなビット列を考える.

f:id:koikezlemma:20131122025752p:plain:w330

上の図において,index 0 から 5までの1の出現回数は3回である.それを
Rank_1(B,5) = 3
と書く.ランク操作を用いることで,index 4から5までに存在する1の数は下記のように求めることができる.
Rank_1(B,5)-Rank_1(B,3) = 2

また,ビット列の各indexの値もランクから計算できる.

f:id:koikezlemma:20131122030112p:plain:w400

上記の図から分かるように,B[5]は
B[5] = Rank(B,5)-Rank(B,4) = 1
であり,B[7]は
B[7] = Rank(B,7)-Rank(B,6) = 0
である.

ランクのための簡潔でない索引

補助データを使用してランクを高速に求めることを考える.まずは,補助データのサイズにこだわらない場合を考えてみる.最も簡単な方法は,下図のようにすべての答えをテーブルに格納しておくことである.

f:id:koikezlemma:20131122023955p:plain:w300

このようにすることで常に1回のテーブルアクセスで答えを求める事ができる.なので,このような方法でも計算速度としては問題ないのだが,問題は補助データのテーブルのサイズが元のビット列のサイズよりも大きくなってしまうことである.やや詳細に述べると,データサイズは以下のようになる.ビット列の要素数をnとすると,ビット列のサイズが1(ビット) × n = n(ビット)なのに対し,補助データのサイズは log n (ビット) × n = n log n (ビット)となる.

それでは,テーブルのサイズを小さくすることはできるだろうか?実は,テーブルを3つ使うようにする事でそれぞれのテーブルのサイズを十分小さくすることができるのである.

ランク簡潔索引

ランク操作のための簡潔なデータ構造について概要を述べる.本データ構造ではテーブルを3つ使用する.ランクの値は元データへの1回のアクセスと3つのテーブルへの1回ずつのアクセスにより求めることができる.そして、3つのテーブルのサイズはそれぞれ十分に小さくすることができる.このデータ構造はランク簡潔索引と呼ばれる.

詳細については,長くなるので別記事で説明することにする.

データ圧縮としての簡潔データ構造

元データ(ビット列)の1と0の出現確率が偏っている時,そのビット列を圧縮することができる.上記のランク簡潔索引では元データに1回,テーブルに3回アクセスしていたが,元データをうまく圧縮すると,圧縮データとテーブルに定数回アクセスすることでランクを算出できるようになる.これは完備辞書(FID: Fully Indexable Dictionary)と呼ばれている.完備辞書では,ランク操作やセレクト操作(今回は説明しない)を定数時間で行える.その際,未圧縮の元データにアクセスする必要はない.

このように,完備辞書は元データに対する圧縮データになっているにも関わらず,様々な操作を高速に行える(解凍して元データを得ることもできる).

簡潔データ構造の利用

簡潔データ構造のセールストークのところで,「多くの操作がテーブルへの定数回アクセスだけで完了する」と書いたが,テーブルの代わりに完備辞書を用いてもよい.ある操作が完備辞書を用いて定数時間で処理可能であれば,その操作を定数回行うような操作もまた,定数時間で完了すると言える.

このように既存の簡潔データ構造を用いて,新たな簡潔データ構造を設計することができる.実際,多くの簡潔データ構造が内部に完備辞書を有している.

本当に「日本はスマホの超後進国」なのか?

今日はこの記事についてコメントしたい.

Google様はいいました「日本はスマホの超後進国」。このままでは世界に取り残されると思う政治家に読んで欲しい | More Access! More Fun!

記事の内容をざっくりとまとめると,こんな感じ.


でも,スマートフォンを使わないと本当に情報収集力が低くなるのだろうか?
上記のGoogle調査資料の中で,Googleは,スマートフォンが消費者行動やショッピングを変えたと述べているが,具体例を見てみると日本ではスマートフォン以前からできていたことばかりであり,何かが変わったようには見えない.
実際,日本では携帯コンテンツ(+コマース)の市場はスマートフォン普及前から十分大きかった.下記の図はモバイル・コンテンツ・フォーラムのモバイルコンテンツ市場に関する資料の一部で,上図は日本のモバイルコンテンツ関連市場(コンテンツ+コマース)の市場規模の推移であり,下図はモバイルコンテンツの内訳である.スマートフォン普及以前(2010年以前)も市場規模は十分大きかったことが見て取れる.
f:id:koikezlemma:20131005170009p:plain


そもそも「スマートフォン」とは何か?
もし上記Google資料に記載の機能を搭載している端末をスマートフォンと呼ぶのであれば,日本のフィーチャーフォンは,むしろスマートフォンに分類されるべき端末と言える.そう考えると日本ではスマートフォンの普及率が低いのではなく,単にGoogleAndroidの普及率が低いだけだと言える(iPhoneは好調みたいだし).
上記ブログ記事に合わせた言い方をするならば,『Google様は言いました「日本では俺様のAndroidのシェアが低すぎる」』となるだろうか.
フィーチャーフォンも含めて考えれば,通信料は特段に高い訳ではないし,何か特別な政策が必要な状況では無いように思われる.


なお,上記の筆者はスマートフォン(フィーチャーフォン含まず)のシェアがもっと大きくなるべきだと考えているようだが,政治の力に頼らなくても自然に大きくなっていくと思われる.これは各通信キャリアの端末のラインナップをみれば明らかだと思う.上記筆者の別のブログ記事ではドコモの端末売り上げランキングの2位,3位にフィーチャーフォン入ったことが取り上げられているが,1位のスマートフォンと大差が付いていることは間違いないと思われる.実際,そのブログ記事に記載されている調査ではスマートフォンのシェアは順調に大きくなっている.
また,端末の技術基準適合証明の廃止について提案されているが,個人的には何らかの仕組みはあったほうがよいと思う.携帯電話の発する電波は他の端末にとってはノイズになるわけで,正しい仕様で電波を扱っているということを確認するプロセスは必須だと思う.

カーナビ向け経路探索の公知技術の紹介

本日,カーナビ向け経路探索の公知技術を紹介する発表を行ったので,そのスライドをアップします.「良い経路を見つけるための技術」と「高速計算のための技術」について話しました.すべてのトピックにリファレンスを付けてあるので,詳細を知りたい場合にはリファレンス先をご覧ください.
(下記のスライドだと文字が小さ過ぎるので,左下の「slideshare (View on SlideShare)」をクリックしてslideshareのページで見た方がいいかもしれません)


労働市場の未来について考えてみる - 接客優位論 -

最近,企業の業績不振やリストラのニュースを多く見る.かつて自分が働いていた携帯電話業界も日本勢はかなり厳しい状況である.そんな中,労働市場の未来についてよく考えるようになった.今日は現状の自分の考えについてまとめてみたい.


結論から言うと,今後の労働市場は広い意味での接客業が大半になると思う.なぜならば,機械化により多くの仕事が人間から機械に置き換わったとしても人間の相手をするのは人間がもっとも適しているからである.今後,様々な自動化技術と情報共有のプラットフォームの発展により,単純労働はものすごいペースで人間から機械に変わっていくだろう.そのとき人間は何をすべきであろうか.私は,機械に対する人間の最も優位な点は人間を喜ばせたり感動させたりすることであり,人間がやるべきことはそこにあると考えている.機械は確かに様々な不便を取り除いてくれる.しかし,機械から感動を得ることは少ないような気がする.もし感動することがあったとしても,それはその後ろにいる人間に感動しているのだと思う.

接客業とは人間に接する仕事のことである.直接人に会うような仕事はもちろん接客業だが,ここではもう少し広い意味で接客業を捉えたい.製品やサービスにおいて人間が接する部分を作る仕事も広い意味での接客業と呼ぶことにしたい.ただし,特定の個人について良く知った上で,その人のためだけに製品やサービスが作られる場合のみを接客業と呼ぶことにする.つまり,担当する顧客一人一人についてよく知り,よく考えた上で,顧客が接する様々なものを直接改善していくのが接客業である.例えばソフトウェアにおいては,特定の個人のための専用のユーザインターフェースを開発する仕事は接客業といえる.また,特定の個人のためのコンテンツ作成や情報収集,レコメンデーションなども接客業となる.しかし,Webサービスにおけるユーザ属性等を利用したパーソナライズ機能等の開発は接客業に含まれない.接客業は顧客を最も喜ばせることができるが,個別の客を扱うことから効率化に限界がある.なので,機械化が進む社会においても,接客業の労働市場が縮小し続けることはない.

別の視点として,戦略論の立場から考えてみる.著書「競争の戦略」において,ポーターは成熟期に移行する市場では企業は以下の3つの戦略のいずれかを選択せざるを得ないと述べている.

  • コストをできるだけ下げて,価格競争で勝つ(低コスト戦略)
  • コストをかけて,他社と差別化を行う(差別化戦略
  • 特定顧客に特化してニーズを満たすことで,顧客の満足度を向上させる(集中戦略)

社会全体が成熟した時の労働市場についても基本的には同じことが言えると思う.つまり個々の労働者は上記の3つの戦略からどれかを選択することになる.しかし,最後に残るのは集中戦略しかないと思う.低コスト戦略(つまり低賃金で働くということ)については確かに選択されるだろうが,いずれは限界がくる.差別化戦略については,未来の情報化社会においては優位性を保てる期間がどんどん短くなるために,継続的に差別化戦略を選択できる労働者は少なくなっていくだろう.なので,多くのプレーヤは集中戦略を取らざるをえなくなる.また,集中戦略を取った場合,顧客に接しない部分の仕事はどんどん機械に置き換わっていき人間は顧客に接する部分の仕事に多く取り組むことになるだろう.つまり多くの労働者は接客業に従事するということである.


機械よりも人間が優れていることとしてよく言われることに創造性がある.確かにその通りだと思うし、機械がどんなに進化したとしても,創造性が必要とされる仕事はいつまでも必要とされつづけるだろう。例えば,基礎研究や芸術的なものは常に必要とされる。しかし接客的な要素を含まない万人向けの仕事に取り組む人はどんどん少なくなるだろう。なぜならば、未来の社会では一人の成果を即座に全員で共有できるようになるために,労働者間の競争がより激しくなるからである。一方で特定の客に特化した創造性はいつまでも必要とされつづけるだろう。つまり,接客業が主流となる社会では,創造性はより少ない顧客にむけて使われることになると思われる.


以上が私の現状の考えである.現状人間が行っている多くの仕事は将来的には機械に置き換わるだろう.そうすると,様々なところで失業の不安をあおる言論がなされるかもしれない.確かに一時的には多くの失業者が出るだろう.しかし,長い目で見れば,接客業の市場拡大により,失業者が極端に多い状況が続くことはないと考えている.すなわち労働志願者は対人的な仕事を選択することができるようになるのである.かっこ良くいえば,「あなたの目の前にいる人のことを一番考えてあげられるのはあなたなのだ」となるだろうか.なので,例えば,他人とスキルの差別化ができないことに対して,過度に悲観的になったりする必要はないと考えている.

作文技術について:パラグラフ(段落)の書き方

少し前に英語論文の作文技術についてレクチャーを受ける機会があった.とても参考になったので,今日はその一部を紹介したいと思う.このレクチャーの内容について,受講前は「英語表現」を学ぶ授業だと思っていたが,実際に受講してみると主に「作文技術」を学ぶ授業だった.英語論文の作文に関しては様々な標準的な決まり事があるらしい.例えば,全体のスタイルに関してはIMRAD形式が挙げられる.今日は,それらの決まり事の中から,パラグラフ(段落)を取り上げたいと思う.

パラグラフは文章を構成する際の重要な基本単位である.良いパラグラフ構成は話の流れを明確にし,読者の理解(follow)を容易にする.英語論文においては,1つのパラグラフでは1つの論点(topic)のみを扱うことが良いとされている.日本語では1つのパラグラフで扱う論点は1つとは限らない(1つもなかったり2つ以上あったりする)が,英語論文におけるパラグラフの考え方は日本語で文章を作成する際にも参考になると思われる.以下,英語論文のパラグラフに関して,レクチャーおよびレクチャーに関連して読んだ書籍の内容をまとめてみたいと思う.

パラグラフ(段落)とは?

パラグラフは1つのtopic(論点)について説明するための単位であり,通常複数の文から構成される.そして,各パラグラフの中にはkey sentence(またはtopic sentence)と呼ばれる文が必ず存在し,key sentenceの中でtopicのmain idea(要点)が明示的に示される.パラグラフ中の残りの文は,main ideaをサポートするための文または前後の段落とのつなぎの文である.

なぜパラグラフによって論文を理解しやすくなるのか?

1つのパラグラフに1つのtopicのみが書かれているため,どこに何が書かれているかが明確になる.また,読者は各パラグラフのkey sentenceをつなげるだけで論文の流れを理解することができる.

分かりやすいパラグラフを書くために注意すべきこと

以下に,パラグラフを分かりやすく記述するために注意すべき点について列挙する.これは英語論文のパラグラフを書く際の注意事項であるが,日本語のパラグラフを書く際にも有効であると思われる.

  • 分かりやすいパラグラフを記述するための注意事項
    1. 各パラグラフに対してkey sentenceを明示的に記述する(key sentenceを省略しない)
    2. key sentenceをサポートする記述においては,自明であっても論理の流れを省略しない

例えば,あるパラグラフにおいて,下記のことを述べたいとする.
「A → C である.なぜならば A → B かつ B → C だからである」
ここで,B → C は自明で公知の事実とする.このような場合,日本語の文章では「A → B である」としか書いていないことがよくあるらしい.すなわち,上記の注意事項に反して,key sentenceである 「A → C 」の記述や話の論理的な流れとして必要な「B → C 」の記述が省略されてしまうことがあるらしい.理科系の作文技術という本の中でこのような書き方をしている例が紹介されていたので,引用しておく.

重力波が実在するかどうかはまだ確かでない.しかし,最近,テーラーらは連星のパルサーの軌道周期がごくわずかずつ短くなりつつあるらしいと言っている.

理科系の作文技術 p.77

おそらく,この文章において言いたいこと(key sentence; A → C)は「テーラーらは重力波の存在の証明となる実験結果を得たと述べている」というようなことだと思われるが,上記の文章では省略されている.また,連星のパルサーの軌道周期と重力波の存在の関係(B → C)についても,(おそらく専門家にとっては自明なために)省略されている.

上記例のような省略を多用する文章は,専門知識を持った人しか読むことができず,また,専門知識を持っていたとしても,注意深く読まなくては理解(follow)できない.自分の文章を多くの人に読んでもらいたいと思うならば,このような書き方は避け上記の注意事項を考慮した方が良い.

パラグラフの書き方まとめ

繰り返しになるが,パラグラフの書き方についてまとめると以下のようになる.

  • 1つのパラグラフでは1つのtopicのみを扱う
  • 各パラグラフにおいて,明示的にkey sentenceを記述する(key sentenceは省略不可)
  • key sentenceをサポートする記述においては,自明であっても論理の流れを省略しない

参考図書

この文章を書くにあたっては,以下の本も参照した.

  • 理科系の作文技術:4章でパラグラフについて詳細に説明されている

理科系の作文技術 (中公新書 (624))

理科系の作文技術 (中公新書 (624))

  • 科学者・技術者のための英語論文の書き方―国際的に通用する論文を書く秘訣:30章でパラグラフについて説明されている

科学者・技術者のための英語論文の書き方―国際的に通用する論文を書く秘訣

科学者・技術者のための英語論文の書き方―国際的に通用する論文を書く秘訣

  • 作者: ロバート・M.ルイス,エバン・R.ホイットビー,ナンシー・L.ホイットビー,Robert M. Lewis,Evan R. Whitby,Nancy L. Whitby
  • 出版社/メーカー: 東京化学同人
  • 発売日: 2004/01
  • メディア: 単行本
  • 購入: 9人 クリック: 110回
  • この商品を含むブログ (6件) を見る

  • The Elements of Style, Fourth Edition:13章でパラグラフについて説明されている.日本語訳(旧版)では9章.

The Elements of Style, Fourth Edition

The Elements of Style, Fourth Edition


「理科系の作文技術」は日本語の作文技術についての本だが,本文にも書いてある通り,パラグラフの記述については,英語のパラグラフの影響を受けている.
「科学者・技術者のための英語論文の書き方」は英語論文の書き方について日本人向けに分かりやすくまとめられている.
「The Elements of Style, Fourth Edition」は英語の作文技術について極めて簡潔にまとめられている.

英語文書作成のためのスタイルマニュアル

少し前に,英語で文書を作成する際の文法等のガイドラインについて教わった.英語文書作成に関してはいろいろな団体がマニュアルを作成している.それらのマニュアルでは句読点やハイフンの使い方,文法,図表作成など様々なことが規定されている.

以下,備忘録としていくつか有名なものをメモしておく.

まずはChicago Manual.

The Chicago Manual of Style

The Chicago Manual of Style


英語文書作成の際に汎用的に使用されるマニュアルらしい.かなり細かいことまで規定されており,上記のバージョンは1000ページを超えている.

次はChicago Manualに準拠した研究手法と論文執筆のためのガイドブック.

シカゴ・スタイル 研究論文執筆マニュアル

シカゴ・スタイル 研究論文執筆マニュアル


これは日本語版.英語文書作成のルールについてはChicago Manualを短くまとめたような内容になっている.加えて,研究を始めてから文書にまとめるまでのプロセスについてそれぞれどのように進めるべきかについて解説されている.

次は効果的な図表の作り方についての標準的な解説本.

The Visual Display of Quantitative Information

The Visual Display of Quantitative Information

次は社会科学系の論文でよく使われるマニュアル.

APA論文作成マニュアル 第2版

APA論文作成マニュアル 第2版

  • 作者: アメリカ心理学会,前田 樹海,江藤 裕之,田中 建彦
  • 出版社/メーカー: 医学書院
  • 発売日: 2011/03/01
  • メディア: 単行本(ソフトカバー)
  • 購入: 3人 クリック: 17回
  • この商品を含むブログ (1件) を見る

上記は日本語版.箇条書きが効果的に使われていて読みやすそう.上記に関連して,APAの句読点規則についてまとめたドキュメントを見つけたのでメモしておく.
PUNCTUATION, APA STYLE

最後は英文作成のルールが極めて簡潔にまとめられていることで人気の本.

The Elements of Style, Fourth Edition

The Elements of Style, Fourth Edition


一緒に話を聞いていたネイティブの方もこの本を勧めてた.日本語版については書籍(英語文章ルールブック)もあるが,下記のページのほうが便利かも.
The Elements of Style