Why not login to Qiita and try out its useful features?

We'll deliver articles that match you.

You can read useful information later.

0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ๅนณไปฎๅใŒๅพ—ๆ„ใชOCRใจๆผขๅญ—ใŒๅพ—ๆ„ใชOCRใฎ็ตๆžœใ‚’ใƒžใƒผใ‚ธใ™ใ‚‹

0
Last updated at Posted at 2026-06-24

็’ฐๅขƒใฏๆจช็€ใ—ใฆ llama.cpp ใฎ llama-cli ใ‚’Pythonใ‹ใ‚‰็›ดๆŽฅๅฉใๅฝขใซใ—ใฆใ„ใพใ™ใ€‚ใกใ‚ƒใ‚“ใจๆ›ธใๅ ดๅˆใฏ llama-server ใ‹ llama-cpp-python ใ‹ PyTorch ใ‚’ไฝฟใ†ใจ่‰ฏใ„ใงใ—ใ‚‡ใ†ใ€‚

ไปŠๅ›žไฝฟใ†ใƒขใƒ‡ใƒซใฏsurya-2๏ผˆๅนณไปฎๅ๏ผ‰ใจHunyuanOCR๏ผˆๆผขๅญ—ใใฎไป–๏ผ‰ใงใ™ใ€‚
https://huggingface.co/datalab-to/surya-ocr-2-gguf/tree/main
https://huggingface.co/ggml-org/HunyuanOCR-GGUF/tree/main

ใ‚‚ใฃใจๆ—ฅๆœฌ่ชžใซ็‰นๅŒ–ใ—ใŸOCRใƒขใƒ‡ใƒซใ‚‚ใ‚ใ‚Šใพใ™๏ผˆNDLOCR ใ‚„ Sarashina2.2-OCR ใชใฉ๏ผ‰ใŒใ€ๅฐŽๅ…ฅใŒ็ฐกๅ˜ใงใฏ็„กใ„ใŸใ‚ไปŠๅ›žใฏ llama.cpp ใงๅ‹•ใใ‚‚ใฎใ‚’้ธใณใพใ—ใŸใ€‚

ใ‚นใ‚ฏใƒชใƒ—ใƒˆใฏ่ช่ญ˜ๅŠ›ใ‚’ไธŠใ’ใ‚‹ใŸใ‚ ImageMagick ๏ผˆ2ใƒšใƒผใ‚ธใ‚’1ใƒšใƒผใ‚ธใซ๏ผ‰ใจ deskew_HT๏ผˆNDLOCR็”จ่ณ‡ๆ–™็”ปๅƒใฎๅ‚พใ่ฃœๆญฃใƒขใ‚ธใƒฅใƒผใƒซ๏ผ‰ใซใ‚‚ไพๅญ˜ใ—ใฆใพใ™ใ€‚
https://github.com/ndl-lab/deskew_HT

my_ocr.py
from tokenize import Number

import unicodedata
from difflib import SequenceMatcher

import sys
if len(sys.argv) < 2:
    print("python my_ocr.py <img path>")
    exit()

img_path = sys.argv[1]
llama_cli = "/home/xxx/data/llama.cpp/build/bin/llama-cli"

# https://github.com/datalab-to/surya/blob/11d18847e8b8c17fd55e254e3e5c44b3fed5c87e/surya/inference/prompts.py#L82
prompt1 = """OCR this image to HTML. Each block is a div with data-label and data-bbox (x0 y0 x1 y1, normalized 0-1000)."""
#prompt2 = "Extract all information from the main body of the document image and represent it in HTML format."
prompt2 = "Extract all."

model1_gguf = "/media/xxx/data/ocr/surya-2.gguf"
mmproj1_gguf = "/media/xxx/data/ocr/surya-2-mmproj.gguf"
model2_gguf = "/media/xxx/data/ocr/HunyuanOCR-bf16.gguf"
mmproj2_gguf = "/media/xxx/data/ocr/mmproj-HunyuanOCR-bf16.gguf"
import subprocess

# ImageMagickใงๅทฆๅณใซใถใฃใŸๅˆ‡ใ‚‹
subprocess.run(["convert", img_path, "-crop","2x1@", "+repage", img_path + "_%d.png"])

