我正在试图读取字符串中的相似单词。假设我有一组5个关键字。在字符串中查找相似单词
猫,狗,动物,食物,水
而且我有这样
“猫字符串是动物,但是从狗不同食品的不一样对他们俩的,但他们都饮水。”
如果我尝试在这种情况下使用strpos,我可能会发现只有一个类似的词“水”,但实际上也有其他人。什么可以帮助我实现检测上述句子中的所有关键字?
我正在试图读取字符串中的相似单词。假设我有一组5个关键字。在字符串中查找相似单词
猫,狗,动物,食物,水
而且我有这样
“猫字符串是动物,但是从狗不同食品的不一样对他们俩的,但他们都饮水。”
如果我尝试在这种情况下使用strpos,我可能会发现只有一个类似的词“水”,但实际上也有其他人。什么可以帮助我实现检测上述句子中的所有关键字?
它可能你有一个大小写敏感的问题。尝试使用stripos()
function。这也可能是复数或收缩的问题,在这种情况下a regular expression可能会使这更容易。
对于使用正则表达式 -
这可能会减轻收缩和边界标点符号等。
如果检测到相似性
直到字符级别,则需要更精细的技术。
(?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)
)
什么是您预期的输出?你能显示你的尝试代码? – anubhava
你可以粘贴你现有的代码吗?没有看到你是如何努力实现这一目标的,很难看出你的问题。这可能是一个不区分大小写的问题,或者是传递给'strpos()'的参数的问题。 – Todd