我正在尋找一個微調未知文字一定長度的解決方案。只保留完整的句子。如何將文本修剪爲一定長度的完整句子?
所以這樣
"Were you born 1. 3. 1987 in Prague? Štěpán Jr. lives there for 3 years now! "
文本應該變成
"Were you born 1. 3. 1987 in Prague? "
的字符限制50,40(和20 --find-下句結尾)。
我讀過許多SO問題 - 大部分的答案是的
substr($text, 0, strrpos('.', $text) + 1);
的改變,但是這顯然無法爲上述句子和其他類似。其他人則建議使用Stanford Text Parser或OpenNLP。它們非常酷,但不適用於典型應用。你不會在你的Ruby/PHP服務器上安裝Java,只是爲了修剪文本。所以我正在尋找一些80/20解決方案,這將是語言無關緊要的,並且能夠處理出現的典型案例。
我想不出比這個更有問題的句子(包含日期,非句點末尾和非ascii字符在下一句的開始和非結束點在「限制」中間)句子)。
我還創建了GIST(https://gist.github.com/4051035)供您分叉和玩 - 分叉確保用戶可以點擊此問題的不同解決方案,因此請使用它; )我想提出這個問題comunity-wiki,但它似乎不適用於問題 - 只爲答案。因此,請將任何建議/相關SO問題添加到評論中。謝謝。