ドキュメント(段落、本など)を文に分割するにはどうすればよいですか。
例えば、 "The dog ran. The cat jumped"
から["The dog ran", "The cat jumped"]
スペイシーで?
回答
import spacy
nlp = spacy.load('en_core_web_sm')
text = 'My first birthday was great. My 2. was even better.'
sentences = [i for i in nlp(text).sents]
追加情報
これは、モデル「en_core_web_sm」がシステムにすでにインストールされていることを前提としています。そうでない場合は、ターミナルで次のコマンドを実行することで簡単にインストールできます。
$ python -m spacy download en_core_web_sm
(利用可能なすべてのモデルの概要については、 ここ を参照してください。)
データによっては、これはspacy.lang.en.English
を使用するよりも良い結果につながる可能性があります。 1つの(非常に単純な)比較例:
import spacy
from spacy.lang.en import English
nlp_simple = English()
nlp_simple.add_pipe(nlp_simple.create_pipe('sentencizer'))
nlp_better = spacy.load('en_core_web_sm')
text = 'My first birthday was great. My 2. was even better.'
for nlp in [nlp_simple, nlp_better]:
for i in nlp(text).sents:
print(i)
print('-' * 20)
出力:
>>> My first birthday was great.
>>> My 2.
>>> was even better.
>>> --------------------
>>> My first birthday was great.
>>> My 2. was even better.
>>> --------------------