問題タブ [spacy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
789 参照

python - マルチプロセッシング時に各サブプロセスで spaCy データをロードしないようにする

現在マルチプロセッシングで実装されているプログラムで spaCy を使用したいと考えています。具体的には、ProcessingPool4 つのサブプロセスを生成するために使用しています。これらのサブプロセスはオフになり、陽気なタスクを実行します。

spaCy (特に POS タグ付け用) を使用するには、 を呼び出す必要がありますがspacy.load('en')、これは高価な呼び出しです (約 10 秒かかります)。各サブプロセス内でこのオブジェクトをロードする場合、それらはすべて同じ場所から読み取っているため、約 40 秒かかります。これはうんざりするほど長いです。

しかし、ロードされているオブジェクトを共有する方法がわかりません。このオブジェクトはピクルできません。つまり、(私の知る限り):

  1. Pool.map呼び出しに渡すことはできません
  2. Managerインスタンスで保存および使用してプロセス間で共有することはできません

私に何ができる?

0 投票する
2 に答える
3196 参照

nlp - スペイシー経由で条件時制を検出しますか?

条件付き時制でトークンを明らかにするための関数/属性がスペイシーに組み込まれていますか? または、それらにたどり着くための迂回路はありますか?

0 投票する
1 に答える
411 参照

python - 依存関係の解析に関する Spacy NLP ライブラリの問題

OS : Ubuntu

IDEPyCharm

公式サイトの指示に従った

pip install -U スペーシー

python -m spacy.en.download all

以下のコード スニペット:

それでもエラーが発生します。

ここに画像の説明を入力

ここに画像の説明を入力

再インストール後

ここに画像の説明を入力

そして、実際には非常に大きなパッケージをインストールします。すでに2回実行しました。

PyCharmの問題ですか? IDE は素晴らしいですが、後戻りはできません!

0 投票する
1 に答える
229 参照

python - Spacy に am/pm 式を正しくトークン化させる方法は?

Spacy は、数字と午前/午後の部分が空白で区切られていない午前/午後の表現を正しくトークン化できないようです。

例: 「午前 9 時に何かが起こった」は、予期しないトークン セットを生成します: トークン オブジェクトのリスト: [何か、起こった、LIKE_URL、午前]

「午前 9 時に何かが起こった」は問題なく機能しますが、トークン オブジェクトのリスト: [何か、起こった、午前 9 時]

再現するには:

Token オブジェクトにドリルダウンすると、トークンの「orth」表現が 9 であることがわかります。同様に、「8am」を試すと、トークンは「IS_UPPER」を読み取り、トークンの「orth」表現は 8 です。 .

特に、これは私にとっては問題です。なぜなら、より広いコンテキストでトークンの範囲を追跡する必要があるためです。テキストでは「8」と表示されるが、トークン形式では「IS_UPPER」と表示されるトークンは、私の範囲を 7 ずらす原因となります (つまり、次のトークンの実際のドキュメント レベルのインデックス (token.idx) は 7 だけずれています)

上記の形式で示されることがある am/pm 表現を含む spacy を含むドキュメントを処理し、正確なトークン スパンを取得するにはどうすればよいですか?

Spacy 1.4.0でPython 2.7.12を使用しています

0 投票する
0 に答える
78 参照

named-entity-recognition - `ner.update()` を複数回呼び出しても違いはありますか?

Named Entity Recognizer にエンティティ クラスを追加する方法を理解しようとしています。サンプル コードの構造は次のようになります。

ですが、次の例 (BILUO タグの場合) はner.update()1 回だけ呼び出します (つまり、update()トレーニング データを複数回表示する for ループはありません)。

私はこの質問を読みました。その答えは、トレーニングの例ごとに複数回呼び出す必要があることを教えてくれているようです。update()しかし、私はまた、彼らが例に従っているだけかもしれないとも考えました。

次の文のため(ドキュメントページの最後から)...

次に、コストを使用して損失の勾配を計算し、モデルをトレーニングします。

...私の質問への答えは、「はい、トレーニングデータを「数回」繰り返してトレーニングする必要がある」と推測しています。しかし、そうであれば、「十分」な回数について誰か提案がありますか? (コード例では 5 を使用していますが、それが少なすぎると思う場合は、「回数が多すぎる」ことになるのでしょうか? つまり、「過適合」でしょうか?)