パスワードを忘れた? アカウント作成

SlippingStaffさんのトモダチの日記。 最新から新しい日記やタレこみを確認できますよ。

15460499 journal
グラフィック

Takahiro_Chouの日記: オープンソース化されたZENフォント、Goolgeフォントに入る……けど

日記 by Takahiro_Chou

元々は明朝・角ゴシック・丸ゴシックの各ウェイトが揃った商用フォントだけど、今年の4月にオープンソース化されてGoogle Fontsに入る事が発表されていた。
で、それがようやくGoogle Fontsで公開されたけど、Git Hubの方のGoogle Fontsにはまだ入ってなくて、ダウンロードはこちらから。
ただし、収録されてる文字の範囲はUnicode基本多言語面までで、漢字はJIS第2水準+IBM拡張文字だけのようです。

15460441 journal
アニメ・マンガ

Takahiro_Chouの日記: 【twitterでやれ】【アメコミ】初代はつらいよ

日記 by Takahiro_Chou

「どういう意味だよ、“誰に変装したつもり”だって? 僕はスパイダーマンじゃないか」「“本物”と違うでしょ。彼はもっと小さくて、赤と白の眼じゃないか」

色々と有って、現在、コミック版の「正史世界」では、ピーター・パーカーとマイルズ・モラレスの2人の「スパイダーマン」が活動してるせいで起きた事態。

しかし……初代の方も色々と有ったせいで、まぁ、そりゃチビッ子にとっては「2代目」の方が「スパイダーマン」だと認識される状況にはなるわな……。

15460100 journal
ビジネス

torlyの日記: 今日もケツが寒い繊維

日記 by torly
産科の患者に対するサービス提供: 概要と将来的展望
 1995年の記事。産科は患者からの評価が経営に大きな影響を与える数少ない分野らしい。まあそうだろうよ
15457396 journal
医療

torlyの日記: 謎の忙しさ繊維

日記 by torly
高齢ヘルスケア消費者: 情報源の使用と広告についての批判的レビュー、推奨
 1990年の記事。なんかタイトルおかしない? そのややおかしいタイトル通りのアレだけど内容は無し。
15456883 journal
日本

yasuokaの日記: 国語研「長単位」とSudachiPyのモードC

日記 by yasuoka

昨日の日記に対して、SudachiPyのモードCを使えば「長単位」の形態素解析ができるのではないか、との御意見をいただいた。最新版のSudachiPyをインストールしつつ、ちょっとやってみよう。

$ pip3 install -U SudachiPy SudachiDict-core --user
$ echo 全学年にわたって小学校の国語の教科書に大量の挿し絵が用いられている | sudachipy -m C
全    接頭辞,*,*,*,*,*    全
学年    名詞,普通名詞,一般,*,*,*    学年
に    助詞,格助詞,*,*,*,*    に
わたっ    動詞,非自立可能,*,*,五段-ラ行,連用形-促音便    渡る
て    助詞,接続助詞,*,*,*,*    て
小学校    名詞,普通名詞,一般,*,*,*    小学校
の    助詞,格助詞,*,*,*,*    の
国語    名詞,普通名詞,一般,*,*,*    国語
の    助詞,格助詞,*,*,*,*    の
教科書    名詞,普通名詞,一般,*,*,*    教科書
に    助詞,格助詞,*,*,*,*    に
大量    名詞,普通名詞,形状詞可能,*,*,*    大量
の    助詞,格助詞,*,*,*,*    の
挿し絵    名詞,普通名詞,一般,*,*,*    挿し絵
が    助詞,格助詞,*,*,*,*    が
用い    動詞,一般,*,*,上一段-ア行,未然形-一般    用いる
られ    助動詞,*,*,*,助動詞-レル,連用形-一般    られる
て    助詞,接続助詞,*,*,*,*    て
いる    動詞,非自立可能,*,*,上一段-ア行,終止形-一般    居る
EOS

「全学年」「にわたって」「ている」が複数行に分かれてしまっており、SudachiPyのモードCは、残念ながら「長単位」ではない。ただ、国語研「長単位」よりも、SudachiPyのモードCの方が、私(安岡孝一)個人としては扱いやすいような気もする。さてさて、どうしたらいいかな。

15456388 journal
お金

torlyの日記: 窓際に座ると背中が寒い繊維

