web-dev-qa-db-ja.com

SpaCy:スペイシーなモデル名を取得する方法は?

pip listには表示されません

zeke$ pip list | grep spacy
spacy (1.7.3)

モデルの名前を取得する方法は?


私はこれを試しましたが、うまくいきません

echo "spaCy model:"
python3 -m sputnik --name spacy find

このエラーをスローします:

zeke$ python3 -m sputnik --name spacy find
Traceback (most recent call last):
  File "/Users/zeke/anaconda/lib/python3.5/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/Users/zeke/anaconda/lib/python3.5/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/Users/zeke/anaconda/lib/python3.5/site-packages/sputnik/__main__.py", line 28, in <module>
    main()
  File "/Users/zeke/anaconda/lib/python3.5/site-packages/sputnik/__main__.py", line 12, in main
    args.run(args)
  File "/Users/zeke/anaconda/lib/python3.5/site-packages/sputnik/cli.py", line 89, in run
    data_path=args.data_path)
  File "/Users/zeke/anaconda/lib/python3.5/site-packages/sputnik/__init__.py", line 114, in find
    obj = cls(app_name, app_version, expand_path(data_path))
  File "/Users/zeke/anaconda/lib/python3.5/site-packages/sputnik/pool.py", line 19, in __init__
    super(Pool, self).__init__(app_name, app_version, path, **kwargs)
  File "/Users/zeke/anaconda/lib/python3.5/site-packages/sputnik/package_list.py", line 33, in __init__
    self.load()
  File "/Users/zeke/anaconda/lib/python3.5/site-packages/sputnik/package_list.py", line 51, in load
    for package in self.packages():
  File "/Users/zeke/anaconda/lib/python3.5/site-packages/sputnik/package_list.py", line 47, in packages
    yield self.__class__.package_class(path=os.path.join(self.path, path))
  File "/Users/zeke/anaconda/lib/python3.5/site-packages/sputnik/package.py", line 15, in __init__
    super(Package, self).__init__(defaults=meta['package'])
KeyError: 'package'

sputnikパッケージマネージャーは、spaCyバージョン1.7.0で非推奨になりました。ご使用のバージョンでは、spacy infoを使用して、インストールされている/リンクされているすべてのモデルを表示できるはずです。

python -m spacy info     # info about spaCy and installed models
python -m spacy info en  # info about model with the shortcut link 'en'

すべてのモデルメタはmetaクラスのLanguage属性として公開されるため、スクリプト内から次のことができます。

nlp = spacy.load('en') # or any other model
print(nlp.meta['name'])

SpaCyの新しいdownloadコマンドを使用してモデルをダウンロードした場合、それらはpipパッケージとしてインストールされます。これは、同じ環境内からpip listまたはpip freezeを実行すると表示されることを意味します。

SpaCyをインストールしてもモデルは自動的にダウンロードされないため、個別にダウンロードする必要があります(利用可能なモデルのリストについては、 ドキュメント を参照してください):

python -m spacy download en              # default English model (~50MB)
python -m spacy download en_core_web_md  # larger English model (~1GB)
34
Ines Montani