質問: しかし、複数の小説テキストを取得する場合、書式が異なっており、1つのプログラムでスクレイピングから`json`書き出しまでどのように行えば良いのかわからない状態です。 こういった場合、全ての書式に合わせられるプログラムを書くのはむずかしいので、何から始めたら良いのかアドバイスをいただきたいです。 書式が異なる具体的説明 ----------- 例えば、モンゴメリの「Anne of Green Gables」と「Chronicles of Avonlea」では、著者も同じでテキストの形式が似ています。 しかし、シェイクスピアの「Hamlet」では、モンゴメリの文書にはなかった`Dramatis Personæ`という登場人物の紹介項目があったり、以下のように台詞と話者の明記方法もちがいます。 ``` #モンゴメリ “I’m not expecting a girl,” said Matthew blankly. “It’s a boy I’ve come for. He should be here. Mrs. Alexander Spencer was to bring him over from Nova Scotia for me.” #シェイクスピア MARCELLUS. My good lord. HAMLET. I am very glad to see you.—Good even, sir.— But what, in faith, make you from Wittenberg? ```
回答: 残念ながら、それぞれの形式に合わせて個別に処理するようなプログラムを書きたくないということであれば、プログラムへ入力する前に手作業で形式を揃える前処理をするしか無いでしょう。 アノテーションのついていないプレーンテキストを処理する場合はこのような前処理も自分で行う必要があります。この用途だとむしろある程度のアノテーションが既に付いている HTML 版を元に処理する方がラクかもしれません。 また、質問の本題とは離れますが質問文にあるような JSON では会話を上手く表せません。同じ key が頻出してしまうでしょうし、そもそも JSON の object は順番が保証されていません(array とは異なります)。