spaCy
でステミングとリーマライズした後に、ワードがストップワードであるかどうかを検出する方法は?Spacyで補題の後にストップワードを検出する
はsomething
がストップワードである。この場合、文章
s = "something good\nsomethings 2 bad"
と仮定する。明らかに(私に)Something
とsomethings
もストップワードですが、それは前に起ころうとする必要があります。次のスクリプトは、最初のものは真だが後者はそうではないと言います。
import spacy
from spacy.tokenizer import Tokenizer
nlp = spacy.load('en')
tokenizer = Tokenizer(nlp.vocab)
s = "something good\nSomething 2 somethings"
tokens = tokenizer(s)
for token in tokens:
print(token.lemma_, token.is_stop)
戻り値:
something True
good False
"\n" False
Something False
2 False
somethings False
spaCy
APIを通じてこれを検出する方法はありますか?
おかげで、これは良いですが、私は、Pythonレベルのメソッドを使用する必要がないであろうと期待していました。それは何か低いレベルを持っていることがうれしいです。これが唯一の選択肢だと思いますか? –
Cython APIは、非常に低レベルのアクセスを望むなら、実際にはうまく動作します。 'Lexeme.set_struct_attr(lex_ptr、attr_id、attr_value)'を呼び出すと、値を語彙に設定できます。字句へのポインターは、 'vocab.get()'または 'doc.c [i] .lex'で探すことができます。後者では、同じ型のすべてのトークンが同じ字句構造体を指しているので、変更するconstを通してキャストする必要があります。 字句が共有されているという事実は、なぜ停止語がそのように振舞うのかを説明しています。字句にはフラグが設定されています。字句には正確な文字列が入ります。 –