2017-06-12 8 views
3

私の文は次のとおりです。She had another chemotherapy protocol history with 5-FU alone before this protocol without any significant side effects.スペイシーとdisplacy出力異なる

私はdisplacy(https://demos.explosion.ai/displacy/)でこれを入れた場合、出力は名詞句として、5-FUへの参照が含まれています。私は、テキストに注釈を付けると名詞チャンクを検索するとき

enter image description here

しかし、私は名詞チャンクとして5-FUを示すわけではありません。私は以下のコードとタグを検索するとき

nlp = spacy.load('en') ax = nlp(mySentence) for w in ax.noun_chunks: print(w)

編集 また、私はNNとして5-FUを示しています。 Spacyの注釈がこの単一の単語を前置詞に囲まれた名詞として理解している場合、なぜその単語を名詞句として取り上げてはならないのですか? エンド編集

マイスペイシーバージョン:​​

私が間違っているのか?ディスプレーシーと使用しているバージョンのバージョンに違いはありますか?この問題に対処するspaCyヘルプチームはありますか?

ありがとうございます!

答えて

2

Displacyは、解析ツリーを表示しながらいくつかの前処理を行います。ここでdisplacyで使用される(スペイシー上に構築された)解析サービスへのリンクです:代わりに、別々のトークンとして扱うの文章中 https://github.com/explosion/spacy-services/blob/master/displacy/displacy_service/parse.py#L25

if collapse_phrases: 
    for np in list(self.doc.noun_chunks): 
     np.merge(np.root.tag_, np.root.lemma_, np.root.ent_type_) 

スペイシーmerges名詞チャンクは、あなたの出力が異なる理由は、これがあります。

もう1つの違いは、使用するmodelsです。 Spacyがより大きいen_core_web_mdを使用しているのに対し、en_core_web_smの最小値を使用している可能性があります(公式にはどこにも記載されていません)。

+0

おかげで、ドキュメントに従ってください。モデルに関する情報は新しいです!しかし、Spacyの私のバージョンでは、NNとして5-FUを取得していますが、それでもまだ名詞チャンクにはなりません。私は元の質問を更新しています。 – mejobhoot

0

私は同じ問題を解決しようとしています。 DisplayCyとSpaCyの出力は異なります(POSタグと単語間の関係)。

前処理マージは、DisplayCyで無効にすることができるため、前処理のようには見えません - 設定>フレーズの折りたたみ - 出力がまだ一致しません。

それはあなたがモデルをen_core_web_md使用する必要がいる可能性があります(en_core_web_smない):

python -m spacy download en_core_web_md 

は、しかし、私はまだことをテストしていません。

+0

これは私の研究の結果です。 en_core_web_mdモデルははるかに大きく、デフォルトのen_core_web_smモデルよりも正確なノッチです。しかし、それは完璧ではありません。しかし、DisplayCyは非常に異なるモデルを使用しています(少なくとも、モデルを選択できるディスプレイサイトのWebページの右上隅にある広告によると、Model 0.101.0(英語))。このモデルは2016年初頭にリリースされました – mejobhoot

+0

基本的に、私は十分に「md」モデルを見つけて、それと一緒に暮らすことを学びました。このモデルを使用するには、ソースコードからビルドする必要があります。 – mejobhoot

0

彼らはV2.0 にアップグレードしたので、私は同様の問題に直面しました。その後、私はV2.0に移動しました モデルをインストールするには、--directフラグを使用してフルネームでダウンロードする必要があります。

python -m spacy download en_core_web_sm-2.0.0-alpha --direct # English 
python -m spacy download xx_ent_wiki_sm-2.0.0-alpha --direct # Multi-language NER 

spaCyのローダーを呼び出してモデルを読み込むことができます。例えばnlp = spacy.load('en_core_web_sm')、またはそれをモジュール(import en_core_web_sm)として読み込み、load()メソッド(例:nlp = en_core_web_sm.load())を呼び出します。

https://github.com/explosion/spaCy/releases/tag/v2.0.0-alpha

関連する問題