ITの隊長のブログ

ITの隊長のブログです。Rubyを使って仕事しています。最近も色々やっているお(^ω^ = ^ω^)

Ginzaで固有表現抽出試したけどまだ遊びたりない

何の記事でもなくただのメモ

megagonlabs.github.io

映画名取れるかな。とか思ったので試した。

$ apt update -y && apt install gcc -y
$ pip install -U ginza
$ ginza
ゴジラを視聴しました!!
# text = ゴジラを視聴しました!!
1   ゴジラ   ゴジラ   PROPN   名詞-固有名詞-一般  _   3   obj _   SpaceAfter=No|BunsetuBILabel=B|BunsetuPositionType=SEM_HEAD|NP_B|Reading=ゴジラ|NE=B-PERSON|ENE=B-Person
2   を を ADP 助詞-格助詞    _   1   case    _   SpaceAfter=No|BunsetuBILabel=I|BunsetuPositionType=SYN_HEAD|Reading=ヲ
3   視聴  視聴  VERB    名詞-普通名詞-サ変可能    _   0   root    _   SpaceAfter=No|BunsetuBILabel=B|BunsetuPositionType=ROOT|Reading=シチョウ
4   し する  AUX 動詞-非自立可能  _   3   advcl   _   SpaceAfter=No|BunsetuBILabel=I|BunsetuPositionType=SYN_HEAD|Inf=サ行変格,連用形-一般|Reading=シ
5   まし  ます  AUX 助動詞   _   3   aux _   SpaceAfter=No|BunsetuBILabel=I|BunsetuPositionType=SYN_HEAD|Inf=助動詞-マス,連用形-一般|Reading=マシ
6   た た AUX 助動詞   _   3   aux _   SpaceAfter=No|BunsetuBILabel=I|BunsetuPositionType=SYN_HEAD|Inf=助動詞-タ,終止形-一般|Reading=タ
7   ! !   PUNCT   補助記号-句点 _   3   punct   _   SpaceAfter=No|BunsetuBILabel=I|BunsetuPositionType=CONT|Reading=キゴウ
8   ! !   PUNCT   補助記号-句点 _   3   punct   _   SpaceAfter=No|BunsetuBILabel=I|BunsetuPositionType=CONT|Reading=キゴウ

Person

続ける

ターミネーターを視聴しました!
# text = ターミネーターを視聴しました!
1   ターミネーター   ターミネーター   NOUN    名詞-普通名詞-一般  _   3   obj _   SpaceAfter=No|BunsetuBILabel=B|BunsetuPositionType=SEM_HEAD|NP_B|Reading=ターミネーター|NE=B-PRODUCT|ENE=B-Product_Other
2   を を ADP 助詞-格助詞    _   1   case    _   SpaceAfter=No|BunsetuBILabel=I|BunsetuPositionType=SYN_HEAD|Reading=ヲ
3   視聴  視聴  VERB    名詞-普通名詞-サ変可能    _   0   root    _   SpaceAfter=No|BunsetuBILabel=B|BunsetuPositionType=ROOT|Reading=シチョウ
4   し する  AUX 動詞-非自立可能  _   3   advcl   _   SpaceAfter=No|BunsetuBILabel=I|BunsetuPositionType=SYN_HEAD|Inf=サ行変格,連用形-一般|Reading=シ
5   まし  ます  AUX 助動詞   _   3   aux _   SpaceAfter=No|BunsetuBILabel=I|BunsetuPositionType=SYN_HEAD|Inf=助動詞-マス,連用形-一般|Reading=マシ
6   た た AUX 助動詞   _   3   aux _   SpaceAfter=No|BunsetuBILabel=I|BunsetuPositionType=SYN_HEAD|Inf=助動詞-タ,終止形-一般|Reading=タ
7   ! !   PUNCT   補助記号-句点 _   3   punct   _   SpaceAfter=No|BunsetuBILabel=I|BunsetuPositionType=CONT|Reading=キゴウ

