首页 > 解决方案 > 与python精确字符串匹配的布尔值

问题描述

我想根据布尔条件选择文章为

(unemployment OR inflation) AND (covid19 OR uncertain) AND (tax OR spending OR bank)

我希望通过精确的字符串匹配来做到这一点。我在下面给出了以下代码。当前代码的问题在于它让我想到了“税”这个词,税,应税,纳税人提前谢谢!

df = data[['date', 'title', 'body_text']]

def wordestimaor(X):
  
    df['count'] = X.body_text.str.contains("covid19|uncertain")\
     & X.body_text.str.contains("unemployment|inflation")\
     & X.body_text.str.contains("|tax|spending|bank",case = False,regex= True) 
         return X.head(2)
wordestimaor(df)
    

在此处输入图像描述

标签: python

解决方案


你需要在左右两边写上空格,所以它只会找到完整的单词(比如你需要写“covid19”而不是“covid19”)。

但有时它不起作用,比如在这种情况下:“covid19”(带逗号)。您还需要检查这些变体。为此,函数可能非常有用。

symbols = [' ', ',', ';', '!', '?', '.']

def find_word(word):
    for smb in symbols:
        if X.body_text.str.contains(' ' + word + smb):
             return true
    return false

编辑:如果单词位于句子的开头,它将以大写字母开头。所以你也可以检查一下。


推荐阅读