Я хочу пометить глаголы в предложениях, добавив 'X' в конце слова глагола, например: verbX
.
SpaCy назначает теги элементам предложений, которые Python не индексирует отдельно.Например, spaCy видит скобку '(' или точку с запятой за словом '.' Как отдельную позицию, а Python - нет. В результате индекс тегов не может быть использован для надежной вставки X в предложение.Следующая функция работает путем восстановления предложения по токенам, однако позволяет мне вставить только X в начале глагола.
Есть ли способ прикрепить X к концу слова глагола, вот так verbX
? (без пробела между глаголом и X.)
import pandas as pd
import spacy
nlp = spacy.load('en')
s = "Dr. John (a fictional chartacter) never shakes hands."
df = pd.DataFrame({'sentence':[s]})
k = df['sentence']
def marking(row):
chunks = []
for token in nlp(row):
if token.tag_ == 'VBZ':
chunks.append('X')
chunks.append(token.text_with_ws)
L = "".join(chunks)
return L
x = k.apply(marking)
print(x)
Это дает:
"Dr. John (a fictional chartacter) never Xshakes hands."
Как я могу получить это?
"Dr. John (a fictional chartacter) never shakesX hands."