如何从单词列表中找到系列中的精确单词匹配? (Python 3.11)

问题描述 投票:0回答:1

我正在从事一个 NLP 项目,我正在努力解决当前的部分。我有一个数据框,其中包含字符串要求(“该系统应...”)。我们希望根据单词列表检查每个需求,对包含一个或多个这些单词的需求进行子集化,然后添加仅包含每个需求中找到的单词的列。

要求 包含_单词
“该系统应...” ‘意志’、‘行动’

我当前遇到的问题是它匹配单词的模式,而不是确切的单词,因此输出不正确。

def bad_words(doc: pd.DataFrame):
    words = 'will|must|actions'
    results = doc['Requirement'].str.contains(words).any()
    if results:
        df = doc[doc['Requirement'].str.contains(words)]
        print(df)
    else:
        print(f"No requirement contain the word(s): {words}.")
python pycharm
1个回答
0
投票

通过

regex=True
启用正则表达式,然后它就可以正常工作了。

def bad_words(doc: pd.DataFrame):
    words = 'will|must|actions'
    results = doc['Requirement'].str.contains(words, regex=True).any()
    if results:
        df = doc[doc['Requirement'].str.contains(words, regex=True)]
        print(df)
    else:
        print(f"No requirement contain the word(s): {words}.")
© www.soinside.com 2019 - 2024. All rights reserved.