2015-12-02 26 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) 
)