<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>書き物 on 雑記帳はシクロヘキサンの香り</title>
    <link>https://hamukichi.pages.dev/posts/writing/</link>
    <description>Recent content in 書き物 on 雑記帳はシクロヘキサンの香り</description>
    <generator>Hugo -- 0.140.1</generator>
    <language>ja-jp</language>
    <lastBuildDate>Sun, 17 May 2026 15:21:15 +0900</lastBuildDate>
    <atom:link href="https://hamukichi.pages.dev/posts/writing/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>非実用的文章のテキストマイニングによる定量的分析の試み：場面ごとの文体ダッシュボード</title>
      <link>https://hamukichi.pages.dev/2026/05/17/nlp-analysis-of-fanfictions-dashboard/</link>
      <pubDate>Sun, 17 May 2026 15:21:15 +0900</pubDate>
      <guid>https://hamukichi.pages.dev/2026/05/17/nlp-analysis-of-fanfictions-dashboard/</guid>
      <description>&lt;h2 id=&#34;はじめに&#34;&gt;はじめに&lt;/h2&gt;
&lt;p&gt;実用的な文章であれ，非実用的な文章―――たとえば二次創作小説，SS，怪文書，その他―であれ，よりよいものを書こうとするには，どうすればよいでしょうか．&lt;a href=&#34;https://hamukichi.pages.dev/2025/08/17/useful_tools_for_useless_writing/&#34;&gt;以前の記事&lt;/a&gt;では，その目的で，執筆の最中，あるいは執筆後の推敲に使える手法として，日本語変換システム『ATOK』およびそれに統合して利用できる各種辞書であるとか，『一太郎』に付属する校正ツールであるとか，あるいは今はやりの大規模言語モデル（LLM）だとかを簡単に紹介しました．LLM およびそれによって得られる生成物の利用については，日進月歩で変わりゆく分野であることから，いまだに議論が続いていますが，各種ガイドラインに従う限り，有用な技術であることは変わりありません．LLM を使えば，先の記事に示したように，自分の書いたものに対する定性的分析は，自然言語――われわれが普段使う言葉――を用いて，容易に行えることは否定できません．&lt;/p&gt;
&lt;p&gt;ただ，これには取りこぼしがあります．最近では，自然言語処理（NLP）と言えば LLM といった風潮があります．ただ，実際のところはそうではなく，NLP というのは，LLM 以外も含んだ，より広い概念であるはずです．特に，データ傾向の可視化などに用いられる，テキストマイニングと呼ばれる手法は，文章の定量的解析に，いまだに有用な技術です．もちろん，LLM でもプロンプトを工夫すればできるのかもしれませんが，やや牛刀を以て鶏を割くというきらいがあります．とりわけ，非実用的な文章を解析しようとするときに，いちいち LLM を利用して，大量の計算資源を浪費するのは，持続可能な開発という点でも問題があると思います――というのは半分冗談ではありますが．&lt;/p&gt;
&lt;p&gt;そこで，この記事では，テキストマイニングを中心とする伝統的な NLP の技法を用いて，自作の非実用的な文章を解析した試みを，備忘録としてまとめておきます．まずは，テキストを場面ごとに区切り，文体のダッシュボードとでも呼ぶべきものを作るべく，基礎的な指標を抽出して比較することにしました．&lt;/p&gt;
&lt;p&gt;なお，先ほどのようにとうとう語ってはみましたが，実のところ私は NLP の専門家でも，ましては情報学の体系的教育を受けた人間でもないので，以下は――あるいはこれまでの話も――話半分で，自己責任のもとお読みください．以下の手順は，LLM にも示唆を求めつつ――惜しむらくは，このご時世，自分で一からコードを書くことの意義が揺らいでいることです――，自分で適宜修正を行いました．&lt;/p&gt;
&lt;h2 id=&#34;準備&#34;&gt;準備&lt;/h2&gt;
&lt;p&gt;NLPのツールとしては，Python で書かれた有用なものが多く存在するので，それを利用できる環境を整えればよいと思います．私が利用している環境は，Windows 11 上の WSL2 (Ubuntu) です．これには新しめの Python 3 がついてくるはずです．また，テキストエディタは Visual Studio Code としました．これを構築する方法は，どこにでも転がっているし，いっそのこと LLM に訊けば分かることなので，ここでは示しません．&lt;/p&gt;
&lt;p&gt;具体的には pandas ――これはデータ解析に汎用的に使われるツールですが――や spaCy を使うのですが，前者はともかく，後者は apt では入らず，pip などを用いる必要があります．ただ，グローバルで pip を普通に使ってしまうと，ライブラリが入り乱れて後々面倒になるので，仮想環境を使うことにしました．仮想環境といえば venv というイメージがありましたが，最近は uv というものがはやりなので，これを使います．&lt;/p&gt;
&lt;p&gt;詳しくは公式のウェブサイトを見ていただきたいのですが，uv は以下で導入できます（sudo 不要）：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -LsSf https://astral.sh/uv/install.sh &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;仮想環境の構築は以下の通りです（ディレクトリ名は好きなものに変えてください）：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mkdir nlp-playgrounds
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; nlp-playgrounds
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;uv init
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;そして，くだんの pandas, spaCy と，spaCy のモデル，ついでにビジュアライズ用に matplotlib と seabornを以下で導入します：&lt;/p&gt;</description>
    </item>
    <item>
      <title>非実用的文章作成のための実用的道具群</title>
      <link>https://hamukichi.pages.dev/2025/08/17/useful_tools_for_useless_writing/</link>
      <pubDate>Sun, 17 Aug 2025 11:45:52 +0900</pubDate>
      <guid>https://hamukichi.pages.dev/2025/08/17/useful_tools_for_useless_writing/</guid>
      <description>&lt;h2 id=&#34;はじめに&#34;&gt;はじめに&lt;/h2&gt;
