Translate

Post Date:2023年7月31日 

ストレスフリーな読書体験ができる新しいKindle Paperwhiteの魅力

Kindle Paperwhite 第7世代と第11世代の比較

白ヤギさん(Kindel Paperwhite 第7世代)から、Kindle Paperwhite 第11世代(シグニチャーエティション)に買い換えました。更なる進化を遂げた新しい Kindle Paperwhite は、電子書籍リーダーとしてストレスフリーな読書体験を提供してくれます。

以下は、New Kindle Paperwhite(第11世代) の5つの特徴です。

  1. 大きな画面で漫画も見やすく
    ディスプレイが6.0インチから6.8インチに拡大し、コミックス(漫画)や固定レイアウトの本が読みやすくなりました。
  2. 調調調節ライトで更に目に優しく
    フロントライトを反射させるE-inkスクリーン自体が目に優しいですが、さらに色調調節ライトによって寒色系から暖色系へと調節できるため、環境や読書スタイルに合わせた快適な読書が楽しめます。またダークモードも搭載しており、夜間の読書時にも目の負担を軽減できます。
  3. 固定フォーマットの拡大が素早く
    ページめくりの速度が20%早くなっただけでなく、固定フォーマットの本の拡大・縮小も素早く行えます。イラストや図表が多い固定フォーマットの本でも、快適に読み進めることができます。
  4. お風呂タイムに読書が可能に
    IPX8等級の防水性能により、湯船に浸かりながらリラックスした読書タイムを楽しむことができます。
  5. 沢山の本が持ち歩ける
    ストレージ容量は、8GBモデル以外に16GB/32GB(シグニチャーエディション)があります。サイズが大きい固定レイアウトや漫画本でも、たくさんの本をKindleで持ち運ぶことが可能です。

すべての書籍が電子書籍にはなっていないので、読書をKindleだけでとはなりませんが、とても魅力的な電子書籍リーダーです。


New Kindle Paperwhiteの実際の画面サイズ(cm)

New Kendle Paerwhiteの画面サイズは6.8インチです。この6.8インチというのはディスプレイの対角線の長さで、センチメートルにすると約172.7mmです。横幅と縦幅の比率が約4:3なので、横幅は約107.2mm、縦幅は約143.2mmとなります。

しかし、これはディスプレイの有効サイズではなく、画面全体のサイズです。有効サイズは、ベゼル(表示部分を支持や保護するための枠の部分)を除いた部分なので、もう少し小さくなります。

実際に計測してみると、Kindle Paperwhiteのディスプレイは、

横幅:約104mm
縦幅:約139mm

でした。


6.8インチでは、漫画は原寸の約8割で表示

一般的なコミックス(漫画)は、B6判(横幅128mm × 縦幅182mm)です。Kindle Paperwhite 6.8インチの有効サイズである横幅 約104mm × 縦幅 約139mm のディスプレイで、コミックスがどれくらい縮小されて表示されるかを横幅を基準に計算してみました。

  1. B6版のコミックスの標準的なコマ割りの場合、1ページの左端の線から右端の線までは約104mmです。
  2. Kindle Paperwhite 6.8インチだと、これが約84mmになります。
  3. つまり、B6判のコミックが、84/104 ≒ 約81%(2割弱)縮小表示されます。

次に、縦幅の最大を基準に考えます。B6判コミックスの最大は縦幅182mmなので、縦幅139mmのKindle Paperwhiteで表示すると、139/182≒約76%(約2割5分)弱縮小表示されます。横幅は本を綴じている部分があるために最大にはならないので、横幅を基準とした縮小率の掲載は割愛します。

目安として、コミックスよりおおよそ2割小さくなると考えてください。文字や絵も小さくなりますが、読むのにギリ苦にならない縮小サイズです。


ストレージサイズの選び方

Kindle Paperwhiteを選ぶにあたって、最も悩ましいのが、ストレージサイズです。8GB/16GB/32GB(シグニチャーエディション)の3種類があります。

Kindle Paperwhite は8GBモデルでも、数千冊の本を持ち歩けると謳われています。しかし、これはサイズの小さいリフロー型の電子書籍で計算した場合です。Kindle本には下記の2種類のフォーマットがあります。

リフロー型:

