Обработка подмножества документа с пространством - PullRequest
0 голосов
/ 08 января 2020

При обработке текста с несколькими немецкими предложениями, такими как text = 'Frau Dr. Peters ist heute nicht erreichbar. Kommen Sie bitte morgen wieder.'. Я хочу сделать некоторые дальнейшие шаги в каждом предложении. Для этого мне нужны (в моем случае) только токены в виде текста.

Вот пример:

import spacy

nlp = spacy.load('de_core_news_sm')
text = 'Frau Dr. Peters ist heute nicht erreichbar. Kommen Sie bitte morgen wieder.'

doc = nlp(text)

# Convert Document to list of tokens
def token_to_list(doc):
   tokens = []
   for token in doc:
      tokens.append(token.lower_)
   return tokens

sentences = list(doc.sents)
tokens_sent = []
for sent in sentences:
   tokens = tokens_to_list(sent.as_doc())
   tokens_sent.append(tokens)

print(tokens_sent)

Я ожидал бы увидеть это в своей консоли:

[['frau', 'dr.', 'peters', 'ist', 'heute', 'nicht', 'erreichbar', '.'], ['kommen', 'sie', 'bitte', 'morgen', 'wieder', '.']]

Вместо этого это вывод (я добавил некоторый формат для лучшей видимости):

['frau', 'dr.', 'peters', 'ist', 'heute', 'nicht', 'erreichbar', '.', 
   ['frau', 'dr.', 'peters', 'ist', 'heute', 'nicht', 'erreichbar', '.', 
      [...], 
   'kommen', 'sie', 'bitte', 'morgen', 'wieder', '.',
      [...]
   ], 
'kommen', 'sie', 'bitte', 'morgen', 'wieder', '.'
   ['frau', 'dr.', 'peters', 'ist', 'heute', 'nicht', 'erreichbar', '.', 
      [...], 
   'kommen', 'sie', 'bitte', 'morgen', 'wieder', '.',
      [...]
   ]
] 

Как вы можете видеть, в моем списке, похоже, есть какая-то рекурсия. Дальнейшая проверка показывает, что элемент [...] содержит тот же список элементов, что и слой выше, и продолжается сам по себе. Я не могу понять, почему или как достичь ожидаемого результата.

...