Google Colab で Spacy による NER の結果を表示するには、jupyter 引数を True にする必要がある
自然言語処理のフレームワークの Spacy を使って、Google Colab 上で NER の可視化を行う際に
import spacy
spacy.displacy.render(doc, style='ent')
と実行しても
<div class="entities" style="line-height: 2.5; direction: ltr"></br>\n<mark class="entity" style="background: #bfe1d9; padding: 0.45em 0.6em; margin: 0 0.25em; line-height: 1; border-radius: 0.35em;">\n 2022年\n <span style="font-size: 0.8em; font-weight: bold; line-height: 1; border-radius: 0.35em; vertical-align: middle; margin-left: 0.5rem">Date</span>\n</mark>\n、\n<mark class="entity" style="background: #ddd; padding: 0.45em 0.6em; margin: 0 0.25em; line-height: 1; border-radius: 0.35em;">\n 日本人\n <span style="font-size: 0.8em; font-weight: bold; line-height: 1; border-radius: 0.35em; vertical-align: middle; margin-left: 0.5rem">Nationality</span>\n</mark>\nは震撼した。</br>まだ\n<mark class="entity" style="background: #ddd; padding: 0.45em 0.6em; margin: 0 0.25em; line-height: 1; border-radius: 0.35em;">\n ゾンビ\n <span style="font-size: 0.8em; font-weight: bold; line-height: 1; border-radius: 0.35em; vertical-align: middle; margin-left: 0.5rem">Insect</span>\n</mark>\nの恐怖は
生の HTML が表示されるだけで、結果がレンダリングされなかったので、そのレンダリングするための方法を記しておく。
対処方法としては、
spacy.displacy.render()
関数の jupyter
引数を True
にすれば良い。
Spacy の公式ドキュメントには、1
force Jupyter rendering if auto-detection fails.
と書かれており、本来は Jupyter ノートブックからの出力を自動検出してくれるらしいのだが、Google Colab 上では自動検出されてない模様。
そのため、明示的に jupyter=True
にすれば解決する。
同じような質問が Stack Overflow2 でも投稿されていた。
import spacy
nlp = spacy.load('ja_ginza_electra')
doc = """
2022年、日本人は震撼した。まだ恐怖は拭いきれておらず、ネコに癒やしを求めていた。ネコこそが癒やしなのである。もしくはフレンチブルドッグ。
"""
doc = nlp(doc)
spacy.displacy.render(doc, style='ent', jupyter=True)
実際に使用した Colab のリンクはこちらです。
関連しているかもしれない記事
- Google Colaboratory で Mecab-ipadic-Neologd を使用可能にする
- Jupyter Notebook で画像をダウンロードすることなく、URLから参照してPandas DataFrame内部に表示させる
- KyTeaをPythonで扱えるMykyteaを使うために必要なこと
- Jupyter Notebook上にTensorboard を わずか2行で表示させる
- Jupyter Notebookの差分を明瞭に確認する事ができるpackage : nbdime
📮 📧 🐏: 記事への感想のおたよりをおまちしてます。 お気軽にお送りください。 メールアドレス入力があればメールで返信させていただきます。 もちろんお返事を希望せずに単なる感想だけでも大歓迎です。
このサイトの更新情報をRSSで配信しています。 お好きなフィードリーダーで購読してみてください。
このウェブサイトの運営や著者の活動を支援していただける方を募集しています。 もしよろしければ、Buy Me a Coffee からサポート(投げ銭)していただけると、著者の活動のモチベーションに繋がります✨
Amazonでほしいものリストも公開しているので、こちらからもサポートしていただけると励みになります。