テキストのレイアウトが画面サイズや文字サイズ合わせて流動的に変化する電子書籍で小説など文字主体の本です。

    リフロー型のメリット

  • 文字サイズ、余白、行間などを自由に変更して読むことができる
  • 全文検索や辞書機能などを利用することができる
  • サイズが小さい

固定レイアウト:

通常の書籍と同じように、ページ数やレイアウトが固定されている電子書籍で、コミック、雑誌、それ以外にも図表が多い本も固定レイアウトが多いです。写真・絵・図表を含むのでサイズも大きくなります。


Kindleに何冊の本がダウンロードできるのか?

Kindle Paperwhite(シグニチャーエディション) のストレージサイズは32GBです。

『設定』 → 『端末オプション』 → 『詳細オプション』 → 『ストレージ管理』

で、確認すると、

Kindle Paperwhite Signituire Edition のストレージサイズ

使用 2.89GB + 空き 24.41GB = 27.3GB となっています。更に「その他」の254MBはシステムファイルそして、辞書ファイル(英語、日本語)で100MB超なので、実際に本を保存できるのは約27GBです。

8GBモデルでは、実際に本を格納できる領域は約6GBとなります。

リフロー型の小説は、1MB - 5MBと小さいですが、コミックや雑誌になると50MB - 150MBにもなります。コミックを中心に読むのであれば、8GBモデルだと102冊(平均:60MB/冊で計算)です。50MB/冊 平均でも122冊です。

もちろん全ての本を端末に保存しとく必要性もありませんが、100冊というのは現実的な数字です。


Kindle本のサイズの確認方法

Kindle本のサイズは、Amazonの商品ページに記載されていますが、Kindle Paperwhiteにストレージ管理での表示と異なります。Kindle端末では、本をダウンロードすると自動的に端末に最適化されたファイルサイズに変換されているようです。

Amazonでは、「見える子ちゃん9」のサイズは125,074KB(122MB)です。

Kindle本 見える子ちゃん9 のファイルサイズ

しかし、Kindle Paperwhiteでは、68MBとなっています。

Kindle Paperwhiteにダウンロードした「見える子ちゃん9」のファイルサイズ

16GB 広告なし がお勧めな理由

以前使用していたのが4GBモデルでしたが、途中から購入した書籍が入らなくなり、結構ストレスでした。New Kindle Paperwhite は、8GBモデルと16GBバイトモデルで1,000円しか違いません。1,000円をケチらず迷わず16GBを選びましょう。

また、「広告なし」オプションは「広告あり」より2,000円高くなりますが、本を読み始めるときにロック画面でスワイプが必要となる「広告あり」に比べ、『広告なし』はスムーズに起動でき、ホーム画面下部の広告もなく邪魔になりません。断然『広告なし』をお勧めします。


シグニチャーエディションの違い

Kindle Paperwhiteには、もうひとつ特別モデルであるシグニチャーエディションがあります。広告ありのオプションはないので16GB 広告なし モデルと比較すると2,000円の差です。広告なしの新しいカラーモデルも選べるのも魅力です。

Kindle Paperwhite Signituire Edition

シグニチャーエティションの機能的な違いは下記の3点です。

  • ストレージ容量(32GB)
  • 明るさ自動調整機能
  • ワイヤレス充電
  • デニムブルー・ライトブルーが選べる

ワイヤレス充電は、別途、充電器が必要となりますし、Kindle Paperwhite は、充電頻度が高くないので、Type-Cでの充電で十分です。明るさ自動調整機能は、スマホでもお馴染みで、外で読んだり、暗いところで読んだりするのに便利ですが、手動でも簡単に切り替えられます。しかし、カラーは「広告なし」で新色のデニムブルー、ライトグリーンが選べるのはシグニチャーエティションだけです。


フィルムとケースは必要?

ケースに入れて持ち歩くなら保護フィルは不要だと思います。純正のケースでなくてもサードパーティ製のケースが色々とあります。

Kindle Paperwhite 第11世代 ケース

下記の第11世代用のケースをを購入しましたが、いい感じです。

Post Date:2023年7月23日 

5000円以下で買えるドイツ製万年筆のおすすめ3選!機能美と書きやすさが魅力

Moleskine Pen(Moleskine x Kaweco)

