【发布时间】:2012-05-01 15:25:50
【问题描述】:
我正在尝试使用正则表达式将句子/短语拆分为单词。
var phrase = "This isn't a test.";
var words = Regex.Split(phrase, @"\W+").ToList();
单词包含“This”、“isn”、“t”、“a”、“test”
显然,它正在使用撇号并对其进行拆分。我可以改变这种行为吗?它还需要支持多种语言(西班牙语、法语、俄语、韩语等)。
我需要将单词传递给拼写检查器。特别是 Nhunspell。
return (from word in words let correct = _engine[langId].Spell(word) where !correct select word).ToList();
【问题讨论】:
-
尝试分割空格?您是否有很好的用例示例来演示此 Regex 需要处理的内容?
-
我正在将单词传递给拼写检查器,所以我需要丢失标点符号。
-
由于您想针对多种不同的语言进行拆分,因此您需要使用能够理解所述语言的分词器。在您的示例中, is not clear 是一个词,但在另一种语言中, ' 通常可能不是该词的一部分。因此,大多数拼写检查库都带有一个 Tokenizer 或 Parser 可以为您完成这项工作。