我試圖用CFStringTokenizer和kCFStringTokenizerUnitSentence將一個字符串拆分成句子。我遇到的第一個問題是句子需要大寫,以便將它們識別爲句子。如果不是,它只是認爲它是前一句話的一部分。CFStringTokenizer不標記小寫的句子
我正在拆分用戶輸入的文本,因此我期望文本非常不潔。
是否還有其他我可以用CFStringTokenizer做的事情,讓它檢測到非大寫的句子?或者我將不得不使用另一種分裂方法?
我也跟着上了我的實現這太問題的答案: How to get an array of sentences using CFStringTokenizer?
注:「!」測試了一下後,更似乎與kCFStringTokenizerUnitSentence,如果或'?'之後是一個非大寫的句子,它會識別這個句子。另外,如果其中一個標點符號後面跟着一個沒有「!」之間的空格的句子,和第一個字,它仍然會分開。
所以我需要解決的一種情況是'。'其次是一個無大寫的句子。
另一種選擇,我發現,如果你得到從文本框的文本,就是用這樣的:
textField.autocapitalizationType = UITextAutocapitalizationTypeSentences;
它會自動大寫的句子,所以你不必擔心轉換對於CFStringTokenizer。它仍然沒有考慮像縮寫這樣的邊緣情況,但至少在我的情況下,如果用戶有錯,用戶可以選擇刪除自動大寫。
你需要語言無關的解析嗎?如果不是,你可以用[句子componentsSeparatedByString:@「」]來近似; – danh 2013-03-28 04:42:56
@danh我確實需要語言無關的解析。另外,我需要一些非常強大的東西,因爲絃樂會到處都是。我真的很喜歡覆蓋所有情況(如果存在的話)的開箱即用語句標記器。 – Ramsel 2013-03-28 16:12:44