万年筆を持つと大人になった気分になれます。それは、ただの筆記具ではなく、書く喜びを感じさせてくれる特別な存在です。万年筆はペン先の角度やインクの濃淡、筆圧の微妙な変化によって、文字の表情が変わります。そのため使う人の個性や感情を反映させた、味わい深い文章を綴ることができます。

では、なぜ万年筆に魅力を感じるのでしょうか。以下に3つの理由をあげます。

  1. 保有することの喜び(愛着): 万年筆は長く愛用できる筆記具であり、所有すること自体が喜びや愛着を感じさせてくれます。自分だけの特別なペンを持つことで、書く行為がより特別なものとなります。
  2. 自分の個性を表現できる: 万年筆は数多くのインクカラーや書き味のバリエーションがあり、使い手の個性や好みに合わせて選ぶことができます。自分の個性や感性を文字に込めることで、より深い表現が可能になります。
  3. 筆圧が必要なく書きやすい: 万年筆は書き始めから滑らかな書き心地を提供し、ほとんど筆圧が必要ありません。これにより、疲れることなく長時間の筆記が可能で、書く行為がより楽しい体験となります。

万年筆には文字を書くための道具として以上の魅力があります。自分の感情と個性を文字という形で紙に残すことができ、書く喜びを再発見することで日常が豊かに彩られること間違いなしです。


高級万年筆は必要?

万年筆の値段はピンキリです。大きく値段が変わるのがペン先(ニブ)と軸の材質です。

ペン先金ペン先スチールペン先
弾力柔らかい硬め
耐久性腐食しづらい, 摩耗しにくい金より劣る
価格高い安い

金ペン先は長年使っていると書き手に馴染むともいわれていますし、修理や調整も可能です。そして、軸は、高級万年筆だとセルロイド、エボナイト、金属、木製などですが、エントリーモデルの多くはABS樹脂です。

国産で安価な金ニブ万年筆も販売されています。実売価格で1万円を切っているものをあります。

  • セーラー万年筆 プロフィットライト ゴールドトリム(14K)
  • パイロット カスタム 74(14K+ロジウム)

しかし、気に入ったものをと考えるとやっぱり高価です、、、。


ドイツ製のエントリーモデルを選ぼう

ドイツ製のエントリーモデルの万年筆は、その多くが必要最低限の要素に絞り込まれ、機能性と使いやすさを追求したデザインが特徴です。伝統的なクラシックなデザインではなく、モダンで洗練されたスタイルは魅力的です。さらに、エントリーモデルであっても、優れた書き心地を提供しています。

手頃な価格でありながら、使いやすさを重視して設計されており、滑らかで安定した書き味が特長です。細部にまでこだわったドイツ製の品質は、心地よい筆記体験を提供してくれます。

万年筆は、書きやすく、カッコいいと感じられることが重要です。手にしっくり馴染む使い心地とスタイリッシュなデザインが、筆記体験に愉しみと満足感をもたらしてくれます。

書きやすさと魅力的なデザインにより、初心者から上級者まで、幅広いユーザーに向けてデザインされたドイツ製のエントリーモデルの万年筆は、品質と使いやすさを求める方にぜひおすすめしたい一品です。


オススメのドイツ製 エントリーモデルの万年筆

ドイツの老舗筆記具メーカーで人気のあるファーバーカステル、カヴェコ、ラミーから下記の3種類のエントリーモデルを紹介します。


FABER-CASTELL HEXO(ファーバーカステル ヘキサ)

Hexo(英語読みでヘキサ)は、1761年に創業されたドイツの筆記具メーカーであるFaber-Castell(ファーバーカステル)によって製造されたエントリーモデルの万年筆です。手頃な価格帯(4,950円)でありながら、Faber-Castellの品質とデザインを堪能できる万年筆です。

FABER-CASTELL HEXOの特徴
  1. ファーバーカステルの原点、鉛筆を模した六角形軸の万年筆
  2. ボディは軽量で丈夫なアルミニウム素材(20g)
  3. ペン先はステンレススチール製でF(細字)/EF(極細)の2種類
FABER-CASTEL HEXOの字幅
  • Extra fine (EF) - 約0.3mm
  • Fine (F) - 約0.4 mm

FABER-CASTEL Ambition EFを使っていますが、かなり文字幅は細く、ボールペンに近い感じです。ノートにメモをとるには最適ですが、文章を書くならF(Fine)がいいのではないかと思います。


