我正在尝试在字符串中获取类似的单词。假设我有一组5个关键字。
猫,狗,动物,食物,水我有一个像这样的字符串
"猫是一种动物,但与狗不同。两种食物的食物都不一样。但他们都喝水。"
如果我在这种情况下尝试使用strpos,我可能只会找到一个相似的单词" water"但实际上也有其他人。什么可以帮助我实现检测上述句子中的所有关键词?
答案 0 :(得分:0)
您可能遇到区分大小写的问题。尝试使用stripos()
function。它也可能是多元化或收缩的问题,在这种情况下a regular expression可能会使这更容易。
答案 1 :(得分:0)
使用正则表达式 -
这可能会减轻收缩和边界标点符号等
如果检测到相似性,则需要更精细的技术
到字符级别。
(?i)(?<!\S)(?:cat(?:'?s)?|dog(?:'?s)?|animal(?:'?s)?|food|water)(?:(?=\p{P})|(?!\S))
格式化:
(?i)
(?<! \S )
(?:
cat
(?: '?s )?
| dog
(?: '?s )?
| animal
(?: '?s )?
| food
| water
)
(?:
(?= \p{P} )
| (?! \S )
)