WordPressからはてなブログに移植する時の不要文字列の削除
WordPressからはてなブログに移植する方法はこちらの記事に書いてあって、そのままやったらできた。
手順は、
- WordPressの管理画面を開く
- 「ツール」→「エクスポート」→「投稿」にチェック→「ステータス」を「公開済み」に変更→「エクスポートファイルをダウンロード」をクリック
- はてなブログのブログ管理画面を開く
- 「インポート」→「ブログデータをアップロード」下で、「wordpress形式」を選択→2でダウンロードしたファイルを選択→「文字コード選択へ進む」
- バグが起こってない文字コードを選ぶ
- 移植したい画像を選択
これでかなり簡単でスムーズに移植できた。
でも移植された記事を見てみると、
<!-- wp:paragraph -->
とか、不要なclassが挿入されていた。プレビューでは表示されないので問題ないのかもしれないが、SEOとかに関係してくるかもしれない。
よく見られていた記事とかだけでも、この不要文字列を削除しておきたい。
Linuxで削除するコマンドを作ったので、自分用にノートしておく。
以下のようにすれば、上記のような不要な部分がなくなる。
test.mdがコピペしたもので、test-new.mdが不要な部分を削除したもの。
cat ./test.md | sed -e '/wp\:/d' -e 's/ class="[^"]*"//g' > ./test-new.md
おしまい
群論とベクトル空間
よびのり先生は線形空間がわからなかったけど、群を勉強してわかるようになったらしい。
群論は骨組みの部分で、それに対してある肉付けをしたものがベクトル空間であるということがわかったらしい。
自分もベクトル空間を学んでいて、
「そんなに法則とか性質とか大量に教えられても、、、無駄に記憶させられても、、、」
みたいな気分になっていた。
「ベクトル空間V上の元にはこういう10個の法則があって、、、」
このへんまでは「なるほど、とりあえずこれを覚えておけば後で役に立つんだろう」と思えるのだけど、
「部分ベクトル空間は〜〜」「〜〜な時それらのベクトルは一次独立であるという」とたくさん定義や法則が出てきて、このまま続けていても後に残らないような気がしたので、ある程度の理解の深さが必要だと感じた。
ということで、群論をやっていく。
群論の定義
集合と演算のセットのことを代数系という。
何もルールがないと数学的になにも面白くないので、これに必要最低限のルールを課す。たとえば結合法則。
$$ (a \circ b) \circ c = a \circ (b \circ c) $$
設定したいくつかのルールを満たすものに、群・環・体という名前がついている。
群が一番シンプルであり、以下4つのルールを満たすものが群である。
環と体は演算が二つで、もっとルールが複雑になる。
群と体を結びつける理論のことをガロア理論という。これは5次以上の方程式に対して代数的な解の公式が存在しないことを示すもので、数学科が習う中で一番美しいと言われたりする。
さて、ではどういうものが群で、どういうものが群ではないのかを表で示してみる。
閉 結 単 逆 (R, +) ⚪︎ ⚪︎ ⚪︎ ⚪︎ (Z, +) ⚪︎ ⚪︎ ⚪︎ ⚪︎ (R, •) ⚪︎ ⚪︎ ⚪︎ ✖️ (R*, •) ⚪︎ ⚪︎ ⚪︎ ⚪︎ T = { z ∈ C | |Z| = 1 } $ (T, •) ⚪︎ ⚪︎ ⚪︎ ⚪︎ G = {1}に対し (G, •) ⚪︎ ⚪︎ ⚪︎ ⚪︎ G = {i, -1, -i, 1}に対し (G, •) ⚪︎ ⚪︎ ⚪︎ ⚪︎
0に何かを乗算して(実数全体)の単位元である1になるものはないので、このなかで(R, •)だけは群ではなく、他は全て群であると言える。
任意のに対し、
$$a \circ b = b \circ a$$
を満たすとき、を可換群という。
群の元の個数をの位数といい、で表す。
以降、 をと省略する
定理1: 群に対し、単位元はただ一つ存在する
定理2: 任意のに対し、逆元はただ一つ存在する
ベクトル空間
空でない集合上に加法とスカラー倍が定義され、任意のの要素、任意のスカラーに対して、次の10個の演算法則が成り立つ時、を上のベクトル空間という。
- Vの任意の元に対し、で与えられるもの元である
(加法が閉じている:) - (加法の交換法則)
- (加法の結合法則)
- となるようながの中に一つ存在し、これを「零元」という(零元)の存在
- Vの任意の元、零元に対しとなるようながの中に存在し、これを「逆元」という。(逆元の存在)
- の任意の元、任意のスカラーに対し、で与えられるもの元である(スカラー積が閉じている:)
- (スカラー積の結合法則)
- スカラー積の零元が存在する
- (スカラー積の単位元1が存在する)
- (スカラー積と加法の分配法則)
これら10個の法則の1~5は、「加法に対して可換群である」こと、6~9は「スカラー積に関して可換群に似た構造になる」ことを個別に表している。なので、以下のようにまとめられる。
スカラー積の演算に出てくるスカラーはベクトル空間の元ではなく、他の体(有理数体,実数体,複素数体など)の元なので、ベクトル空間はスカラー積に関して群ではない。が、「単位元がある」「逆元がある」など群に似た構造を持っているため、「スカラー積に関して可換群に似た構造になる」と言える。
一次独立と一次従属
体上のベクトル空間の元が
を満たす時、一つでも非零の係数があるなら、は一次従属であるという。逆に上の式を満たす係数にはしかありえないなら、は一次独立であるという。
基底
体上のベクトル空間Vの元を、全て適当な係数を使って線形結合することで表せるとする
この時をの基底という。基底の取り方は一意的ではないが、基底の個数(この場合は)は一意的である。基底の個数をベクトル空間の次元といい、のように書く。上式ではである。
個々の基底は一次独立である。逆に、次元ベクトル空間でもし一次独立なベクトルを個選べば、それらは基底になる。
線形写像
体上のベクトル空間から、上のベクトル空間への写像を考える。
$$ T(x + y) = T(x) + T(y) (x,y \in V, T(x),T(y) \in V') $$
$$ T(cx) = cT(x) (x \in V, c \in F) $$
また、となる上の点をの核、もしくはカーネルといい、と書く。またによっての元が移る先の、 の部分集合を像と呼び、のように書く。
BERTとJUMAN++を環境構築して単語予測するまで
MacでBERTとJUMAN++の環境構築をして、単語予測をしてみた。
❯ sw_vers ProductName: macOS ProductVersion: 11.5.2 BuildVersion: 20G95
ほとんどこちらの記事のままですが、2021年9月18日現在では若干異なる部分があったので、書いていきます。
JUMAN++をインストール
京都大学の黒橋・河原・村脇研究室の作成した強力な形態素解析器JUMAN++をインストール
brew install gcc brew install boost wget http://lotus.kuee.kyoto-u.ac.jp/nl-resource/jumanpp/jumanpp-1.02.tar.xz tar xjvf jumanpp-1.02.tar.xz cd jumanpp-1.02 ./configure make sudo make install jumanpp -v
JUMAN++ 1.02
BERT日本語Pretrainedモデルを入れる
京都大学の黒橋・河原・村脇研究室のBERT日本語Pretrainedモデルを入れる
mkdir -p bert/japan_test cd bert/japan_test
import urllib.request kyoto_u_bert_url = "http://nlp.ist.i.kyoto-u.ac.jp/nl-resource/JapaneseBertPretrainedModel/Japanese_L-12_H-768_A-12_E-30_BPE.zip" urllib.request.urlretrieve(kyoto_u_bert_url, "Japanese_L-12_H-768_A-12_E-30_BPE.zip")
unzip Japanese_L-12_H-768_A-12_E-30_BPE.zip
ライブラリをpipでインストール
!pip install pyknp
conda install -c conda-forge transformers conda install pytorch torchvision -c pytorch
これで環境構築は完了。あとはこちらの記事の通りに(自分の場合はJupyterLabで)コードを書いてみるといけた。