Как преобразовать множественные существительные в единственное, используя SpaCy? - PullRequest
0 голосов
/ 19 февраля 2020

Я использую SpaCy для лемматизации текста, но в некоторых особых случаях мне нужно сохранить оригинальный текст и просто преобразовать множественные существительные в их формы единственного числа. Есть ли способ заставить SpaCy только конвертировать существительные множественного числа в единственное число без лемматизации всего текста (например, удаление ed, ing ... et c)? Или я должен явно проверить каждый токен, чтобы проверить, является ли это существительное во множественном числе, чтобы взять его лемму?

PS Вводимый текст - Dynami c, поэтому я не знаю заранее, является ли слово существительным или не

Спасибо

Ответы [ 2 ]

2 голосов
/ 21 февраля 2020

Благодаря комментарию bivouac0 . Я проверил поле tag_ каждого токена и получил лемму о том, что токены помечены как «NNS» или «NNPS»

processed_text = nlp(original_text)
lemma_tags = {"NNS", "NNPS"}
for token in processed_text:
   lemma = token.text
   if token.tag_ in lemma_tags:
      lemma = token.lemma_
   ...
   # rest of code
   ...
   ...
0 голосов
/ 21 февраля 2020

Вы не можете преобразовать множественные существительные в единственные существительные, используя spacy. Вы можете проверить, является ли токен существительным во множественном числе или существительным в единственном числе.

Если тег токена равен 'NNS', проверьте этот токен в словаре и получите форму этого токена в единственном числе.

...