スターウォーズを視聴しました。
# text = スターウォーズを視聴しました。
1   スターウォーズ   スターウォーズ   PROPN   名詞-固有名詞-一般  _   3   obj _   SpaceAfter=No|BunsetuBILabel=B|BunsetuPositionType=SEM_HEAD|NP_B|Reading=スターウォーズ|NE=B-WORK_OF_ART|ENE=B-Movie
2   を を ADP 助詞-格助詞    _   1   case    _   SpaceAfter=No|BunsetuBILabel=I|BunsetuPositionType=SYN_HEAD|Reading=ヲ
3   視聴  視聴  VERB    名詞-普通名詞-サ変可能    _   0   root    _   SpaceAfter=No|BunsetuBILabel=B|BunsetuPositionType=ROOT|Reading=シチョウ
4   し する  AUX 動詞-非自立可能  _   3   advcl   _   SpaceAfter=No|BunsetuBILabel=I|BunsetuPositionType=SYN_HEAD|Inf=サ行変格,連用形-一般|Reading=シ
5   まし  ます  AUX 助動詞   _   3   aux _   SpaceAfter=No|BunsetuBILabel=I|BunsetuPositionType=SYN_HEAD|Inf=助動詞-マス,連用形-一般|Reading=マシ
6   た た AUX 助動詞   _   3   aux _   SpaceAfter=No|BunsetuBILabel=I|BunsetuPositionType=SYN_HEAD|Inf=助動詞-タ,終止形-一般|Reading=タ
7   。 。 PUNCT   補助記号-句点 _   3   punct   _   SpaceAfter=No|BunsetuBILabel=I|BunsetuPositionType=CONT|Reading=。

君の名は面白かったですね
# text = 君君の名は面白かったですね
1   君 君 PRON    代名詞   _   2   compound    _   SpaceAfter=No|BunsetuBILabel=B|BunsetuPositionType=CONT|NP_B|Reading=キミ
2   君 君 PRON    代名詞   _   4   nmod    _   SpaceAfter=No|BunsetuBILabel=I|BunsetuPositionType=SEM_HEAD|NP_I|Reading=キミ
3   の の ADP 助詞-格助詞    _   2   case    _   SpaceAfter=No|BunsetuBILabel=I|BunsetuPositionType=SYN_HEAD|Reading=ノ
4   名 名 NOUN    名詞-普通名詞-一般  _   6   nsubj   _   SpaceAfter=No|BunsetuBILabel=B|BunsetuPositionType=SEM_HEAD|NP_B|Reading=ナ
5   は は ADP 助詞-係助詞    _   4   case    _   SpaceAfter=No|BunsetuBILabel=I|BunsetuPositionType=SYN_HEAD|Reading=ハ
6   面白かっ    面白い   ADJ 形容詞-一般    _   0   root    _   SpaceAfter=No|BunsetuBILabel=B|BunsetuPositionType=ROOT|Inf=形容詞,連用形-促音便|Reading=オモシロカッ
7   た た AUX 助動詞   _   6   aux _   SpaceAfter=No|BunsetuBILabel=I|BunsetuPositionType=SYN_HEAD|Inf=助動詞-タ,終止形-一般|Reading=タ
8   です  です  AUX 助動詞   _   6   aux _   SpaceAfter=No|BunsetuBILabel=I|BunsetuPositionType=SYN_HEAD|Inf=助動詞-デス,終止形-一般|Reading=デス
9   ね ね PART    助詞-終助詞    _   6   mark    _   SpaceAfter=No|BunsetuBILabel=I|BunsetuPositionType=SYN_HEAD|Reading=ネ

あれー???

日付の慣用表現 「13日の金曜日」等
# text = 日付の慣用表現
1   日付  日付  NOUN    名詞-普通名詞-一般  _   4   nmod    _   SpaceAfter=No|BunsetuBILabel=B|BunsetuPositionType=SEM_HEAD|NP_B|Reading=ヒヅケ
2   の の ADP 助詞-格助詞    _   1   case    _   SpaceAfter=No|BunsetuBILabel=I|BunsetuPositionType=SYN_HEAD|Reading=ノ
3   慣用  慣用  NOUN    名詞-普通名詞-サ変可能    _   4   compound    _   SpaceAfter=No|BunsetuBILabel=B|BunsetuPositionType=CONT|NP_B|Reading=カンヨウ
4   表現  表現  NOUN    名詞-普通名詞-サ変可能    _   0   root    _   SpaceAfter=No|BunsetuBILabel=I|BunsetuPositionType=ROOT|NP_I|Reading=ヒョウゲン
5       X   空白  _   4   _   _   SpaceAfter=No|BunsetuBILabel=I|BunsetuPositionType=CONT|Reading=

