1.はじめに
特許庁が提供する特許出願技術動向調査を言葉で検索できるようにしたら、結構面白かった。
UIを簡単に実装できるようなライブラリ(できればpythonで)が欲しい。
2.経緯
特許庁が提供する特許出願動向調査は、20年くらい前から始まっていて、蓄積が大きくなってきてます。数えると、濃密な600個くらいの特許レポートが無料で見られるので素敵です。
ただ、結構量が多いので、全部読めないし、ある技術(例えば「人工知能」)について横断的に見てみたい場合に見ていくのが面倒です。
そこで、GPT-4+Langchaonで過去の動向調査を横断的に言葉で調べられるものを作りました。
3.使えそうな先行サービス
一番よさそうだったのがvectara。何も考えずファイルをアップロードすればあとは良しなにやってもらえる。保存容量50MiBまでは無料でできるのでよさそう。が、データ量とmetadataのつけ方の関係で断念。
次に、最近出たAzure上で自前データでチャットボットができるもの。やろうとしましたがCORSエラーでやる気をなくし断念。
4.コードなど
ということで結局コードを書くことにしました。
ポイントとしては、pdfデータを1ページ単位で区切っておいて、根拠付きの解答をさせることです。
事前準備は前の投稿と同様なので省略します。
特許出願動向調査のレポートをダウンロードしてGoogleDriveなどに保存しておきます。
次にlangchainのPyPDFDirectoryLoaderで、集めたpdfファイルが入っているディレクトリを指定して読み込みます。pdfを読み込むDirectoryLoaderはいろんな種類があるので、自分に合ったやつを検討するとよいです。
#@title フォルダ指定 pdfとかも含めて、ロード失敗したファイルはスキップ
from langchain.document_loaders import DirectoryLoader
from langchain.document_loaders import PyPDFDirectoryLoader
text_loader_kwargs ={'autodetect_encoding':True}
from langchain.text_splitter import CharacterTextSplitter
text_splitter = CharacterTextSplitter.from_tiktoken_encoder(
separator = "\n", # セパレータ
chunk_size=2000, # チャンクのトークン数
chunk_overlap=0 # チャンクオーバーラップのトークン数
)
loader = PyPDFDirectoryLoader('***',glob='*.pdf',silent_errors=True)
docs = loader.load_and_split(text_splitter=text_splitter)
あとはChromaDBに突っ込んで、後で使いまわしできるようにpersistent_directoryを設定して実行。
#@title chromaDBで作る場合.persistent_directoryを設定
db = Chroma.from_documents(docs, embeddings, persist_directory="./chroma_db")
#db.persist()
できたデータはこんな形です。
書誌情報:
text-embedding-ada-002でベクトル化した情報:
前にも使ったRetrievalQAWithSourcesChainでchainを作成。kやfilterはお好みで。
from langchain.chains import RetrievalQAWithSourcesChain
chain = RetrievalQAWithSourcesChain.from_chain_type(
model,
#chain_type="map_reduce", #こっちのほうがいいかも
chain_type="stuff",
return_source_documents=True,
retriever=db.as_retriever(
k=10,
#filter="人工知能"
)
)
作ったchainに聞いてみます。
#question= "空気清浄の方式について教えて下さい。"
#question = "出願人ランキング情報を教えて下さい。"
#question = "スマート物流の技術要素には何がありますか?"
#question = "輸配送の自動化についてどんなことが言われていますか?"
question = "手術支援ロボットのニーズは何ですか?"
result = chain({"question": question}, return_only_outputs=True)
print(result["answer"])
手術支援ロボットのニーズは、安全性の向上、セキュリティ、操作性の向上、患者の負担の軽減、術者の負担の軽減、手術機会の拡大、小型化・軽量化、省エネ化、コスト低減などです。また、医師の潜在的なニーズを洗い出し、医師、技術者、事業家が一体となって研究開発を進めることが重要であるとされています。
ちなみにresult自体はこんな感じで、回答の元となる文章が入っています('sources'部分)。これらの類似度上位の元文章をもとにGPT-4が'answer'部分の文章を生成する形です。なので「ソース文章中に十分な情報がないので答えられません」という回答をする場合もあります。
{'answer': '手術支援ロボットのニーズは、安全性の向上、セキュリティ、操作性の向上、患者の負担の軽減、術者の負担の軽減、手術機会の拡大、小型化・軽量化、省エネ化、コスト低減などです。また、医師の潜在的なニーズを洗い出し、医師、技術者、事業家が一体となって研究開発を進めることが重要であるとされています。\n',
'sources': '2021_02.pdf', 'source_documents': [Document(page_content='護ロボット導入支援事業上限30万円 介護サービス事業者が介護ロボットを導入する経費の一部を助成することにより,介護ロボットの使用による介護従事者の身体的負担の 軽減や業務の\n効率化など,介護従事者が継続して就労するための環境整備を進め,介護従事者の確保を図る。東京都介護従業者の身体的負担の軽減や業務の効率化など、介護環境の改善に資する次世代介護機器の導入に必要な経費の一部を補助する。\n \n(出所)委員提供資料および各自治体webページより作成', metadata={'source': 'jporeport/30_06.pdf', 'page': 14}), Document(page_content='17 また、上記の 有識者ヒアリング結果及びアドバイザリーボードでの議論を踏まえ、以下\nのまとめを示す。 \n \n●医師のニーズを適切に捉え、スピード感を持った研究開発を行える環境(医療機器エコ\nシステム)を構築すべきである。 \n \n医師が持つ潜在的なニーズを洗い出し、医師、技術者、事業家が一体となって研究開発\nを進めることが重要である。研究開発立ち上げ時点から事業化戦略や薬事戦略を意識する\nことで、円滑に事業化に移行できるようにする必要がある。 特に、日本の医師が得意とす\nる医学的有効性が高い手技のうち、その難易度が高いことから他国では行われていないよ\nうな手技をロボット化していくことも重要である。 \nまた、手術支援ロボット産業活性化のためには、事業化の成功例を積み上げ、医師のニ\nーズを適切に捉え、スピード感を持った研究開発を行える医療機器エコシス テムを構築す\nることが必要である。 \nさらに、個々の要素技術を手術支援ロボットとしてまとめ上げるシステムインテグレー\nション技術も、早期に製品としてまとめ上げるためには必須の重要な技術である。 \n \n●わが国には手術支援ロボットの研究開発、事業化に関わる人材が不足しており、それら\n人材を育成する仕組みを整備し、人材育成を推進するべきである。 \n \n医療機器開発の分野においては、事業戦略、研究開発戦略、薬事戦略、知財戦略を、一体\n的に推進することが重要であ り、これら戦略を立案し、適切に実行できる人材がチームと\nなって推進していくことが重要であ る。 \n起業家育成プログラムの取組(例えば、日本バイオデザイン学会の取組)等を通じたベン\nチャー起業家や投資家の育成、医療分野の本質的なニーズを的確に掴む用途開発ができる\n人材の育成、情報技術等のデジタル技術の知識とともに医学の知識を持った人材の育成、\nシステムインテグレータの育成とともに、総合的な視点でシステム統合できる人材の育成、\n薬事申請等に係る人材の育成、 知財戦略を立案できる人材の育成など、 総合的な視点 から、\n手術支援ロボット関係 する人材を育成する仕組みを整備し、人材育成を推進していくこと\nが重要である。', metadata={'source': 'jporeport/2021_02.pdf', 'page': 16}), Document(page_content='1 令和3年度特許出願技術動向調査 \n- 手術支援ロボット - \n \nはじめに \n近年、人の手に代わって手術を支援する手術支援ロボットの技術は目覚ましい発展を遂\nげ、施術精度の向上、低侵襲手術による入院日数の短縮、術後合併症の発生率低減等により\n患者のQOLの向上に寄与している。 \nマスタースレーブ型の手術支援ロボットは、 SRI International によりその原型が作成さ\nれ、その技術は Intuitive Surgical にライセンス提供された。 Intuitive Surgical による\n高い市場占有率は、 1990年後半に取得された基本特許によるものであるが、その特許権存\n続期間が終了を迎え たことから、多くの企業で手術支援ロボットの開発・商品化が行われ\nている。マスタースレーブ型の手術支援ロボットの他には、術者の肉体的負担を軽減する\nことを目的とする、あるいは、安全性や精度の向上を目的として手術を補助する術者支援\n型ロボットや、人工知能に代表される最新技術を適用した自律性の高い手術 支援ロボット\nの研究開発も進められている 。 \nこのような背景の下、本調査は、手術支援ロボットに関する特許の動向を調査し、国内外\nの技術発展状況、研究開発状況を含む技術動向を明らかにすること、日本及び外国の技術\n競争力、産業競争力を明らかにすること、日本企業・政府機関が取り組むべき課題を整理\nし、今後目指すべき研究・技術開発の方向性を明らかにすることを目的とする。 \n \n①調査範囲 \n・特許文献 \n出願年(優先権主張年) : 2000年~2019年 \n出願先国 ・地域:日本、米国、欧州、中国、韓国、 ASEAN、豪州、カナダ、台湾、ロ\nシア、ブラジル、インド、イスラエル \n検索に使用した商用データベース :Derwent World Patents Index1 (DWPI) \n※本調査において、 「欧州への出願」は、欧州特許条約( EPC)に基づく欧州特許庁及び EPC加盟国(本調査で使用したデ\nータベース( DWPI)に収録された出願先国2に限る)への出願を意味する。 \n※本調査 の出願人国籍・地域別出願動向 における「 欧州籍の出願 」とは、EPC加盟国である 38か国3の国籍の出願人からの\n出願とする。 \n・非特許文献 \n発行年: 2000年~2020年 \n検索に使用した商用データベース: Scopus \n \n1 キャメロット ユーケイ ビッドコ・リミテッドの登録商標 \n2 オーストリア、ベルギー、スイス、チェコ、デンマーク、スペイン、フィンランド、フランス、ドイツ、イギリス、ハンガリー、ア\nイルランド、イタリア、ルクセンブルク、オランダ、ノルウェー、ポルトガル、ルーマニア、スウェーデン、スロバキア、ポーラン\nド、トルコの 22か国。 \n3 アルバニア、オーストリア、ベルギー、ブルガリア、スイス、キプロス、チェコ、デンマーク、エストニア、スペイン、フィンラン\nド、フランス、ドイツ、イギリス、ギリシア、クロアチア、ハンガリー、アイルランド、アイスランド、イタリア、リヒテンシュタイ\nン、リトア ニア、ルクセンブルク、ラトビア、モナコ、マケドニア旧ユーゴスラビア、マルタ、オランダ、ノルウェー、ポーランド、\nポルトガル、ルーマニア、セルビア、スウェーデン、スロベニア、スロバキア、サンマリノ、トルコの 38か国。', metadata={'source': 'jporeport/2021_02.pdf', 'page': 0}), Document(page_content='2 \n関連技術 用途・対象\n・処置内容\n・患部へのアプローチ\n・対象組織\n課題\n・安全性の向上\n・セキュリティ\n・操作性の向上\n・患者の負担の軽減\n・術者の負担の軽減\n・手術機会の拡大\n・小型化・軽量化\n・省エネ化\n・コスト低減患者側\n構成要素\nアーム\nアダプタ\nシャフト 処置具撮像部手術台 アーム支持台\nデータ部\n通信部 保存部\n全体構造手術支援ロボットマスタースレーブ型\n(一体型・分離型)術者支援型\nその他(自律型等)\n構成要素 (ハードウェア)\n制御技術\n(ソフトウェア)\n・検出\n・制御\n・AI\n・ソフトウェアアップデート\n術者側\n構成要素\n操作部 スピーカ\n術者支援部術者用\n表示部マイク\n表示部\nマイク スピーカ\n補助者側\n構成要素\n(ビジョン)\n・手術計画\n・手術ナビゲーション\n・シミュレーション\n・トレーニング・手技データ配信\n・ドレープ②調査手法 \n・特許文献 \n手術支援ロボットに関する 特許文献をデータベースから抽出するために、国際特許分類、\n関連するキーワード等を組み合わせて検索を行った。抽出された文献について、人手によ\nる特許公報(明細書等)の読込解析4を行い、ノイズ(調査テーマに関連しない特許文献)\nを排除することによって調査対象となる母集団を得た。その上で、特許文献ごとに適切な\n技術区分を付与した。 \n・非特許文献 \n手術支援ロボットに関する論文をデータベースから抽出するために、キーワードを組み\n合わせて検索を行った。抽出された論文について、人手による抄録の読込解析5を行い、ノ\nイズ(調査テーマに関連しない論文)を排除することによって調査対象となる母集団を得\nた。その上で、論文ごとに適切な技術区分を付与した。 \n \n手術支援ロボット の技術俯瞰図を図 1に示す。技術俯瞰図は、 手術支援ロボットの全体\n構造、構成要素(ハードウェア) 、制御技術(ソフトウェア) 、関連技術、課題、用途・対象\nから構成されている。 \n全体構造は、マスタースレーブ型(一体型と分離型) 、術者支援型、その他(自律型等)\nから成る。 構成要素(ハードウェア)は、患者側構成要素、術者側構成要素、補助者側構成\n要素、データ部から成る。 制御技術(ソフトウェア)は、検出、制御、 AI、ソフトウェアア\nップデートから成る。 関連技術は、手術計画、手術ナビゲーション、 シミュレーション、 ト\nレーニング、手技データ配信、ドレープから成る。 課題は、安全性の向上、セキュリティ、\n操作性の向上、 患者の負担の軽減、術者の負担の軽減、手術機会の拡大、小型化・軽量化、\n省エネ化、コスト 低減から成る。 用途・対象 は、処置内容、 患部へのアプローチ、対象組織\nから成る。 \n【図1】技術俯瞰図 \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n4 読み込んだ特許文献は、日本公報を含むファミリーが約 6,200件、外国公報のみのファミリーが約 20,700件である。', metadata={'source': 'jporeport/2021_02.pdf', 'page': 1})]}
5.その他
このデータをもとにQAチャットボットを作ろうとしましたが、UI部分でいいのがなくて苦労しました。
なじみがあるDialogFlow+CloudFunctionsで行けそうでしたが、そもそもDialogFlowのwebHook部分の書き方が面倒でちょっとあきらめ気味です。
単純にCloudFunctioのparamとレスポンスをいい感じに受けて出すだけなのですが。
内閣府や総務省、欧州特許庁なども技術動向調査レポートを結構出しているので、その情報も含めて調べられるようにしていきたいと思います!embedderは同じなので、差分アップデートみたいな感じでしょうか。EPOとWIPOのレポートも入れました。
20230707:ウェブサイトからチャット形式で聞けるように作成しました。summaryはtimeoutの関係でまだ返せませんが、ソースは見られます。聞いてみてください。
Commentaires