自然言語処理の前処理を実装

記事に対して機械翻訳を含む自然言語処理を行えるようにするため、人間が記述するMarkdownの自然言語部分のみを取り出す処理を書きます 正規表現で全て判別できたのでわりあい簡単にできた 要件 Markdownで記述している記事の内容を、機械翻訳を含む任意の自然言語処理に渡せるようにする 仕様 Markdownをある程度パースして自然言語の文のみを抽出する 直近で使うのは他言語コンテンツ自動生成における機械翻訳なので、生成処理の部分を置き換える 実装 Markdownパーサー 行ごとに分割したうえで、自然言語ではない以下の構文を取り除く Hugoの制御構文である ^\n*---\n(\n|.)*?\n---\n Markdownのprefixである ^(>|\s*(#####|####|###|##|#|- \[ \]|- \[x\]|-|\d+\.)) 他言語コンテンツ生成処理の変更点 機械翻訳は未着手なのでとりあえず「機械生成の文ですよ」という一文を挿入する Reference Pull Request 翻訳スクリプト

7月 14, 2022

サイトの多言語対応

しました Hugoが基本的な機能の提供に終始してくれているため、その上では自由に実装できて特に問題もなく要件の実装ができた。 要件 基本的に日本語で記述する 英語版もつくる 機械翻訳で英訳する[^1] 機械翻訳を手作業で修正することもある[^2] ^1より、英語版コンテンツ生成に介入できる口が必要 ^1と^2より、手動で翻訳したコンテンツと機械生成されたコンテンツの判別が必要 Hugoの多言語対応設定 コンテンツ(記事)の多言語対応は言語ごとの同名のファイルを用意することで行われ、翻訳がない場合にデフォルト言語のコンテンツを表示する、などのフォールバックはないためそのままでは要件を満たせない https://gohugo.io/content-management/multilingual/#translate-your-content 仕様 想定 日本語には必ず全てのコンテンツファイルがある 全てのコンテンツに英語版ファイルがあるとは限らない Hugoの多言語対応機能に載せると「コンテンツがない場合はデフォルトの言語の記事を表示する」をやりにくいためビルドの前処理で他言語ファイルを生成する 機械翻訳は挟める余地のみ残して実装は後回し。ひとまず日本語コンテンツのコピーを生成することでよしとする 実装 スクリプト(create_multilingual_contents.py)で以下を行う★ content/ 以下の .ja-jp.md ファイルを再帰的にリストアップする 対応言語(現在は英語のみ)のファイルがなければ内容をコピーした .en.md ファイルを生成する ★をGitHub Action上でHugoのビルド処理を行う直前に実行することで、ホスティングしている環境のみで他言語対応コンテンツを生成する 運用 日本語コンテンツ生成時は .ja-jp.md で生成する 自分で英訳する場合は <対応するファイル名>.en.md で生成する あとはCIがやる 課題 ローカル環境で他言語コンテンツ生成を行った場合は、そのファイルを削除しておかないとその後更新されなくなってしまう Reference Pull Request

7月 9, 2022

2022-07-08 論文

論文 Where did the pupa come from? The timing of juvenile hormone signalling supports homology between stages of hemimetabolous and holometabolous insects https://royalsocietypublishing.org/doi/full/10.1098/rstb.2019.0064 定期的に話題に上る「蛹の起源」について。 2大学説(「蛹=終齢幼虫」vs「蛹=全幼虫齢」)についてレビューし、変態制御遺伝子群の機能からも検討。 https://twitter.com/Cyclommatism/status/1545369213212463105?s=20&t=SkllRtNcehkcRyMvwd1GyA Weight Agnostic Neural Networks Neural netの接続トポロジーのみを進化的計算で求め、学習(結合荷重の最適化)を省略することで高速に計算する手法 https://weightagnostic.github.io われわれががんばって学習させていたのは一体…? 学習ありの場合の進化計算よりは時間かかる(要するに結合加重込みのトポロジーの最適解を求めているので)と思うのだけどどうなんじゃろ

7月 8, 2022

Collective Intelligence in Living/NonLiving System

Collective Intelligence in Living/NonLiving System 何が生物の集団の中の個体の元気さを決定するのか? boidの個体数を1000~100000と変化させ群れの変動や密度を計測すると fluctuation: 変動 perspectives on collective vitality 0. Excitable media as a common property Kinetic energy / templature Susceptibility of a collective Network structure Tetrahymena 水中の単細胞

7月 8, 2022

このサイトについて

自分の思索やらを記録しておきたいという要望が以前からあり、今までは物理のノートやTwitter, note, Zennや社内wikiなどに書いていましたが、 データが手元に残らないため失われる可能性がある 一元管理できない 内容を機械処理(翻訳、言語解析等)にかけるのが面倒 relationalな内容をそのように管理/取り扱いすることができない という問題がありました。 relationalな内容の管理とは、アイデアや思想はその周辺のアイデアとのつながりがあってこそ活きるので、人間の頭の中で起きているような連想を行える何者かのことです。 要件 サイトのコンセプトが要件です なんでも書ける 書いたものはローカル/GitHubに残せる 書いたものを構造化できる 書いたものを後処理にかけられる 仕様 Git管理にする 静的HTMLをホスティングする 動的にする理由もないし… ホスティングはGitHub Pagesを利用 楽やねん ジェネレータはHugoを利用 なんでも良かったのだが、元コンテンツをMarkdownで記述できることと、GitHub Pagesが利用しているJekyllはGitHub Action上での変更容易性がなさそう&Ruby製なので中立のHugoにした ビルド&デプロイはGitHub Actionを利用 楽やねん relationalな内容の管理 どうしようね? 実装・運用 静的HTML生成〜公開はHugoのドキュメンテーションが詳しく、おおよそ詰まらずにできた → Hugoを使用したGitHub Pages用の静的HTML生成 relationalな内容の管理 実装を試みたことはある(BidirectionalEditor)がデータがない状態ではモチベーションが続かなかったので、まずコンテンツを拡充するのが当面の目標。 各記事/記事中の用語に対してその説明/他の記事が紐づけられていて、ユーザー体験としては相互にリンクされたそれを自由に行き来できるというものになるはず。 静的HTML + 手作業で行うこともおそらく可能なのでスモールスタートでやってみてもいい。 本格的に機械的に行うなら毎ビルド時に総ざらいするよりDB入れたほうがいいが…とりま体験を先に作ってみましょう。 その他 GitHub ActionでHugoのビルドに使用している peaceiris/actions-gh-pages@v3 はかなり用途が特定されている印象があるので複雑な処理を挟む場合は自前で書き直すかも 記事の体を成すものはですます調、それ以外は適当

7月 7, 2022

2022 07 07 15:04:04.782474

人工生命研究会#4でお勧めされた本 Rolf Pheifer 知能の原理 Niklas Luhmann 自己言及性について Humberto Maturana 知恵の樹 ウムベルトの本 身体化された心 精神と自然 肝心の勧められた理由を忘れた DDD関連でお勧めされた本 エンタープライズアプリケーションアーキテクチャパターン みんな読んでるのは実践ドメイン駆動設計

7月 7, 2022

Hugoチートシート

テスト記事兼Hugoチートシート Hugoを使用したGitHub Pages用の静的HTML生成 - Zenn サイト内リンク サイト内リンクを貼ろう - なかけんのHugoノート 生成後のHTMLファイルへのパスではなく、生成前のMarkdownのパスを指定すると生成時に変換してくれるらしい。 便利ですね 記事生成 テンプレート Archetypes と呼ばれる 記事生成時に対応するArchetypeが探索され、マッチしたものが適用される https://gohugo.io/content-management/archetypes/ Archetypes Archethypeの動的値の設定はfunctionsという機能が司っている https://gohugo.io/functions/ Markdownコンテンツ Front Matter(トップのあれ フォーマットはyml/toml/json https://gohugo.io/content-management/front-matter/ title: "Hugoチートシート" date: 2022-07-05T17:41:39+09:00 draft: false tags: - programming - hugo

7月 5, 2022