ChatGPTというか、Cursorのドキュメント機能で。
最近職場で生成AI使いたいよぉという話が出て。
複数あるサービスの中でCursorというのがいいんじゃないかなと。
でも生成AIとoffice製ファイルの相性が悪すぎるので、どうにかテキスト形式にする方法を模索してみました。
目次
生成AIとofficeソフトの相性悪すぎ問題
Cursor、ドキュメントを読み込む機能があるんですよ。
URLを指定したり、あとテキスト形式のファイルを読み込んだり。
事前にドキュメントを読ませることで、精度が上がるんじゃないかと。
ただね、
設計書、全部WordとExcelでできてんだよ
つまりバイナリファイルよ。
テキスト系の生成AIはLLM(大規模言語モデル)というやつで、文字列を処理するものなのでバイナリは読めません。
案①すべての設計書を人がMarkdownで書き直す
つまり人力でどうにかする案。
できれば苦労はしないんですよ。
できるんならもうとっくになってるんですよ。
しかも何ファイルあるかわからないほど大量なので、あんまり現実的じゃないです。
案②officeファイルをテキスト形式に変換するツールを作る
officeを捨てることができない世界線の話。
設計書自体はofficeで作り続けて、ツールでAIに読み込むためのテキストを作成します。
一応Wordはtxt、Excelはcsvでエクスポートができるので不可能ではない。
人が読みにくくても、AIが読む分には問題ないだろうし。
VBAなりPythonなりで自動化もできるでしょう。
…。
いや~ないわ~
非効率すぎるわ~
だって設計書を修正するたびにテキストも再生成必要ですからね。
今後AIを使っていきたいならofficeは捨てるべき。
捨てたい。
案③txt、csvに出力した後にChatGPTにMarkdownに変換させる
一番現実的じゃないかと。
officeの機能でテキスト形式にした後、ChatGPTにこれは元officeファイルだよーと教えていい感じに成形させる案です。
これなら出力も人が読みやすい形式になってるので脱officeできそう。
パワポはどうにもならなそうなので一旦諦め。
WordとExcelをChatGPTでMarkdownに変換する
とりあえず試してみよ。
無料版なのでChatGPT3.5で。
総務省が同じ申請書をWord・Excelの2種類で提供していたのでこれを使ってみます。
様式第20(第41条関係)というやつ。
Word
Wordはこんな感じ。
2ページに分かれてますね。
txtに変換するといろいろなくなるぞと言われますがOK。
するとこんな感じ。
出力ファイルはShift JISなのでUTF8にしたほうがいいかも。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 |
様式第20(第41条関係) 事業概況報告書 年 月 日から 年 月 日まで 年 月 日 総務大臣 殿 (ふりがな) 住 所 (ふりがな) 氏 名(法人にあっては、名称及び代表者の氏名を記載すること。) 許可の番号及び年月日 1 経営形態及び資本 経営形態 該当事項 を○で囲 むこと。 株式会社 合同会社 合名会社 個 人 合資会社 そ の 他 資 本 資本の額又は 出資の総額 千円 株 式 発行する 株式の総数 株 当期中の 増減額 千円 発行済株式の総数 株 株主(社員又 は組合員数) 人 2 役員 役職名 氏 名 常勤非常勤の別 取締役 (理事)等 監査役 (監事)等 3 行っている事業 事業の種類 従業者数 (人) 営業収入(売上高)構成比率(%) 事業の種類 従業者数 (人) 営業収入(売上高)構成比率(%) 合 計 100% 注1 事業の種類は、日本標準産業分類の分類に基づき、記載すること。 2 従業者数は、給料支払の対象となった月別支給人員(臨時雇用員にあっては、25人日を1人と して換算)の該当事業年度における合計人員を当該事業年度の月数で除した人数とすること。 3 他の事業を兼務している従業者については、各事業に従事した分量の割合であん分して計算することとし、それらのあん分が明らかでないときは、均等に従事したものとして、従業者数を計上すること。 4 適用する信書便約款(該当する□欄にレ印を記入する。) □ 民間事業者による信書の送達に関する法律(平成14年法律第99号)第33条第3項の規定に基づき公示された特定信書便事業の標準信書便約款と同一の信書便約款 □ 上記以外の信書便約款 5 用紙の大きさは、日本産業規格A列4番とすること。 |
なんだかやたらと改行が。。。
人にとってはめちゃくちゃ読みにくいですが、AIに読ませたらどうなるか。
以下のプロンプトで変換してみます。
1 2 3 4 5 6 7 8 9 |
これはWordファイルをTXTに変換したものです。Markdown に書き直してください。タグは必要な個所につけてください。 ================== 様式第20(第41条関係) 事業概況報告書 年 月 日から 年 月 日まで 年 月 日 総務大臣 殿 ~~以下略~~ |
出力はこんな感じ。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# 様式第20(第41条関係) ## 事業概況報告書 - 期間: 年 月 日から 年 月 日まで - 総務大臣 殿 - 住所: - 氏名(ふりがな): ### 1 経営形態及び資本 - 経営形態 - 該当事項を○で囲むこと。 - 株式会社 - 合同会社 - 合名会社 - 個 人 - 合資会社 - そ の 他 - 資本 - 資本の額又は出資の総額: 千円 - 発行する株式の総数: 株 - 当期中の増減額: 千円 - 発行済株式の総数: 株 - 株主(社員又は組合員数): 人 ### 2 役員 | 役職名 | 氏 名 | 常勤非常勤の別 | | ------ | -------- | --------------- | | 取締役 (理事)等 | | | | 監査役 (監事)等 | | | ### 3 行っている事業 | 事業の種類 | 従業者数(人) | 営業収入(売上高)構成比率(%) | 事業の種類 | 従業者数(人) | 営業収入(売上高)構成比率(%) | | ---------- | ------------- | --------------------------- | ---------- | ------------- | --------------------------- | | 合 計 | | 100% | | 合 計 | 100% | - 注1 事業の種類は、日本標準産業分類の分類に基づき、記載すること。 - 注2 従業者数は、給料支払の対象となった月別支給人員(臨時雇用員にあっては、25人日を1人として換算)の該当事業年度における合計人員を当該事業年度の月数で除した人数とすること。 - 注3 他の事業を兼務している従業者については、各事業に従事した分量の割合であん分して計算することとし、それらの分け方が明らかでないときは、均等に従事したものとして、従業者数を計上すること。 - 注4 適用する信書便約款(該当する□欄にレ印を記入する。) - □ 民間事業者による信書の送達に関する法律(平成14年法律第99号)第33条第3項の規定に基づき公示された特定信書便事業の標準信書便約款と同一の信書便約款 - □ 上記以外の信書便約款 - 注5 用紙の大きさは、日本産業規格A列4番とすること。 |
まぁまぁちゃんと変換できてる気がします。
プレビューしてみると…
一部テーブルでなくなったところがありますが、まぁいいでしょう。
丸で囲むって使い方ならこれでも問題ないですし。
まぁそんな書き方をする設計書はあんまりないと思いますけど…。
Excel
Excelはこんな感じ。
Excel方眼紙じゃなくてよかった。。。
CSVに変換したらこう。
Wordと同じく出力ファイルはShift JISなのでUTF8にしておきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
様式第20(第41条関係),,,,,,,,,,,,,,,, ,事業概況報告書,,,,,,,,,,,,,,, , 年 月 日から 年 月 日まで,,,,,,,,,,,,,,, ,,,,,,,,,,,,, 年 月 日 ,,, , 総務大臣 殿,,,,,,,,,,,,,,, , ,,,,(ふりがな),,,,,,,,,,, ,,,,,住 所,,,,,,,,,,, ,,,,,(ふりがな),,,,,,,,,,, ,,,,,氏 名,,(法人にあっては、名称及び代表者の氏名を記載すること。),,,,,,,,, ,,,,,許可の番号及び年月日,,,,,,,,,,, ,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,, ,1 経営形態及び資本,,,,,,,,,,,,,,, ,経営形態,,,,,,"資 本","資本の額又は 出資の総額",,,千円,"株 式","発行する 株式の総数",,,株 ,,,,株式会社 ,合同会社 ,,,,,,,,,,, ,"該当事項 を○で囲 むこと。 ",,,合名会社 ,個 人 ,,,"当期中の 増減額",,,千円,,,,, ,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,"発行済株式 の総数",,,株 ,,,,合資会社 ,そ の 他 ,,,,,,,,,,, ,,,,,,,,"株主(社員又 は組合員数)",,, 人,,,,, ,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,, ,2 役員,,,,,,,,,,,,,,, ,,,,役職名,,,氏 名,,,,,,,常勤非常勤の別,, ,"取締役 (理事)等 ",,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,, ,"監査役 (監事)等 ",,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,, ,3 行っている事業,,,,,,,,,,,,,,, ,事業の種類,,,"従業者数 (人)",,"営業収入(売上高) 構成比率(%)",,,事業の種類,,"従業者数 (人)",,,"営業収入(売上高) 構成比率(%)",, ,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,, ,,,,,,,,,合計,,,,,100% ,, ,注1 事業の種類は、日本標準産業分類の分類に基づき、記載すること。,,,,,,,,,,,,,,, ," 2 従業者数は、給料支払の対象となった月別支給人員(臨時雇用員にあっては、25人日を1人と ",,,,,,,,,,,,,,, , して換算)の該当事業年度における合計人員を当該事業年度の月数で除した人数とすること。,,,,,,,,,,,,,,, , 3 他の事業を兼務している従業者については、各事業に従事した分量の割合であん分して計算する,,,,,,,,,,,,,,, , こととし、それらのあん分が明らかでないときは、均等に従事したものとして、従業者数を計上す,,,,,,,,,,,,,,, , ること。,,,,,,,,,,,,,,, , 4 適用する信書便約款(該当する□欄にレ印を記入する。),,,,,,,,,,,,,,, ,,□,民間事業者による信書の送達に関する法律(平成14年法律第99号)第33条第3項の規定に,,,,,,,,,,,,, , 基づき公示された特定信書便事業の標準信書便約款と同一の信書便約款,,,,,,,,,,,,,,, ,,□,上記以外の信書便約款,,,,,,,,,,,,, , 5 用紙の大きさは、日本産業規格A列4番とすること。,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,, |
まぁ、人が見たらよくわかんない形式になってますね。
これをChatGPTに以下のプロンプトで変換してもらいます。
1 2 3 4 5 6 7 8 |
これはxlsxファイルをCSVに変換したものです。Markdown に書き直してください。タグは必要な個所につけてください。 ================== 様式第20(第41条関係),,,,,,,,,,,,,,,, ,事業概況報告書,,,,,,,,,,,,,,, , 年 月 日から 年 月 日まで,,,,,,,,,,,,,,, ,,,,,,,,,,,,, 年 月 日 ,,, ~~以下略~~ |
出力がこちら。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# 様式第20(第41条関係) ## 事業概況報告書 - 期間: 年 月 日から 年 月 日まで - 総務大臣 殿 - 住所: - 氏名(ふりがな): ### 1 経営形態及び資本 | 経営形態 | 資本の額又は出資の総額 | 株式 | 発行する株式の総数 | 合計 | 発行済株式の総数 | 株主(社員又は組合員数) | | -------- | ----------------------- | ----- | ------------------- | --- | ---------------- | ---------------------- | | 株式会社 | | 合同会社 | | 個 人 | 当期中の増減額 | 千円 | | | | 合名会社 | | | | | | | | 合資会社 | | | | | ### 2 役員 | 役職名 | 氏 名 | 常勤非常勤の別 | | ------ | -------- | --------------- | | 取締役 (理事)等 | | | | 監査役 (監事)等 | | | ### 3 行っている事業 | 事業の種類 | 従業者数(人) | 営業収入(売上高)構成比率(%) | 事業の種類 | 従業者数(人) | 営業収入(売上高)構成比率(%) | | ---------- | ------------- | --------------------------- | ---------- | ------------- | --------------------------- | | | 合計 | 100% | | 合計 | 100% | - 注1 事業の種類は、日本標準産業分類の分類に基づき、記載すること。 - 注2 従業者数は、給料支払の対象となった月別支給人員(臨時雇用員にあっては、25人日を1人として換算)の該当事業年度における合計人員を当該事業年度の月数で除した人数とすること。 - 注3 他の事業を兼務している従業者については、各事業に従事した分量の割合で分けて計算することとし、それらの分け方が明らかでないときは、均等に従事したものとして、従業者数を計上すること。 - 注4 適用する信書便約款(該当する□欄にレ印を記入する。) - □ 民間事業者による信書の送達に関する法律(平成14年法律第99号)第33条第3項の規定に基づき公示された特定信書便事業の標準信書便約款と同一の信書便約款 - □ 上記以外の信書便約款 - 注5 用紙の大きさは、日本産業規格A列4番とすること。 |
プレビューしてみるとこう。
あれ、これ結構いいのでは?
CSS当ててないので読みにくいところがあるし、結合してる個所はちょっと違う形になってますが。
人が全部手で書き直すより断然修正箇所が少なくて済みそうです。
WordとExcelの結果を比較してみる
出力されたMarkdownをWin Mergeで比較。
左がWord、右がExcelです。
こうしてみると、Excelはところどころ文言が消滅してますね。。。
該当事項を〇で囲むこと。
の部分はExcelのCSVだとこんな感じで改行されてるので、うまく読み込まれなかったっぽいです。
1 2 3 |
,"該当事項 を○で囲 むこと。 |
あん分→分けて
と変換された理由は…謎。
言葉はそのまま使用してください。
をプロンプトに追加したらあん分と出力されたけど、その他のフォーマットも一部変更されてたので難しいですね。。。
というか、同じプロンプトでも結果が同じにならないのが生成AIなので、フォーマットがばらばらになっちゃうのが問題?
課題は多々あれど
人が手で書き直すよりは相当速いので、選択肢としてはありじゃないかと。
Excelでシートがたくさんあると1ファイルずつCSV化しないといけないので面倒すぎるとかあるけど。
設計書を共有してる先がofficeしか受け取らないからなくせないってなる可能性もあるけど。
まぁ生成AIの利用もまだどうなるか手探り状態なので、アイデア出しだけしてきますかねー。