Подсчет вхождений в строковом столбце

#python #string #split #word

Вопрос:

В фрейме данных у меня есть переменная, содержащая различные рефераты академической литературы. Ниже вы найдете пример первых 3 наблюдений:

abstract = ['Word embeddings are an active topic in the NLP', 'We propose a new shared task for tactical data', 'We evaluate a semantic parser based on a character']

Я хочу разделить предложения в этой переменной на отдельные слова и удалить возможные точки».»

Строка кода в этом случае должна возвращать следующий список:

abstractwords = ['Word', 'embeddings', 'are', 'an', 'active', 'topic', 'in', 'the', 'NPL', 'We', 'Propose', 'a', 'new', 'shared', 'task', 'for', 'tactical', 'data', 'We', 'evaluate', 'a', 'semantic', 'parser', 'based', 'on', 'a', 'character']

Ответ №1:

Вы можете использовать понимание вложенных списков:

 abstract = ['Word embeddings are an active topic in the NLP.', 'We propose a new shared task for tactical data.', 'We evaluate a semantic parser based on a character.']  words = [word.strip('.') for sentence in abstract for word in sentence.split()] print(words) # ['Word', 'embeddings', 'are', 'an', 'active', 'topic', 'in', 'the', 'NLP', 'We', 'propose', 'a', 'new', 'shared', 'task', 'for', 'tactical', 'data', 'We', 'evaluate', 'a', 'semantic', 'parser', 'based', 'on', 'a', 'character']  

Если вы также хотите удалить '.' в середине слов, используйте word.replace('.', '') вместо этого.

Ответ №2:

Используйте для..каждого цикла, чтобы пройти через элементы, замените «.» пробелом. Разделите предложение и объедините списки.

 abstractwords = [] for sentence in abstract:  sentence = sentence.replace(".", " ")  abstractwords.extend(sentence.split())