Kaweco CLASSIC Sport

Kaweco(カヴェコ)は1889年創業のドイツの筆記用具メーカーです。CLASSIC Sport(クラシックスポーツ)は、1972年のミュンヘンオリンピックの際に公式ペンとなった商品の復刻版です。3,850円という手頃な価格も魅力的です。

Kaweco CLASSIC Sportの特徴
  1. 手のひらサイズ(閉じた状態で10.5cm)、キャップを付けて使うと標準サイズ(13cm)に
  2. ABS樹脂製で軽量(11g)
  3. スチール製のペン先で EF/F/M/B/BB
Kaweco CLASSIC Sportの字幅
  • EF(極細字)約0.3mm
  • F(細字)約0.5mm
  • M(中字)約0.7mm
  • B(太字)は約1.0mm

Moleskine Pen(Moleskine x Kaweco)

Kaweco Classic Sport は、キャップを閉じた状態だと10.5cmとかなり短く、他の筆記用具とのバランスが悪い。かといってKaweco Al Sport は13.5cmだけど値段が高くなります。

「惜しい、、、」と、思っていたら、ノートで有名なモレスキンからカヴェコとのコラボレーションしている万年筆が発売されていました。Kaweco Classic Sportがベースになっているようですが、Moleskine Penはキャップを閉じた状態で約14cmです。

キャップは同じ8角形ですが、ボディは15角形と洗練されたデザインです。またグリップ部は三角形で握りやすくなっています。

この万年筆は、過去へのノスタルジアと現在のクリエイティビティをつなげ、紙にアイデアを書き留めるクリエイティブな喜びを体験できるというとっても素敵なコンセプトで作られています。

Moleskine Penの特徴
  1. グリップが指と親指の間にぴったりとフィット
  2. ABS樹脂製で軽量だがしっかりとした重さ(約14g)
  3. ニブは金メッキでF字

ニブ幅の詳細の記載はありませんが、Kaweco Classic Sprotと同じではないかと思います。カラーはブラック、レッド、ブルーの3種類があります。


LAMY safari

LAMY(ラミー)は、1930年にドイツで創業された筆記具メーカーです。Safariは、カジュアルでモダンなデザインで、5,000円以下の手頃な価格なので万年筆初心者に人気があります。とても書きやすい万年筆で自分もLAMY Safariはずっと使い続けています。

LAMY safariの特徴
  1. 三角形のグリップでペンを持ちやすい
  2. ニブはステンレススチール製 EF/F/M/B で交換可能
  3. ボディはABS樹脂で色が多彩
LAMY safariの字幅
  • EF(極細字)約0.4mm
  • F(細字)約0.5mm
  • M(中字)約0.6mm

ニブ(ペン先)がAmazonでも簡単に手に入り、交換作業も簡単です。EF(極細字)、F(細字)、M(中字)、B(太字)、1.1mm(カリグラフィー)、1.5mm(カリグラフィー)、1.9mm(カリグラフィー)、LH(左利き用)と多彩な種類があり、更にシルバーとブラックがあるのでボディーカラーに合わせて選べます。

万年筆に慣れてきて、もう少し太い字が欲しい、細い字が欲しいという場合にニブだけが交換できるのは経済的にも環境的にも優しいパーツ交換です。EF/F/M/B 以外に 左き利き用、カリグラフィー用の1.1mm、1.5mm、1.9mmと種類も豊富で色はボディー色に合わせてシルバーとブラックを選べます。

EF/Mを使っていますが、最初の1本であればF(Fine)がいいかと思います。「細すぎる」「太すぎる」と購入後に思ったらニブを交換できるのがLAMYの強みです。

Safariは色が多彩ですが、若者向きだけではなく、伊東屋とコラボしたsafari×itoya copper 01などは、とても落ち着いた色合いです。

またLAMYは2022年春に漢字筆記に特化したペン先「漢字ニブ」を発売。先端から両サイドを削り込んだような独特な形状や、柔軟性を高めたペン先のしなり具合は、「とめ」「はね」「はらい」といった漢字特有の表現をサポートするために開発されたものです。


ボールペンのような筆致のEF、万年筆らしさのF、個性派のM

日本語はアルファベットの文字より構造が細かいです。ノートに細かい字を書くのであれば細い字幅のEF(Extra Fine)かF(Fine)です。

