2015-12-02 58 views
0

我正在试图读取字符串中的相似单词。假设我有一组5个关键字。在字符串中查找相似单词

猫,狗,动物,食物,水

而且我有这样

“猫字符串是动物,但是从狗不同食品的不一样对他们俩的,但他们都饮水。”

如果我尝试在这种情况下使用strpos,我可能会发现只有一个类似的词“水”,但实际上也有其他人。什么可以帮助我实现检测上述句子中的所有关键字?

+0

什么是您预期的输出?你能显示你的尝试代码? – anubhava

+0

你可以粘贴你现有的代码吗?没有看到你是如何努力实现这一目标的,很难看出你的问题。这可能是一个不区分大小写的问题,或者是传递给'strpos()'的参数的问题。 – Todd

回答

0

它可能你有一个大小写敏感的问题。尝试使用stripos()function。这也可能是复数或收缩的问题,在这种情况下a regular expression可能会使这更容易。

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) 
)