文本文件中出现名称,对重复项敏感

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

我有一个名称列表,并希望计算整个文本文件集中的出现次数。

我正在使用带有字典的简单正则表达式搜索来做到这一点:

    for k,v in eng_names_dict.items():
        for i in v:
            pattern = re.compile(str(i).strip(' '))
            matches = re.search(pattern, text)
            if matches:
                namesDict[k] += 1
                break
    return

The catch:

我混合使用标题和名称(如下面的示例所示,具有不同的名称格式),它们之间有些重复。

例如:我的列表包括两个不同的人-“ Mark博士”(标题+姓氏)和“ Mark Smith”(名字+姓氏)。

如果文本文件包含字符串“ Mark Smith博士说...”,我的函数将为两个人都计数(而不是仅针对“ Mark Smith”)。

有没有办法确保每个子串只计数一次?

python regex text nlp text-mining
1个回答
0
投票

也许使用包含-排除原理?

text.count("Dr. Mark") + text.count("Mark Smith") - text.count("Dr. Mark Smith")

最后的减号删除重复项

© www.soinside.com 2019 - 2024. All rights reserved.