Python中的字符串匹配关键字和关键短语

时间:2020-07-16 13:27:29

标签: python-3.x string nlp tokenize

我正在尝试使用Python中的字符串执行智能动态查找,以完成类似NLP的任务。我想通过每个句子解析大量相似结构的句子,并标记出句子的某些部分。例如,我首先解析一个字符串,例如"bob goes to the grocery store"

我将这个字符串带进去,将其拆分为单词,我的目标是在关键字列表中查找匹配的单词。假设我有一个单个关键字列表,例如"store"和一个关键字短语列表,例如"grocery store"

sample = 'bob goes to the grocery store'
keywords = ['store', 'restaurant', 'shop', 'office']
keyphrases = ['grocery store', 'computer store', 'coffee shop']

for word in sample.split():
    # do dynamic length lookups

现在的问题是,有时候我的句子可能只是"bob goes to the store"而不是"bob goes to the grocery store"

我想确定要找到关键字"store",但是如果在单词存储之前有诸如"grocery""computer"之类的描述性单词,我也想捕捉一下。这就是为什么我也有关键字表的原因。我正在尝试一种方法,至少从根本上捕获关键字,然后如果有可能与之相关的单词"phrase",我也想捕获这些关键字。

也许替代方法是使用某种形容词列表,而不是多个单词的短语列表?

如果捕获到一个单词,或者如果我应该考虑使用一种完全不同的方法,我该如何进行这样的可变长度查找呢?

1 个答案:

答案 0 :(得分:0)

这里是如何使用嵌套的for循环和格式化的字符串的方法:

sample = 'bob goes to the grocery store'
keywords = ['store', 'restaurant', 'shop', 'office']
keyphrases = ['grocery', 'computer', 'coffee']

for kw in keywords:
    for kp in keyphrases:
        if f"{kp} {kw}" in sample:
            # Do something