我正在試圖讀取字符串中的相似單詞。假設我有一組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