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?

LLMでテーブルデータを読み取るアプローチ

Last updated at Posted at 2024-04-25

ChatGPTやAzure OpenAI Service等のLLMのプロンプトで扱えるデータは一般的には文字列のみで、通常はExcelで作成したようなテーブルデータをそのまま読み取ることはできません。

しかし、テーブルデータをMarkdownやHTML形式の文字に変換することによりLLMが内容を理解することができます。

今回は、上記2つの形式を扱ったテーブルデータの読み取りについてご紹介します。

※本記事で利用したモデルはAzure OpenAI Serviceのgpt-35-turboとなります

Markdown形式

まずはMarkdownを活用したテーブルデータの読み取りについてご紹介します。

Markdownとは簡単な記号でリスト・リンク・テーブル等を表現する記法で、QiitaなどのブログやVisual Studio Codeなどのエディタ等でサポートされています。

Markdown形式の場合、後述のHTMLと比べて文字数が少ないためトークン数が節約できます。

試しに、以下のテーブルを読み取らせてみます。

テーブルデータ

  • テーブルイメージ

    1.png

  • Markdown

    | 部署 | 東京本社 | 横浜支社 | 大阪支社 |
    | - | - | - | - |
    | 開発部 | 50 | 20 | 25 |
    | 営業部 | 30 | 15 | 20 |
    | 経理部 | 20 | 10 | 15 |
    

回答結果

2.png

どちらの質問も適切に回答できているため、Markdown形式で記述した文字をテーブルとして理解できていますね。

HTML形式

次に、HTMLのTableタグを活用したテーブルデータの読み取りについてご紹介します。

HTMLを読み取る強みとしては、複数セルを統合しているようなデータ(colspanrowspan)に関しても読み取ることもできます。

試しに、以下のテーブルを読み取らせてみます。

テーブルデータ

  • テーブルイメージ

    3.png

  • HTML

    <table border="1">
    <tr>
        <th>部署</th>
        <th>性別</th>
        <th>東京本社</th>
        <th>横浜支社</th>
        <th>大阪支社</th>
    </tr>
    <tr>
        <td rowspan="2">開発部</td>
        <td>男性</td>
        <td>30</td>
        <td>10</td>
        <td>15</td>
    </tr>
    <tr>
        <td>女性</td>
        <td>20</td>
        <td>10</td>
        <td>10</td>
    </tr>
    <tr>
        <td rowspan="2">営業部</td>
        <td>男性</td>
        <td>20</td>
        <td>10</td>
        <td>15</td>
    </tr>
    <tr>
        <td>女性</td>
        <td>10</td>
        <td>5</td>
        <td>5</td>
    </tr>
    <tr>
        <td rowspan="2">経理部</td>
        <td>男性</td>
        <td>15</td>
        <td>5</td>
        <td>10</td>
    </tr>
    <tr>
        <td>女性</td>
        <td>5</td>
        <td>5</td>
        <td>5</td>
    </tr>
    </table>
    

回答結果

4.png

5.png

Markdown形式での結果同様に、HTMLで記載された文字をのテーブルとして理解できています。

さらに、複数セルを統合した情報(今回の例では部署情報)も読み取れています。

まとめ

LLMでは、MarkdownやHTML形式に変換することでテーブルデータを読み取ることができます。

今回扱ったテーブルデータ程度であればどちらでも精度は大きく変わりませんが、トークン数を節約したいのであればMarkdown、複数セルを統合したテーブルを扱いたい場合はHTMLが適していると思います。

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
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?