2013-10-08 136 views
2

我剛剛使用iTextSharp從pdf獲取所有文本,現在我需要將文本拆分爲單詞。我曾經使用過Acrobat庫,它自動將它分成幾個字(使用getPageNthWord())。將文本拆分爲單詞:分隔符

我不知道使用了哪個標準,但現在我需要知道如何將文本分成單詞。我將用不同的語言分割文本,所以我需要分割爲每個可能的分隔符。

我看到了方法Char.IsSeparator(),但對每個字符使用平均循環,這將是無效的。

我有什麼到目前爲止手動指定分隔在.Split()使用:

separators = " .,;:-(){}[]/\'""?¿!¡" & Convert.ToChar(9) & NewLine() 

有一些地方檢索通用分離器字符?

+3

至少在西方語言中,詞的分隔符是「」。您可能還會添加一些標點符號(「。」,「,」,「:」,「;」),以解釋任何情況(錯誤編寫的文本),但我認爲您不應該考慮超過那。否則,你可能會開始「過度分離」;例如:「 - 」(或'「'」或')不一定表示兩個不同的單詞。 – varocarbas

+1

首先,請嘗試查看http://msdn.microsoft.com/en-us/library/cta536cf.aspx上的示例。其次,可能是string.Split(null)會令人滿意嗎? – Vladimir

+0

@VladimirFrolov兩個評論應該是答案,恕我直言。 '.Split(null)''[只使用空白分隔符](http://msdn.microsoft.com/en-us/library/b873y76a.aspx),但正如你指出的,它與'Char.IsSeparator ()'過濾器。 – SysDragon

回答

2

您可以使用string.Split method用null參數:

如果分隔參數爲空或不包含字符,空白字符被認爲是分隔符。空白字符由Unicode標準定義,如果傳遞給Char.IsWhiteSpace方法,則返回true。

或者您可以按照MSDN sample獲取全部char.IsSeparator()個字符。