for n in range(2):
    img_path_n = img_path + f"_{n}.png"
    subprocess.run(["python3", "../deskew_HT/run_deskew.py", img_path_n,"-o", img_path_n])
#    subprocess.run(["python3", "../deskew_HT/run_deskew.py", img_path_n,"-o", img_path_n]) # second deskew

    result1 = subprocess.run([llama_cli, "-p", prompt1, "--image", img_path_n, "-m", model1_gguf,
                                                    "--mmproj", mmproj1_gguf, "--temp", "0", "--single-turn", "--log-disable", "--no-display-prompt",
                                                    "--simple-io", "-c", "8192"],
                                                    capture_output=True, text=True)

    t = result1.stdout.find("Loaded media")
    t = result1.stdout.find(">", t)
    t = result1.stdout.find("\n", t)
    r1 = result1.stdout[t:]
    print(r1)
    result2 = subprocess.run([llama_cli, "-p", prompt2, "--image", img_path_n, "-m", model2_gguf,
                                                    "--mmproj", mmproj2_gguf, "--temp", "0", "--single-turn", "--log-disable", "--no-display-prompt",
                                                    "--simple-io", "-c", "8192"],
                                                    capture_output=True, text=True)

    t = result2.stdout.find("Loaded media")
    t = result2.stdout.find(">", t)
    t = result2.stdout.find("\n", t)
    r2 = result2.stdout[t:]
    r2 = r2.replace("\n", "")
    print(r2)

    def is_kana(c):
        name = unicodedata.name(c, "")
        return "HIRAGANA" in name or "KATAKANA" in name

    def is_kanji(c):
        name = unicodedata.name(c, "")
        return "CJK UNIFIED IDEOGRAPH" in name

    def merge_ocr(ocr_kanji, ocr_kana):
        sm = SequenceMatcher(None, ocr_kanji, ocr_kana, autojunk=False)

        result = []

        for tag, i1, i2, j1, j2 in sm.get_opcodes():

            if tag == "equal":
                result.extend(ocr_kanji[i1:i2])
                continue

            if tag == "replace":

                a = ocr_kanji[i1:i2]
                b = ocr_kana[j1:j2]

                # ใ‹ใชใƒ–ใƒญใƒƒใ‚ฏๅ˜ไฝใงๆ‰ฑใ†
                # ใพใšใ€Œใ‹ใชๅดใ‚’ๅ„ชๅ…ˆ็š„ใซๆŽก็”จใ€
                if any(is_kana(c) for c in b):
                    result.extend(b)
                else:
                    result.extend(a)

                continue

            if tag == "delete":
                result.extend(ocr_kanji[i1:i2])
                continue

            if tag == "insert":
                result.extend(ocr_kana[j1:j2])
                continue

        # ๅพŒๅ‡ฆ็†๏ผšไบŒ้‡ใฒใ‚‰ใŒใชๅธๅŽ
        cleaned = []
        prev = ""

        for c in result:
            if is_kana(c) and is_kana(prev) and c == prev:
                continue
            cleaned.append(c)
            prev = c

        return "".join(cleaned)

    print(merge_ocr(r2, r1))

ใƒ†ใ‚นใƒˆ

ใƒ†ใ‚นใƒˆใซไฝฟใฃใŸ็”ปๅƒใฏๅ›ฝ็ซ‹ๅ›ฝไผšๅ›ณๆ›ธ้คจใƒ‡ใ‚ธใ‚ฟใƒซใ‚ณใƒฌใ‚ฏใ‚ทใƒงใƒณใซใ‚ใ‚‹ใ€Žๆ–ฐ็ทจๅพกไผฝ่‰ๅญใ€๏ผˆ1901ๅนด๏ผ‰ๅŽ้Œฒใฎใ€Œ็ฆๅฏŒ่‰ๅญใ€ใฎ้ซ˜่งฃๅƒๅบฆJPGใงใ™ใ€‚
https://dl.ndl.go.jp/pid/992342/1/10

HTMLใ‚ฟใ‚ฐใจๆ”น่กŒใฏ้™คๅŽปใ—ใฆใ‚ใ‚Šใพใ™ใ€‚ๆ‹ฌๅผงๅ†…ใฏๆŽ›ใ‘ใฆใ‚‹ๆ–‡ๅญ—ใงใ™ใ€‚ใ€Œใ€ใ€ใฎไธ่ถณใฏๅคšใ™ใŽใ‚‹ใŸใ‚ไธ€ๆ—ฆ็„ก่ฆ–ใ—ใฆใ„ใพใ™ใ€‚