日記 by torly
免税資格への問題を乗り越える
 1996年の記事。営利・非営利を動きだけ観てても区別はつけづらいし、なんなら営利団体の方が慈善活動多かったりするよねというご指摘…(本題は内容ない)
15456195 journal
人工知能

yasuokaの日記: Transformersとbert-base-japanese-char-extendedとUD_Japanese-GSDで作る日本語「長単位」形態素解析器

日記 by yasuoka

今日のNINJALサロンで話題になったので、日本語「長単位」形態素解析器を試作してみることにした。方法としてはUD_Japanese-GSDのLUWPOSを、Transformersのrun_ner.pybert-base-japanese-char-extendedで、何とか「長単位」の系列ラベリングに落とし込む。Google Colaboratory (GPU版)だと、こんな感じ。

!pip install transformers datasets seqeval
!test -d UD_Japanese-GSD || git clone https://github.com/universaldependencies/UD_Japanese-GSD
!test -f run_ner.py || curl -LO https://raw.githubusercontent.com/huggingface/transformers/v`pip list | sed -n 's/^transformers *\([^ ]*\) *$/\1/p'`/examples/pytorch/token-classification/run_ner.py

for d in ["train","dev","test"]:
  with open("UD_Japanese-GSD/ja_gsd-ud-"+d+".conllu","r",encoding="utf-8") as f:
    r=f.read()
  with open(d+".json","w",encoding="utf-8") as f:
    tokens=[]
    tags=[]
    i=0
    for s in r.split("\n"):
      t=s.split("\t")
      if len(t)==10 and not s.startswith("#"):
        for c in t[1]:
          tokens.append(c)
        b=t[9][t[9].index("LUWBILabel=")+11]
        p=[u[7:] for u in t[9].split("|") if u.startswith("LUWPOS=")][0]
        if p=="名詞-普通名詞-副詞可能":
          p="名詞-普通名詞-一般"
        p=p.replace("-","/")
        tags.extend([b+"-"+p]+["I-"+p]*(len(t[1])-1))
      else:
        if len(tokens)>0:
          print("{\"tokens\":[\""+"\",\"".join(tokens)+"\"],\"tags\":[\""+"\",\"".join(tags)+"\"]}",file=f)
          tokens=[]
          tags=[]
    if len(tokens)>0:
      print("{\"tokens\":[\""+"\",\"".join(tokens)+"\"],\"tags\":[\""+"\",\"".join(tags)+"\"]}",file=f)

!python run_ner.py --model_name_or_path KoichiYasuoka/bert-base-japanese-char-extended --train_file train.json --validation_file dev.json --test_file test.json --output_dir ja_luw.pos --do_train --do_eval --do_predict

ただ「名詞-普通名詞-副詞可能」というLUWPOSが、一ヶ所だけ現れて気持ち悪かったので、そこは「名詞-普通名詞-一般」に直している。私(安岡孝一)の手元では、15分程度でja_luw.posが出来上がり、以下のmetricsとなった。

***** train metrics *****
  epoch                    =        3.0
  train_loss               =     0.2678
  train_runtime            = 0:13:01.48
  train_samples            =       7050
  train_samples_per_second =     27.064
  train_steps_per_second   =      3.386

***** eval metrics *****
  epoch                   =        3.0
  eval_accuracy           =     0.9637
  eval_f1                 =     0.9705
  eval_loss               =     0.1588
  eval_precision          =     0.9678
  eval_recall             =     0.9734
  eval_runtime            = 0:00:06.57
  eval_samples            =        507
  eval_samples_per_second =     77.053
  eval_steps_per_second   =      9.727

***** predict metrics *****
  predict_accuracy           =     0.9669
  predict_f1                 =     0.9672
  predict_loss               =     0.1594
  predict_precision          =     0.9624
  predict_recall             =     0.9721
  predict_runtime            = 0:00:06.92
  predict_samples_per_second =     78.466
  predict_steps_per_second   =      9.826

96%程度なので、まあ悪くない感じだ。出来上がったja_luw.posで、「全学年にわたって小学校の国語の教科書に大量の挿し絵が用いられている」を形態素解析してみよう。

