首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >检查文本是否包含词汇表中的任何单词?

检查文本是否包含词汇表中的任何单词?
EN

Stack Overflow用户
提问于 2018-02-22 18:50:49
回答 1查看 13关注 0票数 0

如果给定一个可迭代的单词(数十万个),是否有一个有效的现有库来检查可迭代中的任何单词是否包含在字符串中?

我可以很容易地创建一个很长的正则表达式模式,或者将所有单词放在一起,然后尝试将该正则表达式与我的字符串进行匹配。我主要想知道是否有一些更干净的东西我可以使用,因为我不需要担心转义任何可能出现在单词中的特殊字符。

换句话说,大致是这样的:

代码语言:javascript
运行
复制
words = ['foo', 'bar', 'baz']
finder = WordFinder(words)
finder.find('sdfs s dfs df sdfsdfsdfoo sdf sdf') # True
finder.find('sdfasdfasdfa barasdfs') # True
finder.find('sdfsadsfs f sd fsa f df asdf sd fs') # False

我自己已经写了一个基于正则表达式的类,所以我希望我可以删除这些代码。

EN

回答 1

Stack Overflow用户

发布于 2018-02-22 18:59:59

也许Aho-Corasick可以满足你的要求?

这是维基的页面:https://en.wikipedia.org/wiki/Aho%E2%80%93Corasick_algorithm

和一个实现它的Python模块:https://pypi.python.org/pypi/pyahocorasick

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48925535

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档