&lt;p&gt;人それぞれのところはあるのでしょうが，私は日々文章を書いています．最近では，実用的文章に飽き足らず――あるいは，その機会が一時的に減ったこともいいことに――，非実用的文章（小説，SS，怪文書，その他）もしたため，あまつさえ一粲に供しているところです．そのためにはいくつかのツールを使っているのですが，思えばそれをまともに文章化したことはないことに気づきました．そこで，長らく放置していたブログの編集方法を思い出しかたがた，それをまとめてみました．なお，私は何かの回し者ではないので，念のため．&lt;/p&gt;
&lt;h2 id=&#34;obsidian&#34;&gt;Obsidian&lt;/h2&gt;
&lt;p&gt;何はともあれ，まずは書き付けるためのプラットホームが必要です．いきなり pixiv などの下書きを作成してもいいのですが，それだと操作ミスなどで不意にデータが消失するおそれがありますし，せっかく作ったものですから，手元でしっかり管理しておきたいものです．そこで，しっかりと文章を保存でき，さまざまな環境――少なくとも Windows と iOS――で利用できるようにしています．&lt;/p&gt;
&lt;p&gt;以前は，idraft というサービスのプレミアム版を利用していました．これは，フォルダーに分けて文章を管理できるのみならず，表記揺れや類語の提案など，小説作成に有用な機能も備えていました．しかし，2025 年 3 月をもって終了してしまいました．&lt;/p&gt;
&lt;p&gt;そこで，現在では &lt;a href=&#34;https://obsidian.md/&#34;&gt;Obsidian&lt;/a&gt; を利用しています．大雑把に言えば，その実体はプレーンテキスト（Markdown ファイル）ですので，自分でどうとでも管理できるという利点があります．私は，リポジトリを iCloud Drive に置くことで，いろいろな環境で利用できるようにしています．小説本体のほか，後に示す解析結果も保存しています．ただ，同期には若干のタイムラグがありますので，編集の競合には注意する必要があります．また，小説に特化したサービスではありませんので，後に述べるようなツールで校正などの機能を補う必要があります．&lt;/p&gt;
&lt;h2 id=&#34;atok-と-一太郎&#34;&gt;ATOK と 一太郎&lt;/h2&gt;
&lt;p&gt;いくらボタン一つで漢字変換ができるご時世とはいえ，何でもかんでも漢字にしては読みにくくて仕方がありません．また，何気なく使っている表現でも，実は非標準的で，読んだときに思わぬ引っかかりを生じてしまうかもしれません．また，ひとしきり書いた後は，表記揺れや誤字脱字がないかを確かめる必要があります．&lt;/p&gt;
&lt;p&gt;そこで利用しているのは，日本語入力システムの &lt;a href=&#34;https://atok.com/&#34;&gt;ATOK&lt;/a&gt; と，ワードプロセッサーソフトウエアの &lt;a href=&#34;https://www.justsystems.com/jp/products/ichitaro/&#34;&gt;一太郎&lt;/a&gt; です．&lt;/p&gt;
&lt;p&gt;ATOK は，最近では Windows のみならず iOS 環境でも利用できるので，いつでもどこでも快適な文章作成が楽しめます．特に，Windows 版では，『共同通信社 記者ハンドブック辞書』第 14 版などの用字用語辞書と連携し，過度に難しい表現――とはいっても，場合によっては自分の表現を優先することもありますが――や表記揺れを避けることができるほか，『角川類語新辞典』などの類語辞書で連想変換を強化することで，文章に彩りを与えることもできます．個人的には，句読点の切り替え（通常の句読点からカンマとピリオドへ，あるいはその逆）がスムーズなのも気に入っています．&lt;/p&gt;
&lt;p&gt;また，一太郎は，直接そこで文章を作成するというよりも，Obsidian などで作成したものをコピー・アンド・ペーストして，文章校正をかけるのに使用しています．小説に特化した校正設定もあるので，ストレスなく投稿前の見直しができます．また，ブラウザー連携として JUST チェッカーというものも同梱されており，pixiv 上などで直接文章を編集する際にも，一太郎の校正エンジンを利用することができます．&lt;/p&gt;
&lt;div class=&#34;amazon-link&#34; style=&#34;display: flex; align-items: center; border: 1px solid #ddd; padding: 15px; margin: 20px 0; border-radius: 8px;&#34;&gt;
  &lt;div class=&#34;amazon-image&#34; style=&#34;margin-right: 15px;&#34;&gt;
    &lt;a target=&#34;_blank&#34; rel=&#34;noopener sponsored&#34; href=&#34;https://www.amazon.co.jp/dp/B0DQ593DX4/?tag=hamukichinbr-22&#34;&gt;
      &lt;img src=&#34;https://images-fe.ssl-images-amazon.com/images/P/B0DQ593DX4.09.LZZZZZZZ.jpg&#34; alt=&#34;Amazon 商品画像&#34; style=&#34;width: 120px; height: auto; border: none;&#34;&gt;
    &lt;/a&gt;
  &lt;/div&gt;
  &lt;div class=&#34;amazon-info&#34;&gt;
    &lt;div class=&#34;amazon-title&#34; style=&#34;font-weight: bold; margin-bottom: 10px;&#34;&gt;
      &lt;a target=&#34;_blank&#34; rel=&#34;noopener sponsored&#34; href=&#34;https://www.amazon.co.jp/dp/B0DQ593DX4/?tag=hamukichinbr-22&#34;&gt;
        一太郎2025 通常版
      &lt;/a&gt;
    &lt;/div&gt;
    &lt;a target=&#34;_blank&#34; rel=&#34;noopener sponsored&#34; href=&#34;https://www.amazon.co.jp/dp/B0DQ593DX4/?tag=hamukichinbr-22&#34; class=&#34;amazon-button&#34; style=&#34;display: inline-block; padding: 8px 15px; background-color: #f0c14b; color: #111; text-decoration: none; border-radius: 4px; font-size: 14px;&#34;&gt;
      Amazonで見る
    &lt;/a&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;h2 id=&#34;大規模言語モデル-llm&#34;&gt;大規模言語モデル (LLM)&lt;/h2&gt;
&lt;p&gt;念のため述べておきますが，私はタグ等で特にそう記載しない限り，pixiv で言うところの &lt;a href=&#34;https://www.pixiv.help/hc/ja/articles/13276278766489-AI%E7%94%9F%E6%88%90%E4%BD%9C%E5%93%81%E3%81%A8%E3%81%AF%E3%81%AA%E3%82%93%E3%81%A7%E3%81%99%E3%81%8B&#34;&gt;AI 生成作品&lt;/a&gt; に該当する作品は公開していません．一次創作で一度だけ試してみて，それっぽく読めるものはできた（それは現時点で掲載しています）のですが，あまりおもしろくはなかったというのが正直な感想です．自画自賛のようであれですが，トンチキな展開やら，私が好むものは，やはり自分で書くほかないようです．だからこそ，筆を執る――いや，キーボードをたたくか――気になったのですから．基本的には，以下に示すように，小説作成前の下調べや，作成後の見直しと解析を中心に用いています．また，自分の書いた作品以外を，LLM に処理させたことはありません．正直なところ，本業では LLM の台頭によって自分の得手（英語とかプログラミングとか）がつぶされているところはあるのですが，便利なものは確かなのでやむなく使っているという複雑な状況にあります．&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