EFとFの違いは微妙ですが、Fの方がEFよりも字幅が太いので、万年筆らしい筆致になります。最初の一本であれば、万年筆らしい風合いがありながら、ノートや手紙などさまざまな用途に万能に使用できるF(Fine)をオススメします。

M(Medium/ミディアム)は、さらに万年筆らしい筆致で個性が現れます。文字幅はかなり太くなり個性を際立たせる一方で、細かい文字には不向きです。手紙やアイデアを書き出したりするときなど、少し大きめな文字を書くときには重宝します。また美文字練習にも最適です。

各メーカーで、ニブ幅や文字幅の記載をしていますが、万年筆の字幅には明確な規格がありません。同じ字幅の記載でも製造メーカー、モデル、使うインク、そして筆圧や握り方などによっても異なります。

下記は一般的な傾向です。

字幅特徴
EF(Extra Fine)細くシャープな文字が書けます。ボールペンに近い感覚で手帳やノートに小さい文字で書くのに適しています。
F(Fine)EFほどの細さがない分、万年筆らしい文字が書けます。手帳やノート、一般的な筆記に向いています。
M(Medium)視認性が高い太い文字が書けるので手紙や字の練習に適しています。

実際に下の写真のドイツの万年筆3種(Faver Castell Ambiton EF, Moleskin Pen F, LAMY Safari M)とフランスの万年筆(Waterman Phileas M)で字幅の確認、

書き比べたのがこちらです。

字幅の比較

インクも違うので一概に万年筆の差とも言えませんが、Faver-Castell Ambition EF と Moleskine Pen F で差がなかったり、LAMY Safari M より、Waterman Phileas M の方が太かったりと、やはりメーカーとブランドによって字幅はまちまちです。


Moleskine Penはシンプルでスタイリッシュな万年筆

F字幅の万年筆を購入しようと、Faber-Castell HexoとMoleskine Pen(Moleskine x Kaweco)で悩みましたが、Kawecoの万年筆を使ったことがなかったので、Moleskine Pen(ブルー)を購入しました。

ボディは太めですが、無駄のない洗練されたデザインが素敵です。また金色に輝くニブはワンポイントで高級感があります。このミニマルでモダンなデザインと金色のニブが、ABS樹脂製のチープなボディーをスタイリッシュに仕上げています。

Moleskine Penのペン先

LAMY Safariと同じようにグリップの部分が三角形になっていて持ちやすくなっていますが、ペンを持った感じはSafariより少し太く感じます。


Moleskine Penの書き味

Moleskine Penは、書くときには若干の筆圧が必要です。Faber-Castell Hexoは使ったことがないため比較はできませんが、Faber-castell AmbitionやLAMY Safariは筆圧をかけずに書くことができます。

万年筆は一般的に滑らかで柔らかい書き心地を持ち、筆圧をほとんど必要としないため、長時間の筆記でも疲れにくいという利点がありますが、MD万年筆も同様に筆圧がやや必要でした。しかし、使い込むうちに手に馴染み、自然な筆圧で書けるようになりました。

Moleskine Penも同じように慣れの問題かと思います。初めて使った際には筆圧を調整する必要があるかもしれませんが、徐々に使い込むことで快適な筆記体験を得られるようになると思います。

万年筆には個体差があるため、初めて使った際には違和感を感じることもありますが、使い続けるうちに自分に合った書き方や筆圧が見つかります。慣れを重ねながら、愛着のある万年筆との絆が深まっていくことを楽しんでください。

Faber-Castell Ambition EFが約0.4mmなので、Moleskine PenがKaweco Classic SportのF(Fine) 約0.5mと同じであれば、少し太くなることを期待していました。しかし、実際に書き比べてみると、0.1mmの差は目に見えるほどの違いではなく、ほぼ同じような字幅でした。

ただし、Ambitionが「カリカリ」とした筆記感なのに対し、Moleskine Penは「シャリシリ」と滑らかに紙の上を走る感触があります。ペンの太さと筆感の違いを楽しみながら慣れていきたいと思います。

Moleskine Penの字幅は細め

Moleskine Penと併せて、Kaweco Classic Sport 用のKaweco ミニコンバーター2を購入しました。とても小さくて、装着してピストンが伸びている状態でもこんな感じです。

