web-dev-qa-db-ja.com

コードからnltkデータディレクトリを設定する方法は?

コードからnltkデータディレクトリを設定する方法は?

71
Juanjo Conti

nltk.data.pathの項目を変更するだけで、それは単純なリストです。

62
Tim McNamara

コードから http://www.nltk.org/_modules/nltk/data.html

``nltk:path``: Specifies the file stored in the NLTK data
 package at *path*.  NLTK will search for these files in the
 directories specified by ``nltk.data.path``.

次に、コード内で:

######################################################################
# Search Path
######################################################################

path = []
"""A list of directories where the NLTK data package might reside.
   These directories will be checked in order when looking for a
   resource in the data package.  Note that this allows users to
   substitute in their own versions of resources, if they have them
   (e.g., in their home directory under ~/nltk_data)."""

# User-specified locations:
path += [d for d in os.environ.get('NLTK_DATA', str('')).split(os.pathsep) if d]
if os.path.expanduser('~/') != '~/':
    path.append(os.path.expanduser(str('~/nltk_data')))

if sys.platform.startswith('win'):
    # Common locations on Windows:
    path += [
        str(r'C:\nltk_data'), str(r'D:\nltk_data'), str(r'E:\nltk_data'),
        os.path.join(sys.prefix, str('nltk_data')),
        os.path.join(sys.prefix, str('lib'), str('nltk_data')),
        os.path.join(os.environ.get(str('APPDATA'), str('C:\\')), str('nltk_data'))
    ]
else:
    # Common locations on UNIX & OS X:
    path += [
        str('/usr/share/nltk_data'),
        str('/usr/local/share/nltk_data'),
        str('/usr/lib/nltk_data'),
        str('/usr/local/lib/nltk_data')
    ]

パスを変更するには、可能なパスのリストに追加するだけです:

import nltk
nltk.data.path.append("/home/yourusername/whateverpath/")

またはWindowsの場合:

import nltk
nltk.data.path.append("C:\somewhere\farfar\away\path")
39
alvas

Append、exampleを使用します

nltk.data.path.append('/libs/nltk_data/')
23
bahlum

代わりに、すべてのスクリプトにnltk.data.path.append('your/path/to/nltk_data')を追加するので、NLTKはNLTK_DATA環境変数を受け入れます。 ( コードリンク

開いた ~/.bashrc(または~/.profile)テキストエディタを使用して(例えばnanovimgedit)、および以下の行を追加します。

export NLTK_DATA="your/path/to/nltk_data"

sourceを実行して環境変数をロードします

source ~/.bashrc


テスト

pythonを開き、次の行を実行します

import nltk
nltk.data.path

Nltkデータパスは既にそこにあります。

参照: nltk/nltk#1997 に関する@alvationsの回答

6
fnjn

Uwsgiを使用している場合:

私は、私が以前にダウンロードしたことNLTKデータへのアクセス権を持っているuwsgiアプリ(自分以外のユーザーとして実行されている)を望んでいたので、私は問題を抱えました。私のために働いたのは、myapp_uwsgi.iniに次の行を追加することでした:

env = NLTK_DATA=/home/myuser/nltk_data/

これにより、環境変数NLTK_DATAが設定されます(@schemacsが推奨)。
あなたはこの変更を行った後、あなたのuwsgiプロセスを再起動する必要があります。

1
danyamachine

別の解決策は、それに先んじることです。

nltk nltk.download()をインポートしてみてください

コーパスをダウンロードするかどうかを尋ねるウィンドウボックスが表示されたら、そこにダウンロードするディレクトリを指定できます。

0
Steve