問題タブ [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.
python - マルチプロセッシング時に各サブプロセスで spaCy データをロードしないようにする
現在マルチプロセッシングで実装されているプログラムで spaCy を使用したいと考えています。具体的には、ProcessingPool
4 つのサブプロセスを生成するために使用しています。これらのサブプロセスはオフになり、陽気なタスクを実行します。
spaCy (特に POS タグ付け用) を使用するには、 を呼び出す必要がありますがspacy.load('en')
、これは高価な呼び出しです (約 10 秒かかります)。各サブプロセス内でこのオブジェクトをロードする場合、それらはすべて同じ場所から読み取っているため、約 40 秒かかります。これはうんざりするほど長いです。
しかし、ロードされているオブジェクトを共有する方法がわかりません。このオブジェクトはピクルできません。つまり、(私の知る限り):
Pool.map
呼び出しに渡すことはできませんManager
インスタンスで保存および使用してプロセス間で共有することはできません
私に何ができる?
nlp - スペイシー経由で条件時制を検出しますか?
条件付き時制でトークンを明らかにするための関数/属性がスペイシーに組み込まれていますか? または、それらにたどり着くための迂回路はありますか?
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を使用しています
named-entity-recognition - `ner.update()` を複数回呼び出しても違いはありますか?
Named Entity Recognizer にエンティティ クラスを追加する方法を理解しようとしています。サンプル コードの構造は次のようになります。
ですが、次の例 (BILUO タグの場合) はner.update()
1 回だけ呼び出します (つまり、update()
トレーニング データを複数回表示する for ループはありません)。
私はこの質問を読みました。その答えは、トレーニングの例ごとに複数回呼び出す必要があることを教えてくれているようです。update()
しかし、私はまた、彼らが例に従っているだけかもしれないとも考えました。
次の文のため(ドキュメントページの最後から)...
次に、コストを使用して損失の勾配を計算し、モデルをトレーニングします。
...私の質問への答えは、「はい、トレーニングデータを「数回」繰り返してトレーニングする必要がある」と推測しています。しかし、そうであれば、「十分」な回数について誰か提案がありますか? (コード例では 5 を使用していますが、それが少なすぎると思う場合は、「回数が多すぎる」ことになるのでしょうか? つまり、「過適合」でしょうか?)