#python #pandas #dataframe #nlp #spacy
Вопрос:
Я использую приведенный ниже код для создания списка предложений из файла документа. Функция вернет список предложений.
def extract_sentences(file):
content = nlp(file)
sentences = list(content.sents)
return sentences
После этого я хочу добавить каждое предложение в фрейм данных в колонку «предложение». Проблема в том, что во фрейме данных предложения выглядят как список слов, разделенных запятой, например: (этот процесс включает в себя различные этапы… ). Но я хочу, чтобы это выглядело так: этот процесс включает в себя различные этапы
Ответ №1:
content.sents
является объектом-генератором, который содержит spacy.tokens.span.Span
объекты.
Если вы хотите иметь список строк в качестве выходных данных, вы можете использовать
def extract_sentences(file):
content = nlp(file)
return [x.text for x in content.sents]
Примечание .text
. Свойство возвращает текстовое представление объекта span.
Ответ №2:
sentences
это список для вашей функции. Возможно, вам захочется изменить оператор return, чтобы вместо этого возвращать строку. Таким образом, полная функция будет выглядеть следующим образом:
def extract_sentences(file):
content = nlp(file)
sentences = list(content.sents)
return " ".join(x.text for x in sentences)
Комментарии:
1. Это создает исключение»
TypeError: sequence item 0: expected str instance, spacy.tokens.span.Span found
«.