已经存在类似的问题,但所有问题都使用regexen.我正在使用的代码(剥离分隔符):
string[] sentences = s.Split(new string[] { ". ", "? ", "! ", "... " }, StringSplitOptions.None);
Run Code Online (Sandbox Code Playgroud)
我想在句子分词上分割一段文字并保留句子终结符.我想避免使用regexen来提高性能.可能吗?
我的目标是获取一个句子文件,应用一些基本过滤,并将剩余的句子输出到文件和终端.我正在使用Hunspell库.
这是我如何从文件中获取句子:
public static string[] sentencesFromFile_old(string path)
{
string s = "";
using (StreamReader rdr = File.OpenText(path))
{
s = rdr.ReadToEnd();
}
s = s.Replace(Environment.NewLine, " ");
s = Regex.Replace(s, @"\s+", " ");
s = Regex.Replace(s, @"\s*?(?:\(.*?\)|\[.*?\]|\{.*?\})", String.Empty);
string[] sentences = Regex.Split(s, @"(?<=\. |[!?]+ )");
return sentences;
}
Run Code Online (Sandbox Code Playgroud)
这是写入文件的代码:
List<string> sentences = new List<string>(Checker.sentencesFromFile_old(path));
StreamWriter w = new StreamWriter(outFile);
foreach(string x in xs)
if(Checker.check(x, speller))
{
w.WriteLine("[{0}]", x);
Console.WriteLine("[{0}]", x);
}
Run Code Online (Sandbox Code Playgroud)
这是检查器:
public static bool check(string s, NHunspell.Hunspell speller)
{ …Run Code Online (Sandbox Code Playgroud)