Moleskine Pen に KAWECO ミニコンバーター2を装着

Kaweco ミニコンバーター2は、「ピストン式コンバーター」です。ピストンを押し込んだ状態で、ペン先をインクボトルに入れてからゆっくりとピストンを引っ張るとインクが補充されます。

対象万年筆は、

  • クラシックスポーツ
  • アイススポーツ
  • スカイラインスポーツ
  • プラススポーツ

と、ありますが、Moleskine Penでも使えます。


Moleskine Pen しばらく使った感想

違和感は慣れの問題だと前述しましたが、新しい万年筆に慣れるためにしばらくMoleskine Penだけを使っていました。購入時に付属していたインクカートリッジを使い終わり、コンバーターに切り替える頃には、「太めの握り心地」も「少し筆圧が必要」にも慣れていました。

筆圧が必要と感じるのは、インクフローが悪いからではなく、ペンの軽さからでした。コンバーターを挿入した状態で実測値で14gは、持っている万年筆の中でMD万年筆の16gよりも軽いです。軽い万年筆の場合は、万年筆の自重で紙の上で滑らせるのではなく、ペンを紙に当てる力が必要なのだとわかりました。


ペンケースも使おう

Faber-Castell Ambitionを購入したときに万年筆を1本だけさせる福岡のファッションブランドの皮のペンケースを購入したのですが、Ambitionは細く、そのまま差し込むとペンが滑り落ちてきてしまい、ペンクリップで挟む必要がありました。

ちょっとしたことですが、面倒に思い使っていませんでした。しかし、Moleskine Penは太さがあるので差し込んだだけでも滑り落ちてくるようなことはありません。

FREESEのペンケースにMoleskine Penを収納

ペンケースにも活躍の場ができました。

Post Date:2023年7月16日 

Goolge Colabでお手軽テキストマイニング(日本語前処理)

象と散歩:pythonで遊ぶ 

Google Colaboratory は、Google アカウントさえ持っていれば、Python を実行できる素晴らしい環境です。準備やインストールが不要で、手軽に Pythonプログラミングを楽しめます。

テキストデータの分析(アンケートのフリーコメントや問い合わせ内容など)も、Google Colaboratory の環境を使えば、手軽にPythonでテキストマイニングができます。

今回は、テキストの前処理に関する2つのステップについて説明します。

  1. テキストの読み込み テキストファイル、CSV、Excel ファイルなどに保存されたテキストデータを読み込む方法です
  2. 読み込んだテキストの正規化 テキストの表記の揺れを少なくして文章を分析しやすい形式に変換します

1. 対象ファイルを読み込む

3つの方法でテキストデータを読み込む方法について説明します。2番目と3番目の方法では、pandasパッケージを使用します。

  1. テキストファイルの読み込み テキストファイルの中にあるテキストデータを読み込む方法です。open()関数を使用してファイルを開き、ファイルの中身をテキストデータとして抽出します。
  2. CSVファイルの読み込み CSVファイルに格納されたテキストデータを読み込む方法です。pandasパッケージのread_csv()関数を使用します。この関数にはCSVファイルのパスを指定し、データをデータフレームとして読み込むことができます。
  3. Excelファイルの読み込み Excelファイルに格納されたテキストデータを読み込む方法です。pandasパッケージのread_excel()関数を使用します。この関数にはExcelファイルのパスを指定し、データをデータフレームとして読み込むことができます。

ファイルのアップロード

Google Colaboratory ではGoogleドライブをマウントして利用することもできますが、下例は、ファイルをセッションストレージ(セッションが接続されている間だけ使えるストレージ)の "/content/sample_data" にアップロードする方法です。

  1. Colabの左端にあるファイルアイコンをクリック(下図オレンジ枠)
  2. sample_dataフォルダを開く
  3. セッションストレージにアップロード(下図グリーン枠)

ドラッグアンドドロップでもアップロードできます。

Google Colaboratory:ファイルのアップロード

アップロードするsample.txtの内容は下記のようなものです。

<sample.txt>
甘くてフルーティーな味で最高
チョコレートとストロベリーの組み合わせが最高!
香りが良くて食べやすい!おすすめです。
子供たちも大喜びのおいしさ!リピート決定。
さわやかな酸味と濃厚なチョコのバランスが絶妙。

エンコーディング