# text = 「13日の金曜日」等
1   「 「 PUNCT   補助記号-括弧開  _   3   punct   _   SpaceAfter=No|BunsetuBILabel=B|BunsetuPositionType=CONT|Reading=キゴウ
2   13  13  NUM 名詞-数詞   NumType=Card    3   nummod  _   SpaceAfter=No|BunsetuBILabel=I|BunsetuPositionType=CONT|NP_I|Reading=イチサン|NE=B-DATE|ENE=B-Date
3   日 日 NOUN    名詞-普通名詞-助数詞可能 _   7   nmod    _   SpaceAfter=No|BunsetuBILabel=I|BunsetuPositionType=SEM_HEAD|NP_I|Reading=ニチ|NE=I-DATE|ENE=I-Date
4   の の ADP 助詞-格助詞    _   3   case    _   SpaceAfter=No|BunsetuBILabel=I|BunsetuPositionType=SYN_HEAD|Reading=ノ
5   金曜日   金曜日   NOUN    名詞-普通名詞-副詞可能    _   7   compound    _   SpaceAfter=No|BunsetuBILabel=B|BunsetuPositionType=CONT|NP_I|Reading=キンヨウビ|NE=B-DATE|ENE=B-Day_Of_Week
6   」 」 PUNCT   補助記号-括弧閉  _   7   punct   _   SpaceAfter=No|BunsetuBILabel=I|BunsetuPositionType=CONT|NP_I|Reading=キゴウ
7   等 等 NOUN    接尾辞-名詞的-一般  _   0   root    _   SpaceAfter=No|BunsetuBILabel=I|BunsetuPositionType=ROOT|NP_I|Reading=トウ

愚かなる妻
# text = 愚かなる妻
1   愚か  愚か  ADJ 形状詞-一般    _   2   advcl   _   SpaceAfter=No|BunsetuBILabel=B|BunsetuPositionType=SEM_HEAD|Reading=オロカ
2   なる  なり  AUX 助動詞   _   3   acl _   SpaceAfter=No|BunsetuBILabel=B|BunsetuPositionType=SEM_HEAD|Inf=文語助動詞-ナリ-断定,連体形-一般|Reading=ナル
3   妻 妻 NOUN    名詞-普通名詞-一般  _   0   root    _   SpaceAfter=No|BunsetuBILabel=B|BunsetuPositionType=ROOT|NP_B|Reading=ツマ

マトリックスは面白かった
# text = マトリックスは面白かった
1   マトリックス  マトリックス  NOUN    名詞-普通名詞-一般  _   3   nsubj   _   SpaceAfter=No|BunsetuBILabel=B|BunsetuPositionType=SEM_HEAD|NP_B|Reading=マトリックス
2   は は ADP 助詞-係助詞    _   1   case    _   SpaceAfter=No|BunsetuBILabel=I|BunsetuPositionType=SYN_HEAD|Reading=ハ
3   面白かっ    面白い   ADJ 形容詞-一般    _   0   root    _   SpaceAfter=No|BunsetuBILabel=B|BunsetuPositionType=ROOT|Inf=形容詞,連用形-促音便|Reading=オモシロカッ
4   た た AUX 助動詞   _   3   aux _   SpaceAfter=No|BunsetuBILabel=I|BunsetuPositionType=SYN_HEAD|Inf=助動詞-タ,終止形-一般|Reading=タ

風と共に去りぬ
# text = 風と共に去りぬ
1   風 風 NOUN    名詞-普通名詞-一般  _   3   nmod    _   SpaceAfter=No|BunsetuBILabel=B|BunsetuPositionType=SEM_HEAD|NP_B|Reading=カゼ
2   と と ADP 助詞-格助詞    _   1   case    _   SpaceAfter=No|BunsetuBILabel=I|BunsetuPositionType=SYN_HEAD|Reading=ト
3   共 共 NOUN    名詞-普通名詞-一般  _   5   obl _   SpaceAfter=No|BunsetuBILabel=B|BunsetuPositionType=SEM_HEAD|NP_B|Reading=トモ
4   に に ADP 助詞-格助詞    _   3   case    _   SpaceAfter=No|BunsetuBILabel=I|BunsetuPositionType=SYN_HEAD|Reading=ニ
5   去り  去る  VERB    動詞-非自立可能  _   0   root    _   SpaceAfter=No|BunsetuBILabel=B|BunsetuPositionType=ROOT|Inf=文語四段-ラ行,連用形-一般|Reading=サリ
6   ぬ ぬ AUX 助動詞   _   5   aux _   SpaceAfter=No|BunsetuBILabel=I|BunsetuPositionType=SYN_HEAD|Inf=助動詞-ヌ,終止形-一般|Reading=ヌ

