dak ブログ

python、rubyなどのプログラミング、MySQL、サーバーの設定などの備忘録。レゴの写真も。

python で base64 で文字列をエンコード・デコード

2022-02-19 20:21:40 | python
python で base64 で文字列をエンコード・デコードする方法のメモ。
import base64

data = 'あいうえお'
data_enc = data.encode('utf-8')
data_b64 = base64.b64encode(data_enc)
print(data_b64)

data_b64_dec = base64.b64decode(data_b64)
data_dec = data_b64_dec.decode('utf-8')
print(data_dec)

■実行結果
b'44GC44GE44GG44GI44GK'
あいうえお


CRF の algorithm を変更して名詞句の判定精度を比較

2022-02-19 12:59:25 | 自然言語処理
先日の「CRF で名詞句の判定をしてみた」で、
CRF の alogorithm を変更した場合の精度を比較してみました。

変更箇所は sklearn_crfsuite.CRF() のパラメータのみです。
今回つかったデータでは algorithm=lbfgs、l2sgd、ap、pa で同程度、
algorithm=arow が精度が低いという結果になりました。
■algorithm=lbfgs, c1=0.1, c2=0.1
    crf = sklearn_crfsuite.CRF(
        algorithm='lbfgs',
        c1=0.1,
        c2=0.1,
        max_iterations=100,
        all_possible_transitions=True
    )

0.9441077916505949

■algorithm=lbfgs, c1=0.5, c2=0.5
    crf = sklearn_crfsuite.CRF(
        algorithm='lbfgs',
        c1=0.5,
        c2=0.5,
        max_iterations=100,
        all_possible_transitions=True
    )

0.945220761760303

■algorithm=l2sgd, c2=0.1
    crf = sklearn_crfsuite.CRF(
        algorithm='l2sgd',
        c2=0.1,
        max_iterations=100,
        all_possible_transitions=True
    )

0.9426298984809508

■algorithm=l2sgd, c2=0.5
    crf = sklearn_crfsuite.CRF(
        algorithm='l2sgd',
        c2=0.5,
        max_iterations=100,
        all_possible_transitions=True
    )

0.9449389892604881

■algorithm=ap
    crf = sklearn_crfsuite.CRF(
        algorithm='ap',
        max_iterations=100,
        all_possible_transitions=True
    )

0.9418937778719487

■algorithm=pa
    crf = sklearn_crfsuite.CRF(
        algorithm='pa',
        max_iterations=100,
        all_possible_transitions=True
    )

0.9407907098905913

■algorithm=arow
    crf = sklearn_crfsuite.CRF(
        algorithm='arow',
        max_iterations=100,
        all_possible_transitions=True
    )

0.8690576483344261