ใƒขใƒ‡ใƒซ ๆณจ้‡ˆใฎOCR็ตๆžœ ่ชคใƒ–ใƒญใƒƒใ‚ฏๆ•ฐ
ๆญฃ่งฃ ๅ†’้ ญใฎไธ€ๅฅใฏใ€ไธ€็ฏ‡ใฎ็ถฑ้ ˜ใชใ‚Šใ€ ใ„ใพใ ๅ…ถ่—ใฎไฝ•ไบ‹ใŸใ‚‹ใ‚’่ชฌ็ ดใ›ใšใ€่žใฎๅญ—ใ€็ฌ‘ใฎๅญ—ใ‚’ไธ‹ใ™ใ€้ —ๅฆ™ใชใ‚Šใ€ ไบ”ใฎใŸใชใคใ‚‚ใฎใฏไบ”็ฉ€ใ‚’ใ„ใตใ€ใŸใชใคใ‚‚ใฎใฏ็จฎใค็‰ฉใฎ็พฉใชใ‚Šใ€ๆ—ฅๆœฌ็ด€ใซใฏใ€ๆฐด็”ฐใฎ็จฎๅญใ‚’ใ—ใ‹ใ‚ˆใ‚ใ‚Š ไธ€ๆฎตใ€็ฆๅฏŒใŒ็ฆๅˆ†ๅฏŒๆœ‰ใ‚’ๅฏซใ—ใฆใ€ๅพŒๆฎตใฎๅœฐใ‚’ใชใ™ใ€ ็ฏ‰ๅœฐใฏใ€ๅœŸใ‚’้ซ˜ใ็ฏ‰ใใŸใ‚‹ๅžฃๅขปใ‚’ใ„ใตใ€็ทดๅก€ใฎ้กžใชใ‚Šใ€ 0
surya-2 ๅ†’้ ญใฎไธ€ๅฅใฏใ€ไธ€็ฏ‡ใฎ็ถฑ้ ˜ใชใ‚Šใ€ไธ€ใ„ใพใ ๅ…ถ่—ใฎไฝ•ไบ‹ใŸใ‚‹ใ‚’่ชฌ็ ดใ›ใšใ€๏ผˆ่žใฎๅญ—ใ€็ฌ‘ใฎๅญ—ใ‚’๏ผ‰ไธ‹ใ™ใ€้ —ๅฆ™ใชใ‚Šใ€ไบ”ใฎใŸใชใคใ‚‚ใฎใฏไบ”็ฉ€ใชใ„ใตใ€ใŸใชใคใ‚‚ใฎใฏ็จฎใค็‰ฉใฎ็พฉใชใ‚Šใ€ๆ—ฅๆœฌ็ด€ใซใฏใ€ๆฐด็”ฐใฎ็จฎๅญใ‚’ใ—ใ‹ใ‚ˆใ‚ใ‚Šไธ€ๆฎตใ€็ฆๅฏŒใŒ็ฆๅˆ†๏ผˆๅฏŒๆœ‰ใ‚’ๅฏซใ—ใฆใ€ๅพŒ๏ผ‰ๆฎตใฎๅœฐใ‚’ใชใ™ใ€ๅพŒ็ฏ‰ๅœฐใฏใ€ๅœŸใ‚’้ซ˜ใ็ฏ‰ใใŸใ‚‹ๅžฃๅขปใ‚’ใ„ใตใ€็ทดๅก€ใฎ้กžใชใ‚Šใ€ 5
HunyuanOCR ๅ†’้ ญใฎไธ€ๅฅใซไธ€็ฏ‡ใฎ็ถฑ้ ˜ใชใ‚Šใ„ใพใ ๅ…ถ่—ใฎไฝ•ไบ‹ใŸใ‚‹ใ‹่ชฌ็ ดใ›ใš่žใฎๅญ—็ฌ‘ใฎๅญ—ไธ‹ใ™้ —ๅฆ™ใชใ‚Šไบ”ใฎใŸใชใคใ‚‚ใฎใฏไบ”็ฉ€ใชใ„ใตใŸใชใคใ‚‚ใฎใฐ็จฎใค็‰ฉใฎ่‘‰ใชใ‚Šๆ—ฅๆœฌ็ด€ใซใฏๆฐด็”ฐใฎ็จฎไบŽใŸใ—ใŒใ‚ˆใ‚ใ‚Šไธ€ๆฎต็ฆๅฏŒใŒ็ฆๅˆ†ๅฏŒๆœ‰ใ‚’ๅฏซใ—ใฆๅพŒๆฎตใฎๅœฐ๏ผˆใ‚’๏ผ‰ใชใ™็ฏ‰ๅœฐใฏๅœŸใ‚’้ซ˜ใ็ฏ‰ใใŸใ‚‹ๅžฃๅพณใŸใ„ใต็ทดๅก€ใฎ้กžใชใ‚Š 9
ใƒžใƒผใ‚ธ ๅ†’้ ญใฎไธ€ๅฅใฏใ€ไธ€็ฏ‡ใฎ็ถฑ้ ˜ใชใ‚Šใ€ไธ€ใ„ใพใ ๅ…ถ่—ใฎไฝ•ไบ‹ใŸใ‚‹ใ‚’่ชฌ็ ดใ›ใš่žใฎๅญ—็ฌ‘ใฎๅญ—ไธ‹ใ™ใ€้ —ๅฆ™ใชใ‚Šใ€ไบ”ใฎใŸใชใคใ‚‚ใฎใฏไบ”็ฉ€ใชใ„ใตใ€ใŸใชใคใ‚‚ใฎใฏ็จฎใค็‰ฉใฎ่‘‰ใชใ‚Šใ€ๆ—ฅๆœฌ็ด€ใซใฏใ€ๆฐด็”ฐใฎ็จฎๅญใ‚’ใ—ใ‹ใ‚ˆใ‚ใ‚Šไธ€ๆฎตใ€็ฆๅฏŒใŒ็ฆๅˆ†ๅฏŒๆœ‰ใ‚’ๅฏซใ—ใฆๅพŒๆฎตใฎๅœฐใ‚’ใชใ™ใ€ๅพŒ็ฏ‰ๅœฐใฏใ€ๅœŸใ‚’้ซ˜ใ็ฏ‰ใใŸใ‚‹ๅžฃๅขปใ‚’ใ„ใตใ€็ทดๅก€ใฎ้กžใชใ‚Šใ€ 4