タイタニック
# text = タイタニック
1   タイタニック  タイタニック  NOUN    名詞-普通名詞-一般  _   0   root    _   SpaceAfter=No|BunsetuBILabel=B|BunsetuPositionType=ROOT|NP_B|Reading=タイタニック|NE=B-OTHERS|ENE=B-Constellation

http://liat-aip.sakura.ne.jp/ene/ene8/definition_jp/html/enetree.html

ここの定義使っているっぽくて、映画名というのがあるんだけどでてこない(それか僕の見方が間違っているだけかも)

続きはまたあした

Kedroで指定のDataCatalogを保存する

苦労したわ(探すのに)

# catalog.ymlを読み込む
>>> import yaml
>>> with open(os.path.join('conf', 'base', 'catalog.yml'), 'r') as f:
...     config = yaml.load(f, Loader=yaml.FullLoader)

# DataCatalogを用意
>>> catalog = DataCatalog.from_config(config)
>>> catalog.list()
['hogehoge_txt']

# hogehoge_txtは type: text.TextDataSet なので、テキストで保存
>>> catalog.save('hogehoge_txt', '保存したぜ!!')

cv2.VideoCaptureで動画ファイルが開けない

詳しくはこれ

>>> cap = cv2.VideoCapture(file_path)
>>> print(cap.isOpened())  # False

色々ググってたけど、よくわからない・・・

stackoverflow.com

これみて( ゚д゚)ハッ!ってなった

せやった

$ pip install opencv-python

# 追加
$ pip install opencv-contrib-python

こいつがないと動かないんだった

www.slideshare.net

しかし、非公式やら非商用って書いてあってよくわからん。いつかまとめたい

「subword-nmt」を無理やりPythonから呼んで実行する

github.com

基本コマンド実行を想定されて組まれていますが、PythonでできているからPythonから叩けるんじゃね?って思ったので試したら結構難しい。。。

とりあえず試行錯誤のすえ、うまくいった感じのログだけ残す

qiita.com

from subword_nmt.learn_bpe import learn_bpe
import sys


input_data = """吾輩 わがはい は 猫 で ある 。 名前 は まだ 無い 。
どこ で 生れ た か とんと 見当 けん とう が つか ぬ 。 何 でも 薄暗い じめじめ し た 所 で ニャーニャー 泣い て いた事 だけ は 記憶 し て いる 。 吾輩 は ここ で 始め て 人間 という もの を 見 た """

sys.stdin = input_data.split('\n')
learn_bpe(infile=sys.stdin, outfile=sys.stdout, num_symbols=3000, min_frequency=2, verbose=True,  is_dict=False, total_symbols=False)

# 実行すると下記出力される
# #version: 0.2
# 吾 輩</w>
# ニ ャ

僕が試した結果が、qiita記事の結果と違うのはなぜかわからんが、とりあえずこれで動いたっぽさ。ただ、 sys.stdin を直接上書きしているので何が起こるかはわからない....

argparseのパラメータの補完をPythonスクリプトから行う

docs.python.org

便利です。通常こいつを利用する場合はコマンドから引数を指定して値をわたしますが、とある事情からプログラムからも指定したい場合どうやって渡すのかな?と調べてたらありました。

stackoverflow.com

へー。試してみる

>>> import argparse
>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('--dataset-dir', help='set dataset directory name',
...                         type=str, default=None, required=True)
_StoreAction(option_strings=['--dataset-dir'], dest='dataset_dir', nargs=None, const=None, default=None, type=<class 'str'>, choices=None, help='set dataset directory name', metavar=None)
>>>
>>> import sys
>>> sys.argv.extend(['--dataset-dir', '.'])
>>> parser.parse_args()
Namespace(dataset_dir='.')

naruhodo...