
Spacy による NERの結果を Google Colab 上で可視化
自然言語処理のフレームワークの Spacy を使って、Google Colab 上で NER の可視化を行う際に
1
2
3
4
| import spacy
spacy.displacy.render(doc, style='ent')
|
と実行しても
1
| <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 の公式ドキュメントには、
force Jupyter rendering if auto-detection fails.
と書かれており、本来は Jupyter ノートブックからの出力を自動検出してくれるらしいのだが、Google Colab 上では自動検出されてない模様。
そのため、明示的に jupyter=True
にすれば解決する。
同じような質問が Stack Overflow でも投稿されていた。
1
2
3
4
5
6
7
8
9
| import spacy
nlp = spacy.load('ja_ginza_electra')
doc = """
2022年、日本人は震撼した。まだ恐怖は拭いきれておらず、ネコに癒やしを求めていた。ネコこそが癒やしなのである。もしくはフレンチブルドッグ。
"""
doc = nlp(doc)
spacy.displacy.render(doc, style='ent', jupyter=True)
|

実際に使用した Colab のリンクはこちらです。
See Also
Support
記事をお読みくださりありがとうございます。このウェブサイトの運営を支援していただける方を募集しています。
もしよろしければ、下のボタンからサポート(投げ銭)していただけると、ブログ執筆、情報発信のモチベーションに繋がります✨
