Shodoの校正APIと Pythonのshodoライブラリー を使って、RSSから記事を校正してみましょう。たとえばブログや、Zennなどのサービスが配信しているRSSフィード中の文章を校正します。
今回はPythonで行うので、RSSのパースには feedparser を使い、Shodoの校正APIへのアクセスは shodo を使います。
RSSの記事をAIで校正するプログラム
まずパッケージをインストールしましょう。
$ pip install feedparser shodo
事前にShodoにログインしておきましょう。詳しくはShodoの開発者ドキュメントをご確認ください
$ shodo login
RSSフィードの取得
Pythonインタプリターを起動するかPythonのコードを書いて、RSSフィードを取得しましょう。
事前に必要なライブラリーをインポートします。
import feedparser
import shodo
最初に feedparser
を使ってRSSを取得します。
URL = "https://blog.shodo.ink/rss"
rss_feed = feedparser.parse(URL)
feedparser.parse(...)
に直接URLを指定すると、パースされた結果が辞書で取得できます。各文章は entries
に入っているので、ここから5件を取得してループします。
for entry in rss_feed[:5]:
print(entry["title"])
print(entry["link"])
これで記事のタイトルとリンクを表示しました。最後に本文を shodo.lint(...)
で校正して表示します。
for entry in rss_feed[:5]:
print(entry["title"])
print(entry["link"])
body = entry["summary"]
# ShodoでAI校正を実行(本文をHTMLと解釈)
result = lint(body, is_html=True)
# 信頼度が高いメッセージのみ取得
messages = [m for m in result.messages if m.score >= 0.8]
print(f"校正結果: {len(messages)}件")
for message in messages:
# 本文の一部を .index と .index_to で取り出し
sliced = body[max(0, message.index-5):message.index_to+5]
# 校正メッセージの表示
print(f"* {message.from_}: {message.message}")
print(f" {message.before} -> {message.after} --- {sliced}")
print()
実行すると以下のように表示されます。
Shodoの校正APIがHTML形式の入力に対応しました
https://blog.shodo.ink/entry/shodo-api-html?utm_source=feed
校正結果: 0件
Shodo開発者ドキュメントリリースのお知らせ
https://blog.shodo.ink/entry/2024/11/15/090000?utm_source=feed
校正結果: 1件
* 1:19 もしかして:タイプミス
を -> が --- 終的にこれを必要となり
...
今回のプログラムではRSSの summary
に入ったHTMLを shodo.lint(body, is_html=True)
で校正し、結果を result
に受け取っています。result.messages
に校正エラーとなるメッセージが含まれているためこれを順に表示する処理を書いています。校正結果のメッセージについては こちらのAPIドキュメントをご覧ください。
おわりに
Pythonのfeedparser
とShodoのライブラリーを使えば簡単にRSSフィードのAI校正が可能です。とくにShodoはHTMLの校正にも対応しているので、HTMLを取得できるRSSとの相性が良いでしょう。今後もShodoはより開発しやすいようコマンドやCLIツール、校正APIの改善を続けていきます。ぜひご要望があればShodoのサイトにてご連絡ください。
また現在、Shodoではアドベントカレンダー応援クーポンを配布しております。80%オフでShodoを最長3ヶ月間使えるクーポンです。以下のクーポンコードをご購入時に入力して、このアドベントカレンダーの季節にShodoのAI校正をブログの執筆にお役立てください。
XMAS2024