Как я могу предотвратить разбиение токенизатором spacy определенной подстроки при токенизации строки?
В частности, у меня есть это предложение:
После отмены регистрации папка ушла из оболочки.
который токенизируется как [Once / unregistered /, / the / folder / go / away / from / the / she / ll /.] scapy 1.6.0. Я не хочу, чтобы подстрока shell
была разделена на два разных токена she
и ll
.
Вот код, который я использую:
# To install spacy:
# sudo pip install spacy
# sudo python -m spacy.en.download parser # will take 0.5 GB
import spacy
nlp = spacy.load('en')
# https://spacy.io/docs/usage/processing-text
document = nlp(u'Once unregistered, the folder went away from the shell.')
for token in document:
print('token.i: {2}\ttoken.idx: {0}\ttoken.pos: {3:10}token.text: {1}'.
format(token.idx, token.text,token.i,token.pos_))
который выводит:
token.i: 0 token.idx: 0 token.pos: ADV token.text: Once
token.i: 1 token.idx: 5 token.pos: ADJ token.text: unregistered
token.i: 2 token.idx: 17 token.pos: PUNCT token.text: ,
token.i: 3 token.idx: 19 token.pos: DET token.text: the
token.i: 4 token.idx: 23 token.pos: NOUN token.text: folder
token.i: 5 token.idx: 30 token.pos: VERB token.text: went
token.i: 6 token.idx: 35 token.pos: ADV token.text: away
token.i: 7 token.idx: 40 token.pos: ADP token.text: from
token.i: 8 token.idx: 45 token.pos: DET token.text: the
token.i: 9 token.idx: 49 token.pos: PRON token.text: she
token.i: 10 token.idx: 52 token.pos: VERB token.text: ll
token.i: 11 token.idx: 54 token.pos: PUNCT token.text: .