テキストデータを読み込む際には、エンコード(Encoding)を指定する必要があります。エンコードは、テキストデータのバイト列(バイナリデータ)への変換方法や規則を指定するものです。日本語などの2バイト文字データを正しく扱うためには、適切なエンコードを指定する必要があります。

一般的なエンコーディングとしては、以下のようなものがあります。

  • UTF-8: 広く使用されるUnicodeエンコーディングで、多くのプラットフォームやシステムでサポートされています。MacやLinux環境でよく使われます。
  • Shift-JIS: 主にWindows環境で使われる日本語エンコーディングです。

下例は、/content/sample_data/にあるsample.txtを読み込むコードです。file_pathに読み込むテキストをフルパスで指定しています。パスは当該フォルダを右クリックして"パスをコピー"で取得できます。

Google Colaboratory:ファイルパスの取得

UTF-8のファイルを指定する場合です。変数 textに読み込んだ内容を格納します。

file_path = '/content/sample_data/sample.txt'
with open(file_path, 'r', encoding='utf-8') as file:
    text = file.read()

print(text)

Shift-JISの場合は下記のようになります。

file_path = '/content/sample_data/sample.txt'
with open(file_path, 'r', encoding='shift_jis') as file:
    text = file.read()

print(text)

print(tex)の結果です。

甘くてフルーティーな味で最高
チョコレートとストロベリーの組み合わせが最高!
香りが良くて食べやすい!おすすめです。
子供たちも大喜びのおいしさ!リピート決定。
さわやかな酸味と濃厚なチョコのバランスが絶妙。

エンコードがわからない場合

chardetは、Pythonで利用できるエンコーディング推定ライブラリです。テキストのエンコードがわからない場合は、chardetでエンコードを確認してファイルを読み込みます。

下例では、sample.txtを読み込んで何のエンコードかを調べた結果をfle_encordingに格納し、そのエンコーディングでファイルを再度読み込みます。

import chardet

# ファイルのエンコーディング情報を取得
file_path = '/content/sample_data/sample.txt'
with open(file_path, 'rb') as f:
    file_encording= chardet.detect(f.read())['encoding']

print(file_encording) #エンコード情報

# 取得したエンコーディング情報でファイルを読み込む
with open(file_path, 'r', encoding=file_encording) as f:
    text = f.read()

print(text)

CSVからの読み込み

CSV(カンマ区切り)の場合は、pandasのread_csv()関数を使って列名を指定してデータを読み込みます。

読み込むcsvは、1列目の列名が「no.」、2列目の列名が「回答」です。

<sample.csv>
no.,回答
1,甘くてフルーティーな味で最高
2,チョコレートとストロベリーの組み合わせが最高!
3,香りが良くて食べやすい!おすすめです。
4,子供たちも大喜びのおいしさ!リピート決定。
5,さわやかな酸味と濃厚なチョコのバランスが絶妙。

下例は、上記のCSVファイルのうち列名が「回答」となっている列を取得するコードです。改行区切りで変数 textに格納します。

import chardet
import pandas as pd

# ファイルのエンコーディング情報を取得
file_path = '/content/sample_data/sample.csv'
with open(file_path, 'rb') as f:
    file_encording= chardet.detect(f.read())['encoding']

# CSVファイルを読み込んでテキストデータを抽出
df = pd.read_csv(file_path, encoding=file_encording)
text = '\n'.join(df["回答"])  # 回答列名を適宜変更してください

print(text)

print(tex)の結果です。

甘くてフルーティーな味で最高
チョコレートとストロベリーの組み合わせが最高!
香りが良くて食べやすい!おすすめです。
子供たちも大喜びのおいしさ!リピート決定。
さわやかな酸味と濃厚なチョコのバランスが絶妙。

Excelから読み込む場合

Excelファイルから直接読み込むことも可能です。pandasのread_excel()関数を使います。シート名と列名の指定が必要です。

import chardet
import pandas as pd

# ファイルのエンコーディング情報を取得
file_path = '/content/sample_data/sample.xlsx'
with open(file_path, 'rb') as f:
    file_encording= chardet.detect(f.read())['encoding']

# Excelファイルを読み込んでテキストデータを抽出
sheet_name = 'シート1'  # 読み込むシートの名前を指定してください
df = pd.read_excel(file_path, sheet_name=sheet_name, encoding=file_encoding)
text = '\n'.join(df["回答"])  # 回答列名を適宜変更してください

