我想從PHP正則表達式中提取專有名詞(例如Micheal Jackson),但是我的正則表達式不正確。php/regex - 從文本中提取專有名詞
文本:
我的朋友邁克爾傑克遜是流行音樂之王。遊戲專輯賣得很少。
我想要什麼:
一個正則表達式是能夠提取的多個單詞e.g邁克爾傑克遜還是遊戲專輯專有名詞。
我的正則表達式:
/(?<=\s)([A-Z][a-z]+).*(?=\s)/
感謝。
P.S.通過移動設備發佈。道歉,如果格式不好。
我想從PHP正則表達式中提取專有名詞(例如Micheal Jackson),但是我的正則表達式不正確。php/regex - 從文本中提取專有名詞
文本:
我的朋友邁克爾傑克遜是流行音樂之王。遊戲專輯賣得很少。
我想要什麼:
一個正則表達式是能夠提取的多個單詞e.g邁克爾傑克遜還是遊戲專輯專有名詞。
我的正則表達式:
/(?<=\s)([A-Z][a-z]+).*(?=\s)/
感謝。
P.S.通過移動設備發佈。道歉,如果格式不好。
嘗試使用單詞邊界,而不是你的回顧後/超前
/\b([A-Z][a-z]+)\b/
我不明白你.*
部分,這將在第一個字到最後空格後搭配什麼,所以我從我的正則表達式刪除了。
如果你想一次匹配多個字(也許你對自己.*
實現這一目標?)試試這個:
(?:\s*\b([A-Z][a-z]+)\b)+
斯坦福分析器可以幫助你在這裏。它將標記你的短語,並根據句子結構提取專有名詞和所有其他作品。
它可以作爲一個jar下載,或者你可以嘗試一下在網上瀏覽:http://nlp.stanford.edu:8080/parser/
正則表達式不知道正確的名稱是什麼。你如何定義/發現它們? – sln
Michael。以防拼寫對你的算法很重要。 – TARKUS