У меня есть файл excel с текстовым столбцом. Все, что мне нужно сделать, это извлечь предложения из текстового столбца для каждой строки конкретными словами.Извлечение предложений с использованием pandas со специальными словами
Я попытался использовать функцию определения.
import pandas as pd
from nltk.tokenize import sent_tokenize
from nltk.tokenize import word_tokenize
#################Reading in excel file#####################
str_df = pd.read_excel("C:\\Users\\HP\Desktop\\context.xlsx")
################# Defining a function #####################
def sentence_finder(text,word):
sentences=sent_tokenize(text)
return [sent for sent in sentences if word in word_tokenize(sent)]
################# Finding Context ##########################
str_df['context'] = str_df['text'].apply(sentence_finder,args=('snakes',))
################# Output file #################################
str_df.to_excel("C:\\Users\\HP\Desktop\\context_result.xlsx")
Но может кто-то пожалуйста, помогите мне, если я должен найти предложение с несколькими конкретными словами, как snakes
, venomous
, anaconda
. В предложении должно быть хотя бы одно слово. Я не могу работать с nltk.tokenize
с несколькими словами.
Чтобы искать words = ['snakes','venomous','anaconda']
Input Excel файл:
text
1. Snakes are venomous. Anaconda is venomous.
2. Anaconda lives in Amazon.Amazon is a big forest. It is venomous.
3. Snakes,snakes,snakes everywhere! Mummyyyyyyy!!!The least I expect is an anaconda.Because it is venomous.
4. Python is dangerous too.
Желаемой Выход:
Колонок называется контекст прилагаемого к текстовому колонку выше. Контекстная колонка должна быть такой:
1. [Snakes are venomous.] [Anaconda is venomous.]
2. [Anaconda lives in Amazon.] [It is venomous.]
3. [Snakes,snakes,snakes everywhere!] [The least I expect is an anaconda.Because it is venomous.]
4. NULL
Заранее благодарен.
Пожалуйста, разместите [mcve] (http://stackoverflow.com/help/mcve) вашего 'str_df' и ваш желаемый результат. –
@JulienMarrec Отредактировано. Спасибо. – user7140275
ваш третий пример с 'потому что имеет два предложения, которые, кажется, вы хотите, чтобы разрешение для ссылки, что не так просто.Если вы хотите только извлечение извлечения, это намного проще (т. Е. Текст, ограниченный символом!?). Также, пожалуйста, покажите свой текущий результат, даже если он ошибочен. –