ไธ‹่จ˜ใฎๅนณไปฎๅใฎ่ชคๅญ—ๆ•ฐใฏ็ด„็‰ฉใฎ่ชคๅญ—๏ผˆใ€ฑใจใใฎๆททๅŒ๏ผ‰ใ‚’้™คใใพใ™ใ€‚

ใƒขใƒ‡ใƒซ ๆœฌๆ–‡ใฎOCR็ตๆžœ ๅนณไปฎๅใฎ่ชคๅญ—ๆ•ฐ ๆผขๅญ—ใฎ่ชคๅญ—ๆ•ฐ
ๆญฃ่งฃ ไบบใฏ่บซใซๆ‡‰ใ›ใฌๆžœๅ ฑใ‚’ใ†ใ‚‰ใ‚„ใ‚€ใพใ˜ใใ“ใจใซใชใ‚“ไพใ‚‹ใ€ใ‚€ใ‹ใ—็ฆๅฏŒใฎ็น”้ƒจใจใฆใ€้•ท่€…ไธ€ไบบไพใ‚Šใ‘ใ‚Šใ€ใ„ใ‹ใชใ‚‹้ŽๅŽปใฎๅฎฟ็ทฃใซใ‚„ใ€่บซใซ็”Ÿใ‚ŒใคใใŸใ‚‹่—ใฒใจใคใ•ใตใ‚‰ใฒใ‘ใ‚‹ใŒใ€ใชใ‚‰ใฏใ–ใ‚‹ใซๅฅ‡็‰นใ‚’ใ‚ใ‚‰ใฏใ—ใ€ใฏใ‹ใ‚‰ใ–ใ‚‹ใซๅใ‚’็™ผใ—ใฆใ€ไธ–ใฎไบบใ€็ฅžใฎๅฆ‚ใใซใžๆ€ใฒใ‘ใ‚‹ใ€ๅ…ถ่—ใ‚ใ•ใพใ—ใใ„ใถใ›ใ‘ใ‚Œใฐใ€ไธŠไธญไธ‹ใฎไบบใพใงใ‚‚ใ€ใ‚ˆใ่žใ็Ÿฅใ‚Šใฆ็ฌ‘ใ‚’ใ‚‚ใ‚ˆใปใ™ใ“ใจใชใ‚Šใ‘ใ‚Œใฐใ€ใŠใฎใฅใ‹ใ‚‰ใŠใปใ‚„ใ‘ๆ–นใซใ‚‚ใใ“ใ—ใ‚ใ—ใ€ใ‚‚ใฆ่ˆˆใ˜ใŠใฏใ—ใพใ—ใ‘ใ‚‹ใ“ใจใชใ‚ใ‚ใชใ‚‰ใšใ€ใ•ใ‚ŒใฐๅฏŒใ‚ใ‚‹ใŒไธŠใซๅฏŒใฟๆจ‚ใ—ใใŒไธŠใซใŸใฎใ—ใฟใฆใ€ๆฃŸใซๆฃŸใ‚’ใ‚ใ‚‰ใใฒใ€่—ใซ่—ใ‚’ใŸใฆใ‚ใ€ไบ”ใฎใŸใชใคใ‚‚ใฎใ€่€•ใ•ใšใ—ใฆใ€ๅบญใซใฟใกใ€ฑใŸใ‚Šใ€ใใ‚Œใ‹้šฃใซใปใใ›ใ†ใฎ่—คๅคชใจใฆใ€ใ„ใจใพใฅใ—ใใ‚‚ใฎไพใ‚Šใ€ใ“ใฏ็น”้ƒจใซใฒใใ‹ใธใฆๆœๅค•ใฎ็ƒŸใ‚‚็ซˆใซ็ตถใˆใ€ใจใคใฎใฟใก่‰ใ—ใ’ใ‚Šใคใ‚ใ€็ฏ‰ๅœฐใซใ‚ใ‚‰ใฌๆŸดๅžฃใ‚„ใ€ๆ…ขๅน•ใชใ‚‰ใฌ่–ฆใŸใ‚Œใซๅคœๅฏ’ใฎๅบŠใ‚’ใ‚ใ‹ใ—ใ‹ใญใคใ‚ใ€่ป’ใ‚‚ใ‹ใใ‚’ใ‚‚ใ€ใ“ใฎใŸใ‚ใซใ“ใผใกใจใ‚Šใฆใ€ใ‚ใพใ‚Šๅฏ’ใ•ใฎ้ขจใ‚’ๅ…ฅใ‚Œใ‘ใ‚‹ใ€ๅคใฏใ‚ใ•ใพใ—ใ้บปใฎ่กฃใตใ‚‹ใณใฆใ€ใ‚„ใถใ‚Œๅœ˜ๆ‰‡ใซใฆ 0 0
surya-2 ไบบใฏ่บซใซๆ‡‰ใ›ใฌๆžœๅ ฑใ‚’ใ†ใ‚‰ใ‚„ใ‚€ใพใ˜ใใ“ใจใซใชใ‚“ไพใ‚‹ใ€ใ‚€ใ‹ใ—็ฆๅฏŒใฎ็น”้ƒจใจใฆใ€้•ท่€…ไธ€ไบบไพใ‚Šใ‘ใ‚Šใ€ใ„ใ‹ใชใ‚‹้ŽๅŽปใฎๅฎฟ็ธใซใ‚„ใ€่บซใซ็”Ÿใ‚ŒใคใใŸใ‚‹่—ใฒใจใคใ•ใตใ‚‰ใฒใ‘ใ‚‹ใŒใ€ใชใ‚‰ใฏใ–ใ‚‹ใซๅฅ‡็‰นใ‚’ใ‚ใ‚‰ใฏใ—ใ€ใฏใ‹ใ‚‰ใ–ใ‚‹ใซๅใ‚’็™ผใ—ใฆใ€ไธ–ใฎไบบใ€็ฅžใฎๅฆ‚ใใซใžๆ€ใฒใ‘ใ‚‹ใ€ๅ…ถ่—ใ‚ใ•ใพใ—ใใ„ใตใ›ใ‘ใ‚Œใฐใ€ไธŠไธญไธ‹ใฎไบบใพใงใ‚‚ใ€ใ‚ˆใ่žใ็Ÿฅใ‚Šใฆ็ฌ‘ใ‚’ใ‚‚ใ‚ˆใปใ™ใ“ใจใชใ‚Šใ‘ใ‚Œใฐใ€ใŠใฎใฅใ‹ใ‚‰ใŠใปใ‚„ใ‘ๆ–นใซใ‚‚ใใ“ใ—ใ‚ใ—ใ€ใ‚‚ใฆ่ˆˆใ˜ใŠใฏใ—ใพใ—ใ‘ใ‚‹ใ“ใจใชใ€ใ‚ใชใ‚‰ใšใ€ใ•ใ‚ŒใฐๅฏŒใ‚ใ‚‹ใŒไธŠใซๅฏŒใฟใ€ๆจ‚ใ—ใใŒไธŠใซใŸใฎใ—ใฟใฆใ€ๆฃŸใซๆฃŸใ‚’ใ‚ใ‚‰ใใฒใ€่—ใซ่—ใ‚’ใŸใฆ๏ผˆใ‚๏ผ‰ใ€ไบ”ใฎใŸใชใคใ‚‚ใฎใ€่€•ใ•ใšใ—ใฆใ€ๅบญใซใฟใกใใŸใ‚Šใ€ใใ‚Œใ‹้šฃใซใปใใ›ใ†ใฎ่—คๅคชใจใฆใ€ใ„ใจใพใฅใ—ใใ‚‚ใฎไพใ‚Šใ€ใ“ใฏ็น”้ƒจใซใฒใใ‹ใธใฆๆœๅค•ใฎ็ƒŸใ‚‚็ซˆใซ็ตถใˆใ€ใจใคใฎใฟใก่‰ใ—ใ’ใ‚Šใค๏ผˆใ‚๏ผ‰ใ€็ฏ‰ๅœฐใซใ‚ใ‚‰ใฌๆŸดๅžฃใ‚„ใ€ๆ…ขๆšฎใชใ‚‰ใฌ้ทนใŸใ‚Œใซๅคœๅฏ’ใฎๅบŠใ‚’ใ‚ใ‹ใ—ใ‹ใญใค๏ผˆใ‚๏ผ‰ใ€่ป’ใ‚‚ใ‹ใใ‚’ใ‚‚ใ€ใ“ใฎใŸใ‚ใซใ“ใผใกใจใ‚Šใฆใ€ใ‚ใพใ‚Šๅฏ’ใ•ใฎ้ขจใ‚’ๅ…ฅใ‚Œใ‘ใ‚‹ใ€ๅคใฏใ‚ใ•ใพใ—ใ้บปใฎ่กฃใตใ‚‹ใณใฆใ€ใ‚„ใตใ‚Œๅœ˜ๆ‰‡ใซใฆ 2 3
HunyuanOCR ไบบใฏ่บซใซๆ‡‰ใ›ใฎๆžœๅ ฑใ‚’ใ†ใ‚‰ใ‚„ใ‚€ใพใ˜ใใ“ใซใชใ‚“ไพใ‚‹ใ‚€ใ‹ใ—็ฆๅฏŒใฎ็น”้ƒจใฉใฆ้•ท่€…ไธ€ไบบไพใ‚Šใ‘ใ‚Šใ„ใ‹ใชใ‚‹้ŽๅŽปใฎๅฎฟ็ทฃใซใ‚„่บซใซ็”Ÿใ‚ŒใคใใŸใ‚‹่—ใฒใฉใคใ•ใตใ‚‰ใฒใ‘ใ‚‹ใŒใชใ‚‰ใฏใ–ใ‚‹ใซๅฅ‡็‰นใ‚’ใ‚ใ‚‰ใฏใ—ใฏใ‹ใ‚‰ใ–ใ‚‹ใซๅใ‚’็™ผใ—ใฆไธ–ใฎไบบ็ฅžใฎๅฆ‚ใใซใžๆ€ใฒใ‘ใ‚‹ๅ…ถ่—ใ‚ใ•ใพใ—ใใ„ใถใ›ใ‘ใ‚ŒใฐไธŠไธญไธ‹ใฎไบบใพใงใ‚‚ใ‚ˆใ่žใ็Ÿฅใ‚Šใฆ็ฌ‘ใ‚’ใ‚‚ใ‚ˆใปใ™ใ“ใฉใชใ‚Šใ‘ใ‚ŒใฐใŠใฎใฅใ‹ใ‚‰ใŠใปใ‚„ใ‘ๆ–นใซใ‚‚ใใ“ใ—ใ‚ใ—ใ‚‚ใฆ่ˆˆใ˜ใŠใฏใ—ใพใ—ใ‘ใ‚‹ใ“ใฉใช๏ผˆใ‚๏ผ‰ใ‚ใชใ‚‰ใšใ•ใ‚ŒใฐๅฏŒใ‚ใ‚‹ใŒไธŠใซๅฏŒใฟๆฅฝใ—ใใŒไธŠใซใŸใฎใ—ใฟใฆๆฃŸใซๆฃŸใ‚’ใ‚ใ‚‰ใใฒ่—ใซ่—ใ‚’ใŸใฆ๏ผˆใ‚๏ผ‰ไบ”ใฎใŸใชใคใ‚‚ใฎ่€•ใ•ใ™ใ—ใฆๅบญใซใฟใก๏ผˆใ€ฑ๏ผ‰ใŸใ‚Šใใ‚Œใ‹้šฃใซใปใใ›ใ†ใฎ่—คๅคชใฉใฆใ„ใฉใพใฅใ—ใใ‚‚ใฎไพใ‚Šใ“ใฏ็น”้ƒจใซใฒใใ‹ใธใฆๆœๅค•ใฎ็ƒŸใ‚‚็ช“ใซ็ตถใˆใฉใคใฎใฟใก่‰ใ—ใ’ใ‚Šใค๏ผˆใ‚๏ผ‰็ฏ‰ๅœฐใซใ‚ใ‚‰ใฌๆŸดๅžฃใ‚„ๆ…ขๅน•ใชใ‚‰ใฌ่–ฆใŸใ‚Œใซๅคœๅฏ’ใฎๅบŠใ‚’ใ‚ใ‹ใ—ใ‹ใญใค๏ผˆใ‚๏ผ‰่ป’ใ‚‚ใ‹ใใ‚’ใ‚‚ใ“ใฎใŸใ‚ใซใ“ใผใกใฉใ‚Šใฆใ‚ใพใ‚Šๅฏ’ใ•ใฎ้ขจใ‚’ๅ…ฅใ‚Œใ‘ใ‚‹ๅคใฏใ‚ใ•ใพใ—ใ้บปใฎ่กฃใตใ‚‹ใณใฆใ‚„ใถใ‚Œๅœ˜ๆ‰‡ใซใฆ 7 2
ใƒžใƒผใ‚ธ ไบบใฏ่บซใซๆ‡‰ใ›ใฌๆžœๅ ฑใ‚’ใ†ใ‚‰ใ‚„ใ‚€ใพใ˜ใใ“ใจใซใชใ‚“ไพใ‚‹ใ€ใ‚€ใ‹ใ—็ฆๅฏŒใฎ็น”้ƒจใจใฆใ€้•ท่€…ไธ€ไบบไพใ‚Šใ‘ใ‚Šใ€ใ„ใ‹ใชใ‚‹้ŽๅŽปใฎๅฎฟ็ทฃใซใ‚„ใ€่บซใซ็”Ÿใ‚ŒใคใใŸใ‚‹่—ใฒใจใคใ•ใตใ‚‰ใฒใ‘ใ‚‹ใŒใ€ใชใ‚‰ใฏใ–ใ‚‹ใซๅฅ‡็‰นใ‚’ใ‚ใ‚‰ใฏใ—ใ€ใฏใ‹ใ‚‰ใ–ใ‚‹ใซๅใ‚’็™ผใ—ใฆใ€ไธ–ใฎไบบใ€็ฅžใฎๅฆ‚ใใซใžๆ€ใฒใ‘ใ‚‹ใ€ๅ…ถ่—ใ‚ใ•ใพใ—ใใ„ใตใ›ใ‘ใ‚Œใฐใ€ไธŠไธญไธ‹ใฎไบบใพใงใ‚‚ใ€ใ‚ˆใ่žใ็Ÿฅใ‚Šใฆ็ฌ‘ใ‚’ใ‚‚ใ‚ˆใปใ™ใ“ใจใชใ‚Šใ‘ใ‚Œใฐใ€ใŠใฎใฅใ‹ใ‚‰ใŠใปใ‚„ใ‘ๆ–นใซใ‚‚ใใ“ใ—ใ‚ใ—ใ€ใ‚‚ใฆ่ˆˆใ˜ใŠใฏใ—ใพใ—ใ‘ใ‚‹ใ“ใจใชใ€ใ‚ใชใ‚‰ใšใ€ใ•ใ‚ŒใฐๅฏŒใ‚ใ‚‹ใŒไธŠใซๅฏŒใฟๆฅฝใ—ใใŒไธŠใซใŸใฎใ—ใฟใฆใ€ๆฃŸใซๆฃŸใ‚’ใ‚ใ‚‰ใใฒใ€่—ใซ่—ใ‚’ใŸใฆ๏ผˆใ‚๏ผ‰ใ€ไบ”ใฎใŸใชใคใ‚‚ใฎใ€่€•ใ•ใšใ—ใฆใ€ๅบญใซใฟใกใใŸใ‚Šใ€ใใ‚Œใ‹้šฃใซใปใใ›ใ†ใฎ่—คๅคชใจใฆใ€ใ„ใจใพใฅใ—ใใ‚‚ใฎไพใ‚Šใ€ใ“ใฏ็น”้ƒจใซใฒใใ‹ใธใฆๆœๅค•ใฎ็ƒŸใ‚‚็ช“ใซ็ตถใˆใ€ใจใคใฎใฟใก่‰ใ—ใ’ใ‚Šใค๏ผˆใ‚๏ผ‰ใ€็ฏ‰ๅœฐใซใ‚ใ‚‰ใฌๆŸดๅžฃใ‚„ใ€ๆ…ขๅน•ใชใ‚‰ใฌ่–ฆใŸใ‚Œใซๅคœๅฏ’ใฎๅบŠใ‚’ใ‚ใ‹ใ—ใ‹ใญใค๏ผˆใ‚๏ผ‰ใ€่ป’ใ‚‚ใ‹ใใ‚’ใ‚‚ใ€ใ“ใฎใŸใ‚ใซใ“ใผใกใจใ‚Šใฆใ€ใ‚ใพใ‚Šๅฏ’ใ•ใฎ้ขจใ‚’ๅ…ฅใ‚Œใ‘ใ‚‹ใ€ๅคใฏใ‚ใ•ใพใ—ใ้บปใฎ่กฃใตใ‚‹ใณใฆใ€ใ‚„ใตใ‚Œๅœ˜ๆ‰‡ใซใฆ 2 2

