Microsoft Ignite 2021の基調講演で発表された「Azure OpenAI Service」。公式ページにある通り OpenAI でOpenAI APIを発行してもらったのでExpamplesにある49個のアプリから「Extract contact information」をPythonから実行して試行錯誤します。
OpenAIのExpamplesにあるExtract contact informationとは
公式の説明では「Extract contact information from a block of text.」とあり、“テキストブロックから連絡先情報を抽出します。”となります。
公式のタグでは「Transformation」「Generation」の2つが付与されています。
プログラムを見るとエンジンは「davinci-instruct-beta」となっており、instruct系はアイディアを出してくれたり指示を出してくれるようなケースが多いですが、今回は文章から必要な情報を抽出するために使われています。
サンプルコードでは1行目に「このメールから送付先を抽出する。(Extract the mailing address from this email:)」となっており、電子メールで文中にある住所を自動的に抽出してくれます。
早速使ってみた
公式にあるコードを参考に、好きな文章を入れられるように str という変数に会話を入れて実行できるようにします。
1Python Code
2
3‘’’
4
5import os
6
7import openai
8
9
10
11openai.api_key = os.getenv("OPENAI_API_KEY")
12
13str = """Extract the mailing address from this email:
14
15
16
17Dear Kelly,
18
19
20
21It was great to talk to you at the seminar. I thought Jane's talk was quite good.
22
23
24
25Thank you for the book. Here's my address 2111 Ash Lane, Crestview CA 92002
26
27
28
29Best,
30
31
32
33Maya
34
35
36
37Name and address:"""
38
39
40
41response = openai.Completion.create(
42
43 engine="davinci-instruct-beta",
44
45 prompt=str,
46
47 temperature=0,
48
49 max_tokens=64,
50
51 top_p=1.0,
52
53 frequency_penalty=0.0,
54
55 presence_penalty=0.0
56
57)
58
59
60
61print(response["choices"][0]["text"])
62
63‘’’文章から住所情報を抽出してくれる。
サンプルでは
「Dear Kelly,
It was great to talk to you at the seminar. I thought Jane’s talk was quite good.
Thank you for the book. Here’s my address 2111 Ash Lane, Crestview CA 92002
Best,
Maya」
となっており、
「セミナーでお話できてよかったです。ジェーンの話はなかなかよかったと思います。本の件、ありがとうございました。私の住所はこちらです 2111 Ash Lane, Crestview CA 92002」
とお礼メールの中に本を送る先の住所を連絡しています。
実行すると「2111 Ash Lane, Crestview CA 92002」となっており、住所部分のみ抽出してくれます。
どんなときに使えるのか?
例文では「my address」の後に記述があったり、文末まで住所といったわかりやすい状況になっていますが、従来であればその単語が住所なのか?や郵便番号といった、AIでは判断することが難しい部分を自動的に認識して住所のみ抽出してくれます。
もっと長い文章から職業・年齢など、人が会話の中で類推できる内容等を抽出することもできるかもしれません。人以上に文章を理解することになっていきそうですね。