предложения содержат точно слово в питоне - PullRequest
0 голосов
/ 16 октября 2018

Я хочу вернуть предложения, содержащие точно слова в списке поиска для

df = pd.read_excel('C:/Test 1012/UOI.xlsx')
a = df['Content']
searchfor =['hot' ,'yes'  and 200 more words in it]
b = a[a.str.contains('|'.join(searchfor))]
print(b)

, например:

Content = ['the photo is good','nice picture'...]

В результате не должно быть напечатано ни одного предложения, однако 'photo »содержит слово« hot », результат дает мне« photo is good ».Так кто-нибудь знает, как решить эту проблему?Я только хочу, чтобы результат точно содержал слова в списке поиска.

1 Ответ

0 голосов
/ 16 октября 2018

Используйте границу слова, которая добавляется для каждого значения searchfor:

df = pd.DataFrame({'Content':['the photo is good','nice picture']})
print (df)
             Content
0  the photo is good
1       nice picture

searchfor =['hot','yes','nice']
pat = '|'.join(r"\b{}\b".format(x) for x in searchfor)


b = df.loc[df['Content'].str.contains(pat), 'Content']
#your solution
#b = a[a.str.contains(pat)]
print (b)
1    nice picture
Name: Content, dtype: object
...