ๅฐ‘ใ—่‰ฏใใชใ‚Šใพใ—ใŸใŒใ€ใพใ ใกใ‚‡ใฃใจๅพฎๅฆ™ใงใ™ใญโ€ฆใ€‚

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up

Today's trending articles

prum_hitomi

ใ€Œ่จ€ใฃใŸใƒป่จ€ใ‚ใชใ„ใ€ใ‚’้˜ฒใใ€‚่ฆไปถๅฎš็พฉใงไฝฟใ†ในใ่ณชๅ•ใฎๆŠ€่ก“

hirashima-gmoconnect

ใƒใ‚คใƒ–ใ‚ณใƒผใƒ‡ใ‚ฃใƒณใ‚ฐใŒใ€ŒRPAๅ•้กŒใ€ใ‚’ๅ†ๆผ”ใ—ใฆใ„ใ‚‹ใ€‚ๅฑžไบบๅŒ–ใƒป้‡่ค‡ใƒปใƒ–ใƒฉใƒƒใ‚ฏใƒœใƒƒใ‚ฏใ‚นใ‚’้˜ฒใๆœ€ๅฐใ‚ฌใƒใƒŠใƒณใ‚น่จญ่จˆ

Comments

No comments

Let's comment your feelings that are more than good

Being held Article posting campaign

0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Login to continue?

Login or Sign up with social account

Login or Sign up with your email address