print(text)

print(tex)の結果です。

甘くてフルーティーな味で最高
チョコレートとストロベリーの組み合わせが最高!
香りが良くて食べやすい!おすすめです。
子供たちも大喜びのおいしさ!リピート決定。
さわやかな酸味と濃厚なチョコのバランスが絶妙。

2. テキストファイルの正規化

読み込んだテキストの正規化(表記の揺れの是正)を行います。正規化=文字の統一化です。

NFKC(Normalization Form KC)は、Unicodeの正規化形式の一つであり、日本語のテキストに特に有用です。NFKC形式では、以下のような処理が行われます:

  • 半角カタカナ→全角カタカナ
  • 全角英数字記号の半角化
  • 互換性のある文字の置換(①→1, ㋿→令和)

もうひとつ日本語表記の揺れを補正するライブラリとしてneologdnがあります。mecab と neologdn辞書での形態素解析をする前の正規化(表記の揺れの是正)として推奨されていますが、それ以外のケースでも有用です。以下のような処理が行われます。

  • 半角カタカナ→全角カタカナ
  • 全角英数字記号の半角化
  • 連続した長音記号を削除
  • 文字と文字の間のスペースを削除

実際に2つの正規化処理でどのようにテキストが変換されるのかをみていきましょう。


NFKCで正規化

NFKCの特徴は、互換性のある文字の置換です。①、㋿、㌢ といった文字が、1、令和、センチなどに変換されます。

import unicodedata

text = "カタカナカタカナ ABCABC ! ! 123 123 ①テキスト マイニング わーーーい 1984〜2000 ㋿ ㌢"

normalized_text = unicodedata.normalize('NFKC', text)
print(normalized_text)

実行すると下記の結果が出力されます。

カタカナカタカナ ABCABC ! ! 123 123 1テキスト マイニング わーーーい 1984〜2000 令和 センチ

neologdnで正規化

neologdnを使うにはパッケージのインストールが必要です。neologdnでは、"テキスト マイニング"→"テキストマイニング"と文字間のスペースが削除されたり、連続する長音の削除、チルダの削除などが行われます。

!pip install neologdn

import neologdn

text = "カタカナカタカナ ABCABC ! ! 123 123 ①テキスト マイニング わーーーい 1984〜2000 ㋿ ㌢"
normalized_text = neologdn.normalize(text)

print(normalized_text)

実行すると下記の結果が出力されます。

カタカナカタカナABCABC ! ! 123 123 ①テキストマイニングわーい19842000 ㋿㌢

NFKCとneologdnでテキストを正規化する

NFKCとneologdnには同じ正規化処理もあれば異なる処理もあるので、二つを組み合わせて実施しましょう。NKFCで正規化をした結果をneologdnで正規化します。

!pip install neologdn

import unicodedata
import neologdn

text = "カタカナカタカナ ABCABC ! ! 123 123 ①テキスト マイニング わーーーい 1984〜2000 ㋿ ㌢"

normalized_text = neologdn.normalize(unicodedata.normalize('NFKC', text))

print(normalized_text)

実行すると下記の結果が出力されます。

カタカナカタカナABCABC ! ! 123 123 1テキストマイニングわーい19842000令和センチ

読み込んだテキストを正規化する

sample.txtは正規化しても結果は変わりませんが、テキストファイルを読み込んで正規化するプログラムの例が下記になります。

!pip install neologdn

import chardet
import unicodedata
import neologdn

# ファイルのエンコーディング情報を取得
file_path = '/content/sample_data/sample.txt'
with open(file_path, 'rb') as f:
    file_encording= chardet.detect(f.read())['encoding']

# 取得したエンコーディング情報でファイルを読み込む
with open(file_path, 'r', encoding=file_encording) as f:
    text = f.read()
    
# テキストの正規化
normalized_text = neologdn.normalize(unicodedata.normalize('NFKC', text))

print(normalized_text)

正規化されたテキスト文章が、変数 normalized_text に格納されます。

次回は、日本語の文章をテキストマイニングする前処理として重要な形態素解析(単語や文節で区切り、品詞等を判別する)について説明していきたいと思います。

象と散歩:人気の投稿(過去7日間)