from transformers import AutoModelForTokenClassification,AutoTokenizer,TokenClassificationPipeline
mdl=AutoModelForTokenClassification.from_pretrained("ja_luw.pos")
tkz=AutoTokenizer.from_pretrained("ja_luw.pos")
nlp=TokenClassificationPipeline(model=mdl,tokenizer=tkz,aggregation_strategy="simple")
d=nlp(inputs="全学年にわたって小学校の国語の教科書に大量の挿し絵が用いられている")
print(d)

私の手元では、以下の結果になった。

[{'entity_group': '名詞/普通名詞/一般', 'score': 0.99953014, 'word': '全学年', 'start': 0, 'end': 3}, {'entity_group': '助詞/格助詞', 'score': 0.99852294, 'word': 'にわたって', 'start': 3, 'end': 8}, {'entity_group': '名詞/普通名詞/一般', 'score': 0.9992971, 'word': '小学校', 'start': 8, 'end': 11}, {'entity_group': '助詞/格助詞', 'score': 0.99976945, 'word': 'の', 'start': 11, 'end': 12}, {'entity_group': '名詞/普通名詞/一般', 'score': 0.99958575, 'word': '国語', 'start': 12, 'end': 14}, {'entity_group': '助詞/格助詞', 'score': 0.99973565, 'word': 'の', 'start': 14, 'end': 15}, {'entity_group': '名詞/普通名詞/一般', 'score': 0.99962956, 'word': '教科書', 'start': 15, 'end': 18}, {'entity_group': '助詞/格助詞', 'score': 0.99977046, 'word': 'に', 'start': 18, 'end': 19}, {'entity_group': '形状詞/一般', 'score': 0.98628527, 'word': '大量', 'start': 19, 'end': 21}, {'entity_group': '助詞/格助詞', 'score': 0.99945784, 'word': 'の', 'start': 21, 'end': 22}, {'entity_group': '名詞/普通名詞/一般', 'score': 0.9996125, 'word': '挿し絵', 'start': 22, 'end': 25}, {'entity_group': '助詞/格助詞', 'score': 0.99980253, 'word': 'が', 'start': 25, 'end': 26}, {'entity_group': '動詞/一般/上一段/ア行', 'score': 0.9828689, 'word': '用い', 'start': 26, 'end': 28}, {'entity_group': '助動詞/助動詞/レル', 'score': 0.99877167, 'word': 'られ', 'start': 28, 'end': 30}, {'entity_group': '助動詞/上一段/ア行', 'score': 0.99854565, 'word': 'ている', 'start': 30, 'end': 33}]

「全学年」「にわたって」「小学校」「の」「国語」「の」「教科書」「に」「大量」「の」「挿し絵」「が」「用い」「られ」「ている」となっており、私の見る限り、正しく解析できているようだ。さて、UD_Japanese-GSDLUWがリリースされたら、このあたり、もっとうまくいくかな。

15455157 journal
ニュース

torlyの日記: 寝たけど眠み繊維

日記 by torly

米海軍、艦上での電子タバコを禁止するってよ
 爆発するのでということらしい。8ヶ月間で12件の事故により延べ88日のオフって多いのか少ないのか。月10日と言えば多いか。

FriendELEC、NanoPi K2ボードをリリース
 そう、17年4月の記事なんだ。

15455140 journal
日記

yumeの日記: またブラウザゲーム作ったよ〜 5

日記 by yume

itch.ioで『PYON PYON』を公開したよ。

Mini jam 91: UFOの参加作品。制作期間は72時間。
今回の制限は「Fish as a mechanic」。魚をゲームメカニクスに含む、というもの。

魚が陸にあがってしまったとき、飛び跳ねて水に戻ろうとするあの動きをゲームにできないか、と考えた。
・魚はジャンプできる。
・ステージごとにジャンプできる回数(ステップ数)が異なる。
・ステップごとに、ジャンプの距離が異なる。
例えばあるレベルでは1, 1, 1, 1, 1の合計5ステップですべて1のジャンプ力だが、別のステージでは1, 2, 3, 1, 2, 3かもしれないという感じ。
そうすると、プレイヤーはレベルごとにゴールにたどり着くにはどういう道筋を辿ればいいかを考えていく。
さらに、踏みつけるとジャンプを繰り返すクラゲちゃんや、スイッチを踏むと閉じる機械式の穴なんかも作った。

typodupeerror

一つのことを行い、またそれをうまくやるプログラムを書け -- Malcolm Douglas McIlroy

読み込み中...