Movatterモバイル変換


[0]ホーム

URL:


はてラボはてな匿名ダイアリー
ようこそ ゲスト さんログインユーザー登録

「財政状態計算書」を含む日記RSS

はてなキーワード:財政状態計算書とは

2024-10-12

anond:20241012041038

あっぷでーと:

単位:千円で決算を出している決算書に対応

要約財政状態計算書しか公開していない困ったちゃん対応

とりあえず、資産の部の6割を流動資産とみなすことにした。

そして、今のところ対応できないのが、決算短信の財務諸表画像データで添付している場合

画像で添付するとか、なんでそんなことするのさ・・・

pytesseractとかを試してみたけど、OCRの精度低すぎて使えない。

と、いうか、貸借対照表損益計算書ぐらいpdfではなくて、共通フォーマットメタデータと整備してほしいわ。

Permalink |記事への反応(0) | 17:19

このエントリーをはてなブックマークに追加ツイートシェア

清原ネットキャッシュ比率決算短信からpython自動で求めるソフト

気が付くと朝4時になっていた。

なんか動くところまで出来たので貼っておく。

NYSLなので、バグがあったら治しといて。

importpdfplumberimport re#クリーンアップdef cleanuptext(text):    #決算書の合計値を太字にしたことpdfplumberが暴走するケースへの対処    #例流動資産 -> 流流流流流動動動動動資資資資資産産産産産    #誤爆が怖いので、これが起きている時だけ補正します    if "流流流流流動動動動動資資資資資産産産産産" intext:text = re.sub(r'(.)\1{4,}', r'\1',text)    #△をマイナスに。数字中のカンマを消して結合するtext = re.sub(r'△([0-9])', r'-\1',text)text = re.sub(r'▲([0-9])', r'-\1',text)text = re.sub(r'([0-9]),([0-9])', r'\1\2',text)        #たまに、煽り屋みたいに文字の後にスペースが入る嫌がらせ修正する    #例: 投 資 有 価 証 券 ->投資有価証券text = re.sub(r'(?<=[\u4E00-\u9FFF\u3040-\u30FF])\s(?=[\u4E00-\u9FFF\u3040-\u30FF])', '',text)    returntext#今期の勘定科目数字を取得def get_AccountName(text,need):    pattern =rf'^{need} -?[0-9]+ (-?[0-9]+)'    r = re.search(pattern,text, re.MULTILINE)    if ris not None:        return float(r[1])    return 0#清原ネットキャッシュ計算する。def calc_KiyoharaNetCash(text):    total_current_assets = get_AccountName(text,'流動資産合計')    if total_current_assets == 0:        #要約財政状態計算書しか公開していない、楽天のような素敵な会社様への対処        total_assets = get_AccountName(text,'資産合計')        if total_assets != 0:            #とりあえず、資産の部の6割を流動資産とみなす            total_current_assets = total_assets * 0.6        else:            #流動資産合計ではなく、流動資産という単語を使っている我が道を行く東北電力への対処            total_current_assets = get_AccountName(text,'流動資産')            if total_current_assets == 0:                raise Exception("流動資産合計の勘定科目が見つかりませんでした。"+text)    total_liabilities = get_AccountName(text,'負債合計')    if total_liabilities == 0:        #負債合計ではなく、負債の部合計に拘るオムロンの嬉しい決算書への対策。なんでや・・・        total_liabilities = get_AccountName(text,'負債の部合計')        if total_liabilities == 0:            raise Exception("負債合計の勘定科目が見つかりませんでした。"+text)    #負債をご丁寧にマイナス表記で書いてくれる中外製薬の親切な決算書への対策。いい加減にしろ・・・    if total_liabilities < 0:        total_liabilities = total_liabilities * -1    #投資有価証券はないこともあるので、0を容認する    marketable_securities = get_AccountName(text,'投資有価証券')    #print(total_current_assets,marketable_securities,total_liabilities)    netcash = total_current_assets + (marketable_securities*0.7) - total_liabilities    #たまに単位を1000円にしている銘柄があるので補正する    ifis_tanni_senyen(text):        netcash = netcash / 1000    return netcash# "流動資産合計" と "負債合計" の間に "単位:千円" があるかをチェックdefis_tanni_senyen(text):    if "単位:千円" intext:        returnTrue    if "単位: 千円" intext:        returnTrue    if "単位 : 千円" intext:        returnTrue    if "単位 :千円" intext:        returnTrue    returnFalsedefpdf_to_kiyohara_netcash(pdfpath):    withpdfplumber.open(pdfpath)aspdf:text = ''.join(page.extract_text() for page inpdf.pages)text = cleanuptext(text)    #print(text)    kiyohara_netcash = calc_KiyoharaNetCash(text)    #print(kiyohara_netcash)    return kiyohara_netcashdef mymain():    import sys    args = sys.argv    argc =len(args)    if argc <= 1:print('''これは、清原達郎氏のネットキャッシュ比率(以下、清原ネットキャッシュ比率)を決算短信pdfから求めるソフトです。清原ネットキャッシュ=流動資産合計+(投資有価証券*0.7)-負債合計清原ネットキャッシュ比率=清原ネットキャッシュ/時価総額*100遊び方1.決算短信pdfから清原ネットキャッシュを求めるpython calc_kiyohara_netcash.py 140120240514594985.pdf結果: 30757.0決算書には、100万円単位数字が書かれているはずなので、この数字単位は100万円です。つまり、3075700万円。2.時価総額を億円単位で追加することで、清原ネットキャッシュ比率を求める時価総額が146億円なら146と書いてください。python calc_kiyohara_netcash.py 140120240514594985.pdf 146結果: 210.66%このコードNYSLライセンスです。無保証自己責任ですが、ご自由に。かぶ探とかとつなげるといいかもね。       ''')       return    if argc <= 2:       kiyohara_netcash =pdf_to_kiyohara_netcash(args[1])print(kiyohara_netcash)       return    if argc <= 3:       market_cap=float(args[2])*100 #億円から百万円表記に       kiyohara_netcash =pdf_to_kiyohara_netcash(args[1])       ratio = round(kiyohara_netcash/market_cap*100,2)print(f"{ratio}%")       returnif __name__ == '__main__':    mymain()

Permalink |記事への反応(1) | 04:10

このエントリーをはてなブックマークに追加ツイートシェア

 
ログインユーザー登録
ようこそ ゲスト さん
Copyright (C) 2001-2025 hatena. All Rights Reserved.

[8]ページ先頭

©2009-2025 Movatter.jp