Создание списка предложений из файла и добавление его